FD.io VPP
v19.08.3-2-gbabecb413
Vector Packet Processing
l2_xcrw.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 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
#ifndef __included_l2_xcrw_h__
16
#define __included_l2_xcrw_h__
17
18
#include <
vlib/vlib.h
>
19
#include <
vnet/vnet.h
>
20
#include <
vnet/pg/pg.h
>
21
#include <
vppinfra/error.h
>
22
#include <
vnet/ip/ip.h
>
23
#include <
vnet/l2/l2_input.h
>
24
#include <
vnet/l2/l2_output.h
>
25
#include <
vnet/api_errno.h
>
26
#include <
vnet/ethernet/ethernet.h
>
27
28
typedef
struct
29
{
30
/*
31
* Let: rewrite_header.sw_if_index = tx_fib_index or ~0.
32
* rewrite_header.next_index = L2_XCRW_NEXT_XXX
33
*/
34
vnet_declare_rewrite
(
VLIB_BUFFER_PRE_DATA_SIZE
);
35
}
l2_xcrw_adjacency_t
;
36
37
typedef
struct
38
{
39
/* L2 interface */
40
u32
l2_sw_if_index
;
41
42
/* Tunnel interface */
43
u32
tunnel_sw_if_index
;
/* This field remains set in freed pool elts */
44
45
}
l2_xcrw_tunnel_t
;
46
47
typedef
struct
48
{
49
u32
cached_next_index
;
50
51
/* Vector of cross-connect rewrites */
52
l2_xcrw_adjacency_t
*
adj_by_sw_if_index
;
53
54
/* Pool of xcrw tunnels */
55
l2_xcrw_tunnel_t
*
tunnels
;
56
57
/* Tunnel index by tunnel sw_if_index */
58
uword
*
tunnel_index_by_l2_sw_if_index
;
59
60
/* convenience variables */
61
vlib_main_t
*
vlib_main
;
62
vnet_main_t
*
vnet_main
;
63
}
l2_xcrw_main_t
;
64
65
typedef
enum
66
{
67
L2_XCRW_NEXT_DROP
,
68
L2_XCRW_N_NEXT
,
69
}
l2_xcrw_next_t
;
70
71
#define foreach_l2_xcrw_error \
72
_(DROP, "Packets dropped") \
73
_(FWD, "Packets forwarded")
74
75
typedef
enum
76
{
77
#define _(sym,str) L2_XCRW_ERROR_##sym,
78
foreach_l2_xcrw_error
79
#undef _
80
L2_XCRW_N_ERROR
,
81
}
l2_xcrw_error_t
;
82
83
extern
vlib_node_registration_t
l2_xcrw_node
;
84
85
#endif
/* __included_l2_xcrw_h__ */
86
87
/*
88
* fd.io coding-style-patch-verification: ON
89
*
90
* Local Variables:
91
* eval: (c-set-style "gnu")
92
* End:
93
*/
l2_xcrw_adjacency_t
Definition:
l2_xcrw.h:28
l2_xcrw_node
vlib_node_registration_t l2_xcrw_node
(constructor) VLIB_REGISTER_NODE (l2_xcrw_node)
Definition:
l2_xcrw.c:242
l2_xcrw_main_t::vlib_main
vlib_main_t * vlib_main
Definition:
l2_xcrw.h:61
VLIB_BUFFER_PRE_DATA_SIZE
#define VLIB_BUFFER_PRE_DATA_SIZE
Definition:
buffer.h:51
ip.h
L2_XCRW_NEXT_DROP
Definition:
l2_xcrw.h:67
l2_xcrw_tunnel_t
Definition:
l2_xcrw.h:37
l2_input.h
api_errno.h
l2_xcrw_error_t
l2_xcrw_error_t
Definition:
l2_xcrw.h:75
u32
unsigned int u32
Definition:
types.h:88
l2_xcrw_tunnel_t::l2_sw_if_index
u32 l2_sw_if_index
Definition:
l2_xcrw.h:40
ethernet.h
l2_xcrw_main_t::tunnels
l2_xcrw_tunnel_t * tunnels
Definition:
l2_xcrw.h:55
l2_xcrw_main_t
Definition:
l2_xcrw.h:47
l2_xcrw_main_t::vnet_main
vnet_main_t * vnet_main
Definition:
l2_xcrw.h:62
vnet.h
l2_xcrw_main_t::cached_next_index
u32 cached_next_index
Definition:
l2_xcrw.h:49
foreach_l2_xcrw_error
#define foreach_l2_xcrw_error
Definition:
l2_xcrw.h:71
l2_xcrw_next_t
l2_xcrw_next_t
Definition:
l2_xcrw.h:65
vlib.h
pg.h
vnet_main_t
Definition:
vnet.h:51
vlib_node_registration_t
struct _vlib_node_registration vlib_node_registration_t
vnet_declare_rewrite
#define vnet_declare_rewrite(total_bytes)
Definition:
rewrite.h:108
vlib_main_t
Definition:
main.h:83
uword
u64 uword
Definition:
types.h:112
error.h
l2_output.h
L2_XCRW_N_ERROR
Definition:
l2_xcrw.h:80
l2_xcrw_tunnel_t::tunnel_sw_if_index
u32 tunnel_sw_if_index
Definition:
l2_xcrw.h:43
L2_XCRW_N_NEXT
Definition:
l2_xcrw.h:68
l2_xcrw_main_t::adj_by_sw_if_index
l2_xcrw_adjacency_t * adj_by_sw_if_index
Definition:
l2_xcrw.h:52
l2_xcrw_main_t::tunnel_index_by_l2_sw_if_index
uword * tunnel_index_by_l2_sw_if_index
Definition:
l2_xcrw.h:58
src
vnet
l2
l2_xcrw.h
Generated on Mon Oct 19 2020 14:04:43 for FD.io VPP by
1.8.13