diff options
author | Jafar Al-Gharaibeh <jafar@atcorp.com> | 2024-08-30 04:13:03 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-30 04:13:03 +0200 |
commit | 90787a57fdb787e8d6abdfa23f98fff509004f02 (patch) | |
tree | f2977786f8170b54f2bf971033bfb82e4101ac30 /zebra | |
parent | Merge pull request #16692 from donaldsharp/zebra_avoid_ng_null (diff) | |
parent | zebra: Allow blackhole singleton nexthops to be v6 (diff) | |
download | frr-90787a57fdb787e8d6abdfa23f98fff509004f02.tar.xz frr-90787a57fdb787e8d6abdfa23f98fff509004f02.zip |
Merge pull request #16689 from donaldsharp/blackhole_and_afi
Blackhole and afi
Diffstat (limited to 'zebra')
-rw-r--r-- | zebra/zebra_nhg.c | 17 | ||||
-rw-r--r-- | zebra/zebra_vty.c | 4 |
2 files changed, 14 insertions, 7 deletions
diff --git a/zebra/zebra_nhg.c b/zebra/zebra_nhg.c index 27b7f6340..ffcdcdd6f 100644 --- a/zebra/zebra_nhg.c +++ b/zebra/zebra_nhg.c @@ -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; diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c index 3b786e325..91aa4e400 100644 --- a/zebra/zebra_vty.c +++ b/zebra/zebra_vty.c @@ -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, @@ -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)) { |