FD.io VPP  v16.09
Vector Packet Processing
ila.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 ILA_H
17 #define ILA_H
18 
19 #include <vnet/vnet.h>
20 #include <vnet/ip/ip.h>
21 
22 #include <vppinfra/bihash_24_8.h>
24 
25 #define ila_foreach_type \
26  _(IID, 0, "iid") \
27  _(LUID, 1, "luid") \
28  _(VNID4, 2, "vnid-ip4") \
29  _(VNID6, 3, "vnid-ip6") \
30  _(VNIDM, 4, "vnid-multicast")
31 
32 #define ila_type_list "iid,luid,vnid-ip4,vnid-ip6,vnid-multicast"
33 
34 typedef enum
35 {
36 #define _(i,n,s) ILA_TYPE_##i = n,
38 #undef _
39 } ila_type_t;
40 
41 #define ila_csum_foreach_type \
42 _(NO_ACTION, 0, "no-action") \
43 _(NEUTRAL_MAP, 1, "neutral-map") \
44 _(ADJUST_TRANSPORT, 2, "adjust-transport")
45 
46 #define ila_csum_list "no-action,neutral-map,adjust-transport"
47 
48 typedef enum
49 {
50 #define _(i,n,s) ILA_CSUM_MODE_##i = n,
52 #undef _
55 
56 #define ila_foreach_direction \
57 _(BIDIR, 0, "bidir") \
58 _(SIR2ILA, 1, "sir2ila") \
59 _(ILA2SIR, 2, "ila2sir")
60 
61 #define ila_direction_list "bidir,sir2ila,ila2sir"
62 
63 typedef enum
64 {
65 #define _(i,n,s) ILA_DIR_##i = n,
67 #undef _
69 
70 typedef struct
71 {
78 } ila_entry_t;
79 
80 typedef struct
81 {
84 
85 typedef struct
86 {
87  ila_entry_t *entries; //Pool of ILA entries
88 
91  clib_bihash_24_8_t id_to_entry_table;
92 
94 
96 } ila_main_t;
97 
98 
99 typedef struct
100 {
110 
112 int ila_interface (u32 sw_if_index, u8 disable);
113 
114 u8 *format_half_ip6_address (u8 * s, va_list * va);
115 u8 *format_ila_direction (u8 * s, va_list * args);
116 u8 *format_ila_csum_mode (u8 * s, va_list * va);
117 u8 *format_ila_type (u8 * s, va_list * args);
118 
119 #endif //ILA_H
u32 entry_index
Definition: ila.h:82
ila_direction_t dir
Definition: ila.h:77
u8 * format_ila_type(u8 *s, va_list *args)
Definition: ila.c:106
clib_bihash_24_8_t id_to_entry_table
Definition: ila.h:91
ila_direction_t dir
Definition: ila.h:107
Definition: ila.h:99
ip6_address_t ila_address
Definition: ila.h:74
ila_csum_mode_t
Definition: ila.h:48
ip6_address_t sir_address
Definition: ila.h:73
u8 * format_half_ip6_address(u8 *s, va_list *va)
Definition: ila.c:63
#define ila_foreach_direction
Definition: ila.h:56
ila_type_t type
Definition: ila.h:72
u8 is_del
Definition: ila.h:108
int ila_add_del_entry(ila_add_del_entry_args_t *args)
Definition: ila.c:619
unsigned long u64
Definition: types.h:89
u32 local_adj_index
Definition: ila.h:105
ila_direction_t
Definition: ila.h:63
u64 lookup_table_nbuckets
Definition: ila.h:89
#define ila_csum_foreach_type
Definition: ila.h:41
Definition: ila.h:70
u32 vnid
Definition: ila.h:104
u8 * format_ila_direction(u8 *s, va_list *args)
Definition: ila.c:73
#define ila_foreach_type
Definition: ila.h:25
ila_csum_mode_t csum_mode
Definition: ila.h:106
ila_entry_t * entries
Definition: ila.h:87
int ila_interface(u32 sw_if_index, u8 disable)
Definition: ila.c:793
ila_type_t type
Definition: ila.h:101
u32 ila_sir2ila_feature_index
Definition: ila.h:93
unsigned int u32
Definition: types.h:88
u64 lookup_table_size
Definition: ila.h:90
ip6_address_t sir_address
Definition: ila.h:102
Definition: ila.h:85
u32 ila_adj_index
Definition: ila.h:75
u32 ip6_lookup_next_index
Definition: ila.h:95
u8 * format_ila_csum_mode(u8 *s, va_list *va)
Definition: ila.c:85
unsigned char u8
Definition: types.h:56
u64 locator
Definition: ila.h:103
ila_csum_mode_t csum_mode
Definition: ila.h:76
ila_type_t
Definition: ila.h:34