From: Jakub Grajciar Date: Fri, 31 Jan 2020 08:51:41 +0000 (+0100) Subject: span: API cleanup X-Git-Tag: v20.09-rc0~502 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=908965db7 span: API cleanup Use consistent API types. Type: fix Signed-off-by: Jakub Grajciar Change-Id: Ifddac07b15b116574de3a97f7c80d7bf6a3171f7 Signed-off-by: Jakub Grajciar --- 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);