mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-15 12:30:43 +00:00
bgpd: clarify when the vpnv6 nexthop length must be modified
Using a route-map to update the local ipv6 address has to be better clarified. Actually, when a VPN SAFI is used, the nexthop length must be changed to 48 bytes. Other cases, the length will be 32 bytes. Fixes:9795e9f234
("bgpd: fix when route-map changes the link local nexthop for vpnv6") Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com> (cherry picked from commit5bbcc78202
)
This commit is contained in:
parent
bea6f612ae
commit
fd5dcbacfa
@ -3576,17 +3576,29 @@ route_set_ipv6_nexthop_local(void *rule, const struct prefix *p, void *object)
|
||||
{
|
||||
struct in6_addr *address;
|
||||
struct bgp_path_info *path;
|
||||
struct bgp_dest *dest;
|
||||
struct bgp_table *table = NULL;
|
||||
|
||||
/* Fetch routemap's rule information. */
|
||||
address = rule;
|
||||
path = object;
|
||||
dest = path->net;
|
||||
|
||||
if (!dest)
|
||||
return RMAP_OKAY;
|
||||
|
||||
table = bgp_dest_table(dest);
|
||||
if (!table)
|
||||
return RMAP_OKAY;
|
||||
|
||||
/* Set next hop value. */
|
||||
path->attr->mp_nexthop_local = *address;
|
||||
|
||||
/* Set nexthop length. */
|
||||
if (path->attr->mp_nexthop_len != BGP_ATTR_NHLEN_IPV6_GLOBAL_AND_LL &&
|
||||
path->attr->mp_nexthop_len != BGP_ATTR_NHLEN_VPNV6_GLOBAL_AND_LL)
|
||||
if (table->safi == SAFI_MPLS_VPN || table->safi == SAFI_ENCAP ||
|
||||
table->safi == SAFI_EVPN)
|
||||
path->attr->mp_nexthop_len = BGP_ATTR_NHLEN_VPNV6_GLOBAL_AND_LL;
|
||||
else
|
||||
path->attr->mp_nexthop_len = BGP_ATTR_NHLEN_IPV6_GLOBAL_AND_LL;
|
||||
|
||||
SET_FLAG(path->attr->rmap_change_flags,
|
||||
|
Loading…
Reference in New Issue
Block a user