diff options
| author | Russ White <russ@riw.us> | 2022-01-18 09:08:38 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-18 09:08:38 -0500 |
| commit | 05786ac7744a6077a7f5aff9d2bfe1c92e54e17c (patch) | |
| tree | 7b25f5cda483135e144e490d3e8ac970b5781d7f /zebra/zebra_vty.c | |
| parent | c748ab25673c118e7ae67a82348af5f54c2bec64 (diff) | |
| parent | 485e8b5662dbecdb9f2e1a3e0a88dbfaffd640b2 (diff) | |
Merge pull request #9644 from opensourcerouting/ospf-opaque-attrs
OSPF opaque route attributes
Diffstat (limited to 'zebra/zebra_vty.c')
| -rw-r--r-- | zebra/zebra_vty.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c index 04f2e91e69..f35c9f65fb 100644 --- a/zebra/zebra_vty.c +++ b/zebra/zebra_vty.c @@ -429,6 +429,7 @@ static void zebra_show_ip_route_opaque(struct vty *vty, struct route_entry *re, struct json_object *json) { struct bgp_zebra_opaque bzo = {}; + struct ospf_zebra_opaque ozo = {}; if (!re->opaque) return; @@ -442,7 +443,7 @@ static void zebra_show_ip_route_opaque(struct vty *vty, struct route_entry *re, vty_out(vty, " Opaque Data: %s", (char *)re->opaque->data); break; - case ZEBRA_ROUTE_BGP: { + case ZEBRA_ROUTE_BGP: memcpy(&bzo, re->opaque->data, re->opaque->length); if (json) { @@ -467,7 +468,31 @@ static void zebra_show_ip_route_opaque(struct vty *vty, struct route_entry *re, vty_out(vty, " Selection reason : %s\n", bzo.selection_reason); } - } + break; + case ZEBRA_ROUTE_OSPF: + case ZEBRA_ROUTE_OSPF6: + memcpy(&ozo, re->opaque->data, re->opaque->length); + + if (json) { + json_object_string_add(json, "ospfPathType", + ozo.path_type); + if (ozo.area_id[0] != '\0') + json_object_string_add(json, "ospfAreaId", + ozo.area_id); + if (ozo.tag[0] != '\0') + json_object_string_add(json, "ospfTag", + ozo.tag); + } else { + vty_out(vty, " OSPF path type : %s\n", + ozo.path_type); + if (ozo.area_id[0] != '\0') + vty_out(vty, " OSPF area ID : %s\n", + ozo.area_id); + if (ozo.tag[0] != '\0') + vty_out(vty, " OSPF tag : %s\n", + ozo.tag); + } + break; default: break; } |
