]> git.proxmox.com Git - mirror_frr.git/commit - zebra/zebra_fpm_netlink.c
zebra: Fix IPv4 routes with IPv6 link local next hops install in FPM
authorNikhil Kelapure <nikhil.kelapure@broadcom.com>
Sun, 12 Sep 2021 19:25:00 +0000 (12:25 -0700)
committerNikhil Kelapure <nikhil.kelapure@broadcom.com>
Mon, 13 Sep 2021 15:39:43 +0000 (08:39 -0700)
commit316d2d52a25a4047f08952dd4aca6192be6240c7
treeba876a25f300bfdef2691f976d588cd79cf72145
parent7d18da967189913846ecf1a897f20071b663c90d
zebra: Fix IPv4 routes with IPv6 link local next hops install in FPM

Description: Currently IPv4 routes with IPv6 link local next hops are
not properly installed in FPM.
Reason is the netlink decoding truncates the ipv6 LL address to 4 byte
ipv4 address.

Ex : fe80:: is directly converted to ipv4 and it results in 254.128.0.0
as next hop for below routes

show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
F - PBR, f - OpenFabric,
> - selected route, * - FIB route, q - queued, r - rejected, b - backup

B>* 2.1.0.0/16 [200/0] via fe80::268a:7ff:fed0:d40, Ethernet0, weight 1,
02:22:26
B>* 5.1.0.0/16 [200/0] via fe80::268a:7ff:fed0:d40, Ethernet0, weight 1,
02:22:26
B>* 10.1.0.2/32 [200/0] via fe80::268a:7ff:fed0:d40, Ethernet0, weight
1, 02:22:26

Hence this fix converts the ipv6-LL address to ipv4-LL (169.254.0.1)
address before sending it to FPM. This is inline with how these types of
routes are currently programmed into kernel.

Signed-off-by: Nikhil Kelapure <nikhil.kelapure@broadcom.com>
zebra/zebra_fpm.c
zebra/zebra_fpm_netlink.c
zebra/zebra_fpm_private.h