diff options
author | Lu Feng <lu.feng@6wind.com> | 2014-07-11 09:52:15 +0200 |
---|---|---|
committer | Daniel Walton <dwalton@cumulusnetworks.com> | 2016-05-26 19:13:49 +0200 |
commit | 64fdba2ace1ba6114854bb433904e4d27185935b (patch) | |
tree | 86ba0cee2a16d5ca21381fea2f2bc26b189e478a | |
parent | ripd: allow to enable/disable the ECMP feature (diff) | |
download | frr-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.c | 2 |
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; |