aboutsummaryrefslogtreecommitdiffstats
path: root/src/vlibapi
diff options
context:
space:
mode:
authorJohn Lo <loj@cisco.com>2017-05-18 22:26:47 -0400
committerJohn Lo <loj@cisco.com>2017-05-19 13:08:49 +0000
commit9793477a28c45e4eb5bba3f2050fe415e57e8ad8 (patch)
tree8b4071fdc7e2290896d92faf4ab4668dd5f7daa8 /src/vlibapi
parentfa7f9fddf27efb33ab34fc7fe7fa58b1c7a240d0 (diff)
Enforce Bridge Domain ID range to match 24-bit VNI range
Enforce bridge domain ID range to allow a maximum value of 16M which matches the range of 24-bit VNI used for virtual overlay network ID. Fix "show bridge-domain" output to allow full 16M BD ID range to be displayed using 8-digit spaces. Change-Id: I80d9c76ea7c001bcccd3c19df1f3e55d2970f01c Signed-off-by: John Lo <loj@cisco.com>
Diffstat (limited to 'src/vlibapi')
-rw-r--r--src/vlibapi/api_helper_macros.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/vlibapi/api_helper_macros.h b/src/vlibapi/api_helper_macros.h
index a492c3f40e2..2e29d4d7983 100644
--- a/src/vlibapi/api_helper_macros.h
+++ b/src/vlibapi/api_helper_macros.h
@@ -155,6 +155,20 @@ bad_tx_sw_if_index: \
; \
} while (0);
+#define VALIDATE_BD_ID(mp) \
+ do { u32 __rx_bd_id = ntohl(mp->bd_id); \
+ if (__rx_bd_id > L2_BD_ID_MAX) { \
+ rv = VNET_API_ERROR_BD_ID_EXCEED_MAX; \
+ goto bad_bd_id; \
+ } \
+} while(0);
+
+#define BAD_BD_ID_LABEL \
+do { \
+bad_bd_id: \
+ ; \
+} while (0);
+
#define pub_sub_handler(lca,UCA) \
static void vl_api_want_##lca##_t_handler ( \
vl_api_want_##lca##_t *mp) \