FD.io VPP
v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
span.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2016 Cisco and/or its affiliates.
3
* Licensed under the Apache License, Version 2.0 (the "License");
4
* you may not use this file except in compliance with the License.
5
* You may obtain a copy of the License at:
6
*
7
* http://www.apache.org/licenses/LICENSE-2.0
8
*
9
* Unless required by applicable law or agreed to in writing, software
10
* distributed under the License is distributed on an "AS IS" BASIS,
11
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
* See the License for the specific language governing permissions and
13
* limitations under the License.
14
*/
15
16
#ifndef __span_h__
17
#define __span_h__
18
19
#include <
vnet/vnet.h
>
20
#include <
vnet/ip/ip.h
>
21
#include <
vnet/l2/l2_output.h
>
22
23
typedef
enum
24
{
25
SPAN_FEAT_DEVICE
,
26
SPAN_FEAT_L2
,
27
SPAN_FEAT_N
28
}
span_feat_t
;
29
30
typedef
struct
31
{
32
clib_bitmap_t
*
mirror_ports
;
33
u32
num_mirror_ports
;
34
}
span_mirror_t
;
35
36
typedef
struct
37
{
38
span_mirror_t
mirror_rxtx[
SPAN_FEAT_N
][
VLIB_N_RX_TX
];
39
}
span_interface_t
;
40
41
typedef
struct
42
{
43
/* l2 feature Next nodes */
44
u32
l2_input_next[32];
45
u32
l2_output_next[32];
46
47
/* per-interface vector of span instances */
48
span_interface_t
*
interfaces
;
49
50
/* biggest sw_if_index used so far */
51
u32
max_sw_if_index
;
52
53
/* convenience */
54
vlib_main_t
*
vlib_main
;
55
vnet_main_t
*
vnet_main
;
56
}
span_main_t
;
57
58
extern
span_main_t
span_main
;
59
60
typedef
struct
61
{
62
u32
src_sw_if_index
;
/* mirrored interface index */
63
u32
mirror_sw_if_index
;
/* output interface index */
64
}
span_trace_t
;
65
66
#endif
/* __span_h__ */
67
68
int
69
span_add_delete_entry
(
vlib_main_t
*
vm
,
u32
src_sw_if_index,
70
u32
dst_sw_if_index,
u8
state
,
span_feat_t
sf);
71
/*
72
* fd.io coding-style-patch-verification: ON
73
*
74
* Local Variables:
75
* eval: (c-set-style "gnu")
76
* End:
77
*/
span_mirror_t
Definition:
span.h:30
SPAN_FEAT_N
Definition:
span.h:27
span_main_t::vlib_main
vlib_main_t * vlib_main
Definition:
span.h:54
span_mirror_t::num_mirror_ports
u32 num_mirror_ports
Definition:
span.h:33
span_trace_t::mirror_sw_if_index
u32 mirror_sw_if_index
Definition:
span.h:63
ip.h
u8
unsigned char u8
Definition:
types.h:56
span_main_t
Definition:
span.h:41
span_mirror_t::mirror_ports
clib_bitmap_t * mirror_ports
Definition:
span.h:32
state
vhost_vring_state_t state
Definition:
vhost_user.h:120
u32
unsigned int u32
Definition:
types.h:88
span_main_t::interfaces
span_interface_t * interfaces
Definition:
span.h:48
span_main_t::vnet_main
vnet_main_t * vnet_main
Definition:
span.h:55
VLIB_N_RX_TX
Definition:
defs.h:48
SPAN_FEAT_DEVICE
Definition:
span.h:25
span_main
span_main_t span_main
Definition:
span.c:24
vnet.h
vm
vlib_main_t * vm
Definition:
buffer.c:312
span_add_delete_entry
int span_add_delete_entry(vlib_main_t *vm, u32 src_sw_if_index, u32 dst_sw_if_index, u8 state, span_feat_t sf)
Definition:
span.c:52
vnet_main_t
Definition:
vnet.h:51
span_trace_t::src_sw_if_index
u32 src_sw_if_index
Definition:
span.h:62
span_interface_t
Definition:
span.h:36
vlib_main_t
Definition:
main.h:68
span_feat_t
span_feat_t
Definition:
span.h:23
SPAN_FEAT_L2
Definition:
span.h:26
l2_output.h
clib_bitmap_t
uword clib_bitmap_t
Definition:
bitmap.h:50
span_trace_t
Definition:
span.h:60
span_main_t::max_sw_if_index
u32 max_sw_if_index
Definition:
span.h:51
src
vnet
span
span.h
Generated on Mon Jun 29 2020 12:03:37 for FD.io VPP by
1.8.13