summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLu Feng <lu.feng@6wind.com>2014-07-11 09:52:15 +0200
committerDaniel Walton <dwalton@cumulusnetworks.com>2016-05-26 19:13:49 +0200
commit64fdba2ace1ba6114854bb433904e4d27185935b (patch)
tree86ba0cee2a16d5ca21381fea2f2bc26b189e478a
parentripd: allow to enable/disable the ECMP feature (diff)
downloadfrr-64fdba2ace1ba6114854bb433904e4d27185935b.tar.xz
frr-64fdba2ace1ba6114854bb433904e4d27185935b.zip
zebra: fix rtnh_len in the rt_netlink messages for multipath case
In _netlink_route_build_multipath(): - Each time when appending a IPv4 gateway in the message, rtnh_len is increased by sizeof (struct rtattr) + 4, where we should use "bytelen" instead of the hard coding "4". - As what done for IPv4, we should increase rtnh_len accordingly along with adding a IPv6 gateway, or else the IPv6 gateways will be lost. Signed-off-by: Feng Lu <lu.feng@6wind.com> Reviewed-by: Alain Ritoux <alain.ritoux@6wind.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org> (cherry picked from commit 621e2aaf33d8ab73bf44b0eea3f3900135d34996) Conflicts: zebra/rt_netlink.c
-rw-r--r--zebra/rt_netlink.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 9c2942a5f..868b408ac 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -1863,7 +1863,7 @@ _netlink_route_build_multipath(
{
rta_addattr_l (rta, NL_PKT_BUF_SIZE, RTA_GATEWAY,
&nexthop->gate.ipv4, bytelen);
- rtnh->rtnh_len += sizeof (struct rtattr) + 4;
+ rtnh->rtnh_len += sizeof (struct rtattr) + bytelen;
if (nexthop->rmap_src.ipv4.s_addr)
*src = &nexthop->rmap_src;