FD.io VPP
v21.10.1-2-g0a485f517
Vector Packet Processing
l2_learn.h
Go to the documentation of this file.
1
/*
2
* l2_learn.c : layer 2 learning using l2fib
3
*
4
* Copyright (c) 2014 Cisco and/or its affiliates.
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at:
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#ifndef included_l2learn_h
19
#define included_l2learn_h
20
21
#include <
vlib/vlib.h
>
22
#include <
vppinfra/bihash_8_8.h
>
23
#include <
vnet/ethernet/ethernet.h
>
24
25
26
typedef
struct
27
{
28
29
/* Hash table */
30
BVT
(clib_bihash) * mac_table;
31
32
/* number of dynamically learned mac entries */
33
u32
global_learn_count
;
34
35
/* maximum number of dynamically learned mac entries */
36
u32
global_learn_limit
;
37
38
/* maximum number of dynamically learned mac entries per bridge domain */
39
u32
bd_default_learn_limit
;
40
41
/* client waiting for L2 MAC events for learned and aged MACs */
42
u32
client_pid
;
43
u32
client_index
;
44
45
/* Next nodes for each feature */
46
u32
feat_next_node_index[32];
47
48
/* convenience variables */
49
vlib_main_t
*
vlib_main
;
50
vnet_main_t
*
vnet_main
;
51
}
l2learn_main_t
;
52
53
#define L2LEARN_DEFAULT_LIMIT (L2FIB_NUM_BUCKETS * 64)
54
55
extern
l2learn_main_t
l2learn_main
;
56
57
extern
vlib_node_registration_t
l2fib_mac_age_scanner_process_node
;
58
59
typedef
enum
60
{
61
L2_MAC_AGE_PROCESS_EVENT_START
= 1,
62
L2_MAC_AGE_PROCESS_EVENT_STOP
= 2,
63
L2_MAC_AGE_PROCESS_EVENT_ONE_PASS
= 3,
64
}
l2_mac_age_process_event_t
;
65
66
#endif
67
68
/*
69
* fd.io coding-style-patch-verification: ON
70
*
71
* Local Variables:
72
* eval: (c-set-style "gnu")
73
* End:
74
*/
vlib.h
L2_MAC_AGE_PROCESS_EVENT_START
@ L2_MAC_AGE_PROCESS_EVENT_START
Definition:
l2_learn.h:61
bihash_8_8.h
L2_MAC_AGE_PROCESS_EVENT_STOP
@ L2_MAC_AGE_PROCESS_EVENT_STOP
Definition:
l2_learn.h:62
l2_mac_age_process_event_t
l2_mac_age_process_event_t
Definition:
l2_learn.h:59
l2learn_main_t::global_learn_count
u32 global_learn_count
Definition:
l2_learn.h:33
l2learn_main_t::client_index
u32 client_index
Definition:
l2_learn.h:43
ethernet.h
l2learn_main_t::bd_default_learn_limit
u32 bd_default_learn_limit
Definition:
l2_learn.h:39
l2learn_main_t
Definition:
l2_learn.h:26
l2learn_main_t::vnet_main
vnet_main_t * vnet_main
Definition:
l2_learn.h:50
BVT
BVT(clib_bihash)
The table of adjacencies indexed by the rewrite string.
Definition:
l2_fib.c:1065
l2learn_main_t::global_learn_limit
u32 global_learn_limit
Definition:
l2_learn.h:36
vlib_node_registration_t
struct _vlib_node_registration vlib_node_registration_t
vnet_main_t
Definition:
vnet.h:76
u32
unsigned int u32
Definition:
types.h:88
l2learn_main
l2learn_main_t l2learn_main
Definition:
l2_learn.c:32
vlib_main_t
Definition:
main.h:102
L2_MAC_AGE_PROCESS_EVENT_ONE_PASS
@ L2_MAC_AGE_PROCESS_EVENT_ONE_PASS
Definition:
l2_learn.h:63
l2fib_mac_age_scanner_process_node
vlib_node_registration_t l2fib_mac_age_scanner_process_node
(constructor) VLIB_REGISTER_NODE (l2fib_mac_age_scanner_process_node)
Definition:
l2_fib.c:1370
l2learn_main_t::client_pid
u32 client_pid
Definition:
l2_learn.h:42
l2learn_main_t::vlib_main
vlib_main_t * vlib_main
Definition:
l2_learn.h:49
src
vnet
l2
l2_learn.h
Generated on Sat Jan 8 2022 10:36:48 for FD.io VPP by
1.8.17