FD.io VPP
v16.12-rc0-308-g931be3a
Vector Packet Processing
Main Page
Related Pages
Data Structures
Source
Files
Symbols
FD.io VPP
Vector Packet Processing
Release Notes
Debug CLI
Startup Configuration
Todo List
Node Identifiers
Data Structures
Source
Files
Symbols
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
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
#endif
/* __included_l2_xcrw_h__ */
84
85
/*
86
* fd.io coding-style-patch-verification: ON
87
*
88
* Local Variables:
89
* eval: (c-set-style "gnu")
90
* End:
91
*/
l2_xcrw_adjacency_t
Definition:
l2_xcrw.h:28
error.h
l2_xcrw_main_t::vlib_main
vlib_main_t * vlib_main
Definition:
l2_xcrw.h:61
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
l2_xcrw_tunnel_t::l2_sw_if_index
u32 l2_sw_if_index
Definition:
l2_xcrw.h:40
VLIB_BUFFER_PRE_DATA_SIZE
#define VLIB_BUFFER_PRE_DATA_SIZE
Definition:
buffer.h:52
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:67
u32
unsigned int u32
Definition:
types.h:88
uword
u64 uword
Definition:
types.h:112
vnet_declare_rewrite
#define vnet_declare_rewrite(total_bytes)
Definition:
rewrite.h:84
vlib_main_t
Definition:
main.h:59
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
vnet
vnet
l2
l2_xcrw.h
Generated on Thu Nov 3 2016 18:24:46 for FD.io VPP by
1.8.11