Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
SPAN: Add 'is_l2" flag to DETAILS response messages.
[vpp.git]
/
src
/
vnet
/
span
/
span_api.c
diff --git
a/src/vnet/span/span_api.c
b/src/vnet/span/span_api.c
index
69fa8e9
..
f96d267
100644
(file)
--- a/
src/vnet/span/span_api.c
+++ b/
src/vnet/span/span_api.c
@@
-66,25
+66,26
@@
static void
vl_api_sw_interface_span_dump_t_handler (vl_api_sw_interface_span_dump_t * mp)
{
vl_api_sw_interface_span_dump_t_handler (vl_api_sw_interface_span_dump_t * mp)
{
-
unix_shared_memory_queue_t *q
;
+
vl_api_registration_t *reg
;
span_interface_t *si;
vl_api_sw_interface_span_details_t *rmp;
span_main_t *sm = &span_main;
span_interface_t *si;
vl_api_sw_interface_span_details_t *rmp;
span_main_t *sm = &span_main;
-
q = vl_api_client_index_to_input_queue
(mp->client_index);
- if (!
q
)
+
reg = vl_api_client_index_to_registration
(mp->client_index);
+ if (!
reg
)
return;
return;
+ span_feat_t sf = mp->is_l2 ? SPAN_FEAT_L2 : SPAN_FEAT_DEVICE;
/* *INDENT-OFF* */
vec_foreach (si, sm->interfaces)
{
/* *INDENT-OFF* */
vec_foreach (si, sm->interfaces)
{
-
span_mirror_t * drxm = &si->mirror_rxtx[SPAN_FEAT_DEVICE
][VLIB_RX];
-
span_mirror_t * dtxm = &si->mirror_rxtx[SPAN_FEAT_DEVICE
][VLIB_TX];
- if (
drxm->num_mirror_ports || d
txm->num_mirror_ports)
+
span_mirror_t * rxm = &si->mirror_rxtx[sf
][VLIB_RX];
+
span_mirror_t * txm = &si->mirror_rxtx[sf
][VLIB_TX];
+ if (
rxm->num_mirror_ports ||
txm->num_mirror_ports)
{
clib_bitmap_t *b;
u32 i;
{
clib_bitmap_t *b;
u32 i;
- b = clib_bitmap_dup_or (
drxm->mirror_ports, d
txm->mirror_ports);
+ b = clib_bitmap_dup_or (
rxm->mirror_ports,
txm->mirror_ports);
clib_bitmap_foreach (i, b, (
{
rmp = vl_msg_api_alloc (sizeof (*rmp));
clib_bitmap_foreach (i, b, (
{
rmp = vl_msg_api_alloc (sizeof (*rmp));
@@
-94,10
+95,11
@@
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->sw_if_index_from = htonl (si - sm->interfaces);
rmp->sw_if_index_to = htonl (i);
- rmp->state = (u8) (clib_bitmap_get (drxm->mirror_ports, i) +
- clib_bitmap_get (dtxm->mirror_ports, i) * 2);
+ rmp->state = (u8) (clib_bitmap_get (rxm->mirror_ports, i) +
+ clib_bitmap_get (txm->mirror_ports, i) * 2);
+ rmp->is_l2 = mp->is_l2;
- vl_
msg_api_send_shmem (q, (u8 *) &
rmp);
+ vl_
api_send_msg (reg, (u8 *)
rmp);
}));
clib_bitmap_free (b);
}
}));
clib_bitmap_free (b);
}