]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: fix rtnh_len in the rt_netlink messages for multipath case
authorLu Feng <lu.feng@6wind.com>
Fri, 11 Jul 2014 07:52:15 +0000 (07:52 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Thu, 26 May 2016 17:13:49 +0000 (17:13 +0000)
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

zebra/rt_netlink.c

index 9c2942a5f5c4204de107adcc83cae2f7f7d662eb..868b408aca70ebf46fbaf11a2204dfc8d11258dd 100644 (file)
@@ -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;