diff options
author | Neale Ranns <nranns@cisco.com> | 2019-03-04 01:14:24 -0800 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2019-03-04 11:16:23 +0000 |
commit | 4689da0c6104435f86fab19e6bb4d1342ce4dcaf (patch) | |
tree | 5499b3785d20f85871843c2f009b548d14ffa2aa | |
parent | 19223e03fe768df3fc995a5d38a5de9f2c5acf27 (diff) |
GBP: fix and print GBP BD flags
Change-Id: If3fe2752c9339049123ff4674e3a29449b520374
Signed-off-by: Neale Ranns <nranns@cisco.com>
-rw-r--r-- | extras/vom/vom/gbp_bridge_domain.cpp | 5 | ||||
-rw-r--r-- | extras/vom/vom/gbp_bridge_domain_cmds.cpp | 3 | ||||
-rw-r--r-- | src/plugins/gbp/gbp_bridge_domain.c | 21 | ||||
-rw-r--r-- | src/plugins/gbp/gbp_bridge_domain.h | 1 | ||||
-rw-r--r-- | src/plugins/gbp/gbp_learn_node.c | 8 |
5 files changed, 31 insertions, 7 deletions
diff --git a/extras/vom/vom/gbp_bridge_domain.cpp b/extras/vom/vom/gbp_bridge_domain.cpp index 78f7d8d270f..c8d42d264a3 100644 --- a/extras/vom/vom/gbp_bridge_domain.cpp +++ b/extras/vom/vom/gbp_bridge_domain.cpp @@ -23,7 +23,7 @@ namespace VOM { const gbp_bridge_domain::flags_t gbp_bridge_domain::flags_t::NONE(0, "none"); const gbp_bridge_domain::flags_t gbp_bridge_domain::flags_t::DO_NOT_LEARN( - 0, + 1, "do-not-learn"); gbp_bridge_domain::flags_t::flags_t(int v, const std::string& s) @@ -200,7 +200,8 @@ std::string gbp_bridge_domain::to_string() const { std::ostringstream s; - s << "gbp-bridge-domain:[" << m_bd->to_string(); + s << "gbp-bridge-domain:[" << m_bd->to_string() + << " flags:" << m_flags.to_string(); if (m_bvi) s << " bvi:" << m_bvi->to_string(); diff --git a/extras/vom/vom/gbp_bridge_domain_cmds.cpp b/extras/vom/vom/gbp_bridge_domain_cmds.cpp index f5a6888b8a7..6fa8c49f9e5 100644 --- a/extras/vom/vom/gbp_bridge_domain_cmds.cpp +++ b/extras/vom/vom/gbp_bridge_domain_cmds.cpp @@ -65,7 +65,8 @@ create_cmd::to_string() const { std::ostringstream s; s << "gbp-bridge-domain: " << m_hw_item.to_string() - << " bvi:" << m_bvi.to_string() << " uu-fwd:" << m_uu_fwd.to_string(); + << " flags:" << m_flags.to_string() << " bvi:" << m_bvi.to_string() + << " uu-fwd:" << m_uu_fwd.to_string(); return (s.str()); } diff --git a/src/plugins/gbp/gbp_bridge_domain.c b/src/plugins/gbp/gbp_bridge_domain.c index 049c89bebab..261b5683903 100644 --- a/src/plugins/gbp/gbp_bridge_domain.c +++ b/src/plugins/gbp/gbp_bridge_domain.c @@ -113,6 +113,23 @@ gbp_bridge_domain_db_remove (gbp_bridge_domain_t * gb) gbp_bridge_domain_db.gbd_by_bd_index[gb->gb_bd_index] = INDEX_INVALID; } +u8 * +format_gbp_bridge_domain_flags (u8 * s, va_list * args) +{ + gbp_bridge_domain_flags_t gf = va_arg (*args, gbp_bridge_domain_flags_t); + + if (gf) + { + if (gf & GBP_BD_FLAG_DO_NOT_LEARN) + s = format (s, "do-not-learn"); + } + else + { + s = format (s, "noe"); + } + return (s); +} + static u8 * format_gbp_bridge_domain_ptr (u8 * s, va_list * args) { @@ -120,13 +137,13 @@ format_gbp_bridge_domain_ptr (u8 * s, va_list * args) vnet_main_t *vnm = vnet_get_main (); if (NULL != gb) - s = format (s, "[%d] bd:[%d,%d], bvi:%U uu-flood:%U locks:%d", + s = format (s, "[%d] bd:[%d,%d], bvi:%U uu-flood:%U flags:%U locks:%d", gb - gbp_bridge_domain_pool, gb->gb_bd_id, gb->gb_bd_index, format_vnet_sw_if_index_name, vnm, gb->gb_bvi_sw_if_index, format_vnet_sw_if_index_name, vnm, gb->gb_uu_fwd_sw_if_index, - gb->gb_locks); + format_gbp_bridge_domain_flags, gb->gb_flags, gb->gb_locks); else s = format (s, "NULL"); diff --git a/src/plugins/gbp/gbp_bridge_domain.h b/src/plugins/gbp/gbp_bridge_domain.h index 95b53dc2088..25498eee5fe 100644 --- a/src/plugins/gbp/gbp_bridge_domain.h +++ b/src/plugins/gbp/gbp_bridge_domain.h @@ -91,6 +91,7 @@ typedef int (*gbp_bridge_domain_cb_t) (gbp_bridge_domain_t * gb, void *ctx); extern void gbp_bridge_domain_walk (gbp_bridge_domain_cb_t bgpe, void *ctx); extern u8 *format_gbp_bridge_domain (u8 * s, va_list * args); +extern u8 *format_gbp_bridge_domain_flags (u8 * s, va_list * args); /** * DB of bridge_domains diff --git a/src/plugins/gbp/gbp_learn_node.c b/src/plugins/gbp/gbp_learn_node.c index d7a70bb1991..ebb121716b2 100644 --- a/src/plugins/gbp/gbp_learn_node.c +++ b/src/plugins/gbp/gbp_learn_node.c @@ -162,6 +162,7 @@ typedef struct gbp_learn_l2_trace_t_ u32 throttled; u32 epg; u32 d_bit; + gbp_bridge_domain_flags_t gb_flags; } gbp_learn_l2_trace_t; always_inline void @@ -317,6 +318,7 @@ VLIB_NODE_FN (gbp_learn_l2_node) (vlib_main_t * vm, t->throttled = t0; t->sw_if_index = sw_if_index0; t->epg = epg0; + t->gb_flags = gb0->gb_flags; t->d_bit = ! !(vnet_buffer2 (b0)->gbp.flags & VXLAN_GBP_GPFLAGS_D); } @@ -341,9 +343,11 @@ format_gbp_learn_l2_trace (u8 * s, va_list * args) CLIB_UNUSED (vlib_node_t * node) = va_arg (*args, vlib_node_t *); gbp_learn_l2_trace_t *t = va_arg (*args, gbp_learn_l2_trace_t *); - s = format (s, "new:%d throttled:%d d-bit:%d mac:%U itf:%d epg:%d", + s = format (s, "new:%d throttled:%d d-bit:%d mac:%U itf:%d epg:%d" + " gb-flags:%U", t->new, t->throttled, t->d_bit, - format_mac_address_t, &t->mac, t->sw_if_index, t->epg); + format_mac_address_t, &t->mac, t->sw_if_index, t->epg, + format_gbp_bridge_domain_flags, t->gb_flags); return s; } |