Skip to content

Commit

Permalink
Merge pull request #16689 from donaldsharp/blackhole_and_afi
Browse files Browse the repository at this point in the history
Blackhole and afi
  • Loading branch information
Jafaral authored Aug 30, 2024
2 parents 6bfd311 + f90989d commit 90787a5
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
17 changes: 11 additions & 6 deletions zebra/zebra_nhg.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 3 additions & 1 deletion zebra/zebra_vty.c
Original file line number Diff line number Diff line change
Expand Up @@ -1195,6 +1195,7 @@ static void show_nexthop_group_out(struct vty *vty, struct nhg_hash_entry *nhe,
json_object_string_add(json, "uptime", up_str);
json_object_string_add(json, "vrf",
vrf_id_to_name(nhe->vrf_id));
json_object_string_add(json, "afi", afi2str(nhe->afi));

} else {
vty_out(vty, "ID: %u (%s)\n", nhe->id,
Expand All @@ -1208,7 +1209,8 @@ static void show_nexthop_group_out(struct vty *vty, struct nhg_hash_entry *nhe,
vty_out(vty, "\n");

vty_out(vty, " Uptime: %s\n", up_str);
vty_out(vty, " VRF: %s\n", vrf_id_to_name(nhe->vrf_id));
vty_out(vty, " VRF: %s(%s)\n", vrf_id_to_name(nhe->vrf_id),
afi2str(nhe->afi));
}

if (CHECK_FLAG(nhe->flags, NEXTHOP_GROUP_VALID)) {
Expand Down

0 comments on commit 90787a5

Please sign in to comment.