aboutsummaryrefslogtreecommitdiffstats
path: root/vpp
diff options
context:
space:
mode:
authorPavel Kotucek <pkotucek@cisco.com>2016-12-06 10:10:10 +0100
committerDave Barach <openvpp@barachs.net>2016-12-06 17:26:48 +0000
commit3a2a1c47bc1f319d1f46abd2a364b3cf82404405 (patch)
treef9cf6e11b6f2a718f2c6dc917cde31953bb8879b /vpp
parentfc6e693d0a3e3518b7b8de270542d2b5f9a17150 (diff)
span: add tx functionality and support for multiple mirror ports
Change-Id: Ib6dd290085e6f9a434499af8d19f346220dc8428 Signed-off-by: Damjan Marion <damarion@cisco.com> Signed-off-by: Pavel Kotucek <pkotucek@cisco.com>
Diffstat (limited to 'vpp')
-rw-r--r--vpp/vpp-api/api.c48
-rw-r--r--vpp/vpp-api/custom_dump.c19
-rw-r--r--vpp/vpp-api/vpe.api43
3 files changed, 17 insertions, 93 deletions
diff --git a/vpp/vpp-api/api.c b/vpp/vpp-api/api.c
index 4a3ec06ddf6..ec52f440d30 100644
--- a/vpp/vpp-api/api.c
+++ b/vpp/vpp-api/api.c
@@ -301,8 +301,6 @@ _(SET_IPFIX_CLASSIFY_STREAM, set_ipfix_classify_stream) \
_(IPFIX_CLASSIFY_STREAM_DUMP, ipfix_classify_stream_dump) \
_(IPFIX_CLASSIFY_TABLE_ADD_DEL, ipfix_classify_table_add_del) \
_(IPFIX_CLASSIFY_TABLE_DUMP, ipfix_classify_table_dump) \
-_(SW_INTERFACE_SPAN_ENABLE_DISABLE, sw_interface_span_enable_disable) \
-_(SW_INTERFACE_SPAN_DUMP, sw_interface_span_dump) \
_(GET_NEXT_INDEX, get_next_index) \
_(PG_CREATE_INTERFACE, pg_create_interface) \
_(PG_CAPTURE, pg_capture) \
@@ -7578,52 +7576,6 @@ static void
}
static void
- vl_api_sw_interface_span_enable_disable_t_handler
- (vl_api_sw_interface_span_enable_disable_t * mp)
-{
- vl_api_sw_interface_span_enable_disable_reply_t *rmp;
- int rv;
-
- 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->enable);
-
- REPLY_MACRO (VL_API_SW_INTERFACE_SPAN_ENABLE_DISABLE_REPLY);
-}
-
-static void
-vl_api_sw_interface_span_dump_t_handler (vl_api_sw_interface_span_dump_t * mp)
-{
-
- unix_shared_memory_queue_t *q;
- vl_api_sw_interface_span_details_t *rmp;
- span_main_t *sm = &span_main;
- u32 src_sw_if_index = 0, *dst_sw_if_index;
-
- q = vl_api_client_index_to_input_queue (mp->client_index);
- if (!q)
- return;
-
- vec_foreach (dst_sw_if_index, sm->dst_by_src_sw_if_index)
- {
- if (*dst_sw_if_index > 0)
- {
- rmp = vl_msg_api_alloc (sizeof (*rmp));
- memset (rmp, 0, sizeof (*rmp));
- rmp->_vl_msg_id = ntohs (VL_API_SW_INTERFACE_SPAN_DETAILS);
- rmp->context = mp->context;
-
- rmp->sw_if_index_from = htonl (src_sw_if_index);
- rmp->sw_if_index_to = htonl (*dst_sw_if_index);
-
- vl_msg_api_send_shmem (q, (u8 *) & rmp);
- }
- src_sw_if_index++;
- }
-}
-
-static void
vl_api_pg_create_interface_t_handler (vl_api_pg_create_interface_t * mp)
{
vl_api_pg_create_interface_reply_t *rmp;
diff --git a/vpp/vpp-api/custom_dump.c b/vpp/vpp-api/custom_dump.c
index d0a8ecaea8f..82195f60ca8 100644
--- a/vpp/vpp-api/custom_dump.c
+++ b/vpp/vpp-api/custom_dump.c
@@ -2172,8 +2172,23 @@ static void *vl_api_sw_interface_span_enable_disable_t_print
s = format (0, "SCRIPT: sw_interface_span_enable_disable ");
s = format (s, "src_sw_if_index %u ", ntohl (mp->sw_if_index_from));
s = format (s, "dst_sw_if_index %u ", ntohl (mp->sw_if_index_to));
- if (!mp->enable)
- s = format (s, "disable ");
+
+ switch (mp->state)
+ {
+ case 0:
+ s = format (s, "disable ");
+ break;
+ case 1:
+ s = format (s, "rx ");
+ break;
+ case 2:
+ s = format (s, "tx ");
+ break;
+ case 3:
+ default:
+ s = format (s, "both ");
+ break;
+ }
FINISH;
}
diff --git a/vpp/vpp-api/vpe.api b/vpp/vpp-api/vpe.api
index 487ce3aa078..6d20dabc515 100644
--- a/vpp/vpp-api/vpe.api
+++ b/vpp/vpp-api/vpe.api
@@ -4633,49 +4633,6 @@ define flow_classify_details {
u32 table_index;
};
-/** \brief Enable/Disable span to mirror traffic from one interface to another
- @param client_index - opaque cookie to identify the sender
- @param context - sender context which was passed in the request
- @param sw_if_index_from - interface to be mirorred
- @param sw_if_index_to - interface where the traffic is mirrored
- @param enable - 1 enable SPAN, 0 SPAN on given interface
-*/
-define sw_interface_span_enable_disable{
- u32 client_index;
- u32 context;
- u32 sw_if_index_from;
- u32 sw_if_index_to;
- u8 enable;
-};
-
-/** \brief Reply to SPAN enable/disable request
- @param context - sender context which was passed in the request
-*/
-define sw_interface_span_enable_disable_reply {
- u32 context;
- i32 retval;
-};
-
-/** \brief SPAN dump request
- @param client_index - opaque cookie to identify the sender
- @param context - sender context, to match reply w/ request
-*/
-define sw_interface_span_dump {
- u32 client_index;
- u32 context;
-};
-
-/** \brief Reply to SPAN dump request
- @param context - sender context which was passed in the request
- @param sw_if_index_from - mirorred interface
- @param sw_if_index_to - interface where the traffic is mirrored
-*/
-define sw_interface_span_details {
- u32 context;
- u32 sw_if_index_from;
- u32 sw_if_index_to;
-};
-
/** \brief Query relative index via node names
@param client_index - opaque cookie to identify the sender
@param context - sender context, to match reply w/ request