Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
session: cleanup use of api_client_index
[vpp.git]
/
src
/
vnet
/
span
/
span.h
diff --git
a/src/vnet/span/span.h
b/src/vnet/span/span.h
index
a98b010
..
ebdb498
100644
(file)
--- a/
src/vnet/span/span.h
+++ b/
src/vnet/span/span.h
@@
-18,17
+18,32
@@
#include <vnet/vnet.h>
#include <vnet/ip/ip.h>
#include <vnet/vnet.h>
#include <vnet/ip/ip.h>
+#include <vnet/l2/l2_output.h>
+
+typedef enum
+{
+ SPAN_FEAT_DEVICE,
+ SPAN_FEAT_L2,
+ SPAN_FEAT_N
+} span_feat_t;
+
+typedef struct
+{
+ clib_bitmap_t *mirror_ports;
+ u32 num_mirror_ports;
+} span_mirror_t;
typedef struct
{
typedef struct
{
- clib_bitmap_t *rx_mirror_ports;
- clib_bitmap_t *tx_mirror_ports;
- u32 num_rx_mirror_ports;
- u32 num_tx_mirror_ports;
+ span_mirror_t mirror_rxtx[SPAN_FEAT_N][VLIB_N_RX_TX];
} span_interface_t;
typedef struct
{
} span_interface_t;
typedef struct
{
+ /* l2 feature Next nodes */
+ u32 l2_input_next[32];
+ u32 l2_output_next[32];
+
/* per-interface vector of span instances */
span_interface_t *interfaces;
/* per-interface vector of span instances */
span_interface_t *interfaces;
@@
-40,7
+55,7
@@
typedef struct
vnet_main_t *vnet_main;
} span_main_t;
vnet_main_t *vnet_main;
} span_main_t;
-span_main_t span_main;
+
extern
span_main_t span_main;
typedef struct
{
typedef struct
{
@@
-52,7
+67,7
@@
typedef struct
int
span_add_delete_entry (vlib_main_t * vm, u32 src_sw_if_index,
int
span_add_delete_entry (vlib_main_t * vm, u32 src_sw_if_index,
- u32 dst_sw_if_index, u8
is_add
);
+ u32 dst_sw_if_index, u8
state, span_feat_t sf
);
/*
* fd.io coding-style-patch-verification: ON
*
/*
* fd.io coding-style-patch-verification: ON
*