summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2021-01-05 18:25:10 -0500
committerDonald Sharp <sharpd@nvidia.com>2021-01-13 13:22:27 -0500
commitbf902d4c52cab7ebd3976870d75810f10e38f8b8 (patch)
tree99589c8b0e0fe337aba1d6aeebb263fc343d77fd /lib
parentd7ceaa8f5a9d83eddc784e395bb719dc59d4b4be (diff)
zebra: Create function to dump MACIP flags
Create a function to dump MACIP flags and to use it. Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/zclient.c23
-rw-r--r--lib/zclient.h5
2 files changed, 27 insertions, 1 deletions
diff --git a/lib/zclient.c b/lib/zclient.c
index 563673c6f3..f16c94369b 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -4147,3 +4147,26 @@ char *zclient_dump_route_flags(uint32_t flags, char *buf, size_t len)
: "");
return buf;
}
+
+char *zclient_evpn_dump_macip_flags(uint8_t flags, char *buf, size_t len)
+{
+ if (flags == 0) {
+ snprintfrr(buf, len, "None ");
+ return buf;
+ }
+
+ snprintfrr(
+ buf, len, "%s%s%s%s%s%s%s",
+ CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_STICKY) ? "Sticky MAC " : "",
+ CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_GW) ? "Gateway MAC " : "",
+ CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_ROUTER_FLAG) ? "Router "
+ : "",
+ CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_OVERRIDE_FLAG) ? "Override "
+ : "",
+ CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_SVI_IP) ? "SVI MAC " : "",
+ CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_PROXY_ADVERT) ? "Proxy "
+ : "",
+ CHECK_FLAG(flags, ZEBRA_MACIP_TYPE_SYNC_PATH) ? "Sync " : "");
+
+ return buf;
+}
diff --git a/lib/zclient.h b/lib/zclient.h
index 44aa1fc091..57bad7c2e6 100644
--- a/lib/zclient.h
+++ b/lib/zclient.h
@@ -771,8 +771,11 @@ zapi_rule_notify_owner2str(enum zapi_rule_notify_owner note)
#define ZEBRA_MACIP_TYPE_PROXY_ADVERT 0x20 /* Not locally active */
#define ZEBRA_MACIP_TYPE_SYNC_PATH 0x40 /* sync path */
/* XXX - flags is an u8; that needs to be changed to u32 if you need
- * to allocate past 0x80
+ * to allocate past 0x80. Additionally touch zclient_evpn_dump_macip_flags
*/
+#define MACIP_BUF_SIZE 128
+extern char *zclient_evpn_dump_macip_flags(uint8_t flags, char *buf,
+ size_t len);
/* Zebra ES VTEP flags (ZEBRA_REMOTE_ES_VTEP_ADD) */
/* ESR has been rxed from the VTEP. Only VTEPs that have advertised the