mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-23 06:47:07 +00:00
zebra: Allow blackhole singleton nexthops to be v6
A blackhole nexthop, according to the linux kernel, can be v4 or v6. A v4 blackhole nexthop cannot be used on a v6 route, but a v6 blackhole nexthop can be used with a v4 route. Convert all blackhole singleton nexthops to v6 and just use that. Possibly reducing the number of active nexthops by 1. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
parent
c10cdcd79a
commit
f90989d52a
@ -356,18 +356,23 @@ void zebra_nhe_init(struct nhg_hash_entry *nhe, afi_t afi,
|
||||
*/
|
||||
if (nh && (nh->next == NULL)) {
|
||||
switch (nh->type) {
|
||||
case NEXTHOP_TYPE_IFINDEX:
|
||||
case NEXTHOP_TYPE_BLACKHOLE:
|
||||
/*
|
||||
* This switch case handles setting the afi different
|
||||
* for ipv4/v6 routes. Ifindex/blackhole nexthop
|
||||
* for ipv4/v6 routes. Ifindex nexthop
|
||||
* objects cannot be ambiguous, they must be Address
|
||||
* Family specific. If we get here, we will either use
|
||||
* the AF of the route, or the one we got passed from
|
||||
* here from the kernel.
|
||||
* Family specific as that the kernel relies on these
|
||||
* for some reason. blackholes can be v6 because the
|
||||
* v4 kernel infrastructure allows the usage of v6
|
||||
* blackholes in this case. if we get here, we will
|
||||
* either use the AF of the route, or the one we got
|
||||
* passed from here from the kernel.
|
||||
*/
|
||||
case NEXTHOP_TYPE_IFINDEX:
|
||||
nhe->afi = afi;
|
||||
break;
|
||||
case NEXTHOP_TYPE_BLACKHOLE:
|
||||
nhe->afi = AFI_IP6;
|
||||
break;
|
||||
case NEXTHOP_TYPE_IPV4_IFINDEX:
|
||||
case NEXTHOP_TYPE_IPV4:
|
||||
nhe->afi = AFI_IP;
|
||||
|
Loading…
Reference in New Issue
Block a user