]> git.puffer.fish Git - mirror/frr.git/commit
bgpd: fix invalid ipv4-vpn nexthop for IPv6 peer 12332/head
authorRyoga Saito <ryoga.saito@linecorp.com>
Sat, 12 Nov 2022 08:45:19 +0000 (17:45 +0900)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Thu, 17 Nov 2022 15:05:49 +0000 (15:05 +0000)
commit8dff1be53318034b88a8bc1308d2f5eae985db7b
tree3ced5dbd311353e91f044a1785294fe7c3d298fb
parentdaa21266dc5f4318d3e0fa6db9f401ff9619f48a
bgpd: fix invalid ipv4-vpn nexthop for IPv6 peer

Given that two routers are connected each other and they have IPv6
addresses and they establish BGP peer with extended-nexthop capability
and one router tries to advertise locally-generated IPv4-VPN routes to
other router.

In this situation, bgpd on the router that tries to advertise IPv4-VPN
routes will be crashed with "invalid MP nexthop length (AFI IP6)".

This issue is happened because MP_REACH_NLRI path attribute is not
generated correctly when ipv4-vpn routes are advertised to IPv6 peer.
When IPv4 routes are leaked from VRF RIB, the nexthop of these routes
are also IPv4 address (0.0.0.0/0 or specific addresses). However,
bgp_packet_mpattr_start only covers the case of IPv6 nexthop (for IPv6
peer).

ipv4-unicast routes were not affected by this issue because the case of
IPv4 nexthop is covered in `else` block.

Signed-off-by: Ryoga Saito <ryoga.saito@linecorp.com>
(cherry picked from commit 63e7ddb509435d9e178cf51a9a288273fb91bf7e)
bgpd/bgp_attr.c