From 908965db7e3075ba7bacd924bfb0df203fe6cc7d Mon Sep 17 00:00:00 2001 From: Jakub Grajciar Date: Fri, 31 Jan 2020 09:51:41 +0100 Subject: [PATCH 1/1] span: API cleanup Use consistent API types. Type: fix Signed-off-by: Jakub Grajciar Change-Id: Ifddac07b15b116574de3a97f7c80d7bf6a3171f7 Signed-off-by: Jakub Grajciar --- MAINTAINERS | 5 +++++ extras/vom/vom/interface_span_cmds.cpp | 14 +++++--------- src/vnet/span/span.api | 30 ++++++++++++++++++++---------- src/vnet/span/span_api.c | 6 +++--- 4 files changed, 33 insertions(+), 22 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index ab317fd7e0c..d0abdffd7ad 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -185,6 +185,11 @@ I: teib M: Neale Ranns F: src/vnet/teib/ +VNET SPAN +I: span +M: N/A +F: src/vnet/span + Crypto native Plugin I: crypto-native M: Damjan Marion diff --git a/extras/vom/vom/interface_span_cmds.cpp b/extras/vom/vom/interface_span_cmds.cpp index 72bd6100bc0..00dbdd0b895 100644 --- a/extras/vom/vom/interface_span_cmds.cpp +++ b/extras/vom/vom/interface_span_cmds.cpp @@ -28,8 +28,7 @@ config_cmd::config_cmd(HW::item& item, , m_itf_from(itf_from) , m_itf_to(itf_to) , m_state(state) -{ -} +{} bool config_cmd::operator==(const config_cmd& o) const @@ -47,7 +46,7 @@ config_cmd::issue(connection& con) payload.is_l2 = 0; payload.sw_if_index_from = m_itf_from.value(); payload.sw_if_index_to = m_itf_to.value(); - payload.state = m_state.value(); + payload.state = (vapi_enum_span_state)m_state.value(); VAPI_CALL(req.execute()); @@ -71,8 +70,7 @@ unconfig_cmd::unconfig_cmd(HW::item& item, : rpc_cmd(item) , m_itf_from(itf_from) , m_itf_to(itf_to) -{ -} +{} bool unconfig_cmd::operator==(const unconfig_cmd& o) const @@ -89,7 +87,7 @@ unconfig_cmd::issue(connection& con) payload.is_l2 = 0; payload.sw_if_index_from = m_itf_from.value(); payload.sw_if_index_to = m_itf_to.value(); - payload.state = 0; + payload.state = SPAN_STATE_API_DISABLED; VAPI_CALL(req.execute()); @@ -110,9 +108,7 @@ unconfig_cmd::to_string() const return (s.str()); } -dump_cmd::dump_cmd() -{ -} +dump_cmd::dump_cmd() {} bool dump_cmd::operator==(const dump_cmd& other) const diff --git a/src/vnet/span/span.api b/src/vnet/span/span.api index 90812438105..95d5ad11c36 100644 --- a/src/vnet/span/span.api +++ b/src/vnet/span/span.api @@ -14,7 +14,17 @@ * limitations under the License. */ -option version = "1.0.0"; +option version = "2.0.0"; + +import "vnet/interface_types.api"; + +enum span_state +{ + SPAN_STATE_API_DISABLED = 0, + SPAN_STATE_API_RX = 1, + SPAN_STATE_API_TX = 2, + SPAN_STATE_API_RX_TX = 3, +}; /** \brief Enable/Disable span to mirror traffic from one interface to another @param client_index - opaque cookie to identify the sender @@ -27,10 +37,10 @@ option version = "1.0.0"; autoreply define sw_interface_span_enable_disable { u32 client_index; u32 context; - u32 sw_if_index_from; - u32 sw_if_index_to; - u8 state; - u8 is_l2; + vl_api_interface_index_t sw_if_index_from; + vl_api_interface_index_t sw_if_index_to; + vl_api_span_state_t state; + bool is_l2; }; /** \brief SPAN dump request @@ -41,7 +51,7 @@ autoreply define sw_interface_span_enable_disable { define sw_interface_span_dump { u32 client_index; u32 context; - u8 is_l2; + bool is_l2; }; /** \brief Reply to SPAN dump request @@ -53,8 +63,8 @@ define sw_interface_span_dump { */ define sw_interface_span_details { u32 context; - u32 sw_if_index_from; - u32 sw_if_index_to; - u8 state; - u8 is_l2; + vl_api_interface_index_t sw_if_index_from; + vl_api_interface_index_t sw_if_index_to; + vl_api_span_state_t state; + bool is_l2; }; diff --git a/src/vnet/span/span_api.c b/src/vnet/span/span_api.c index 6ed58cd8b6b..dacbe2e0aa9 100644 --- a/src/vnet/span/span_api.c +++ b/src/vnet/span/span_api.c @@ -56,7 +56,7 @@ static void vlib_main_t *vm = vlib_get_main (); rv = span_add_delete_entry (vm, ntohl (mp->sw_if_index_from), - ntohl (mp->sw_if_index_to), mp->state, + ntohl (mp->sw_if_index_to), ntohl (mp->state), mp->is_l2 ? SPAN_FEAT_L2 : SPAN_FEAT_DEVICE); REPLY_MACRO (VL_API_SW_INTERFACE_SPAN_ENABLE_DISABLE_REPLY); @@ -95,8 +95,8 @@ vl_api_sw_interface_span_dump_t_handler (vl_api_sw_interface_span_dump_t * mp) rmp->sw_if_index_from = htonl (si - sm->interfaces); rmp->sw_if_index_to = htonl (i); - rmp->state = (u8) (clib_bitmap_get (rxm->mirror_ports, i) + - clib_bitmap_get (txm->mirror_ports, i) * 2); + rmp->state = htonl ((clib_bitmap_get (rxm->mirror_ports, i) + + clib_bitmap_get (txm->mirror_ports, i) * 2)); rmp->is_l2 = mp->is_l2; vl_api_send_msg (reg, (u8 *) rmp); -- 2.16.6