FD.io VPP
v20.09-64-g4f7b92f0a
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 <
vnet/ethernet/ethernet.h
>
23
24
25
typedef
struct
26
{
27
28
/* Hash table */
29
BVT
(clib_bihash) * mac_table;
30
31
/* number of dynamically learned mac entries */
32
u32
global_learn_count
;
33
34
/* maximum number of dynamically learned mac entries */
35
u32
global_learn_limit
;
36
37
/* client waiting for L2 MAC events for learned and aged MACs */
38
u32
client_pid
;
39
u32
client_index
;
40
41
/* Next nodes for each feature */
42
u32
feat_next_node_index[32];
43
44
/* convenience variables */
45
vlib_main_t
*
vlib_main
;
46
vnet_main_t
*
vnet_main
;
47
}
l2learn_main_t
;
48
49
#define L2LEARN_DEFAULT_LIMIT (L2FIB_NUM_BUCKETS * 64)
50
51
extern
l2learn_main_t
l2learn_main
;
52
53
extern
vlib_node_registration_t
l2fib_mac_age_scanner_process_node
;
54
55
typedef
enum
56
{
57
L2_MAC_AGE_PROCESS_EVENT_START
= 1,
58
L2_MAC_AGE_PROCESS_EVENT_STOP
= 2,
59
L2_MAC_AGE_PROCESS_EVENT_ONE_PASS
= 3,
60
}
l2_mac_age_process_event_t
;
61
62
#endif
63
64
/*
65
* fd.io coding-style-patch-verification: ON
66
*
67
* Local Variables:
68
* eval: (c-set-style "gnu")
69
* End:
70
*/
l2learn_main_t
Definition:
l2_learn.h:25
l2learn_main_t::global_learn_count
u32 global_learn_count
Definition:
l2_learn.h:32
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:1260
l2learn_main_t::client_index
u32 client_index
Definition:
l2_learn.h:39
L2_MAC_AGE_PROCESS_EVENT_ONE_PASS
Definition:
l2_learn.h:59
u32
unsigned int u32
Definition:
types.h:88
ethernet.h
l2learn_main_t::vnet_main
vnet_main_t * vnet_main
Definition:
l2_learn.h:46
l2_mac_age_process_event_t
l2_mac_age_process_event_t
Definition:
l2_learn.h:55
BVT
BVT(clib_bihash)
Definition:
l2_fib.c:972
vlib.h
vnet_main_t
Definition:
vnet.h:54
L2_MAC_AGE_PROCESS_EVENT_START
Definition:
l2_learn.h:57
l2learn_main_t::global_learn_limit
u32 global_learn_limit
Definition:
l2_learn.h:35
vlib_node_registration_t
struct _vlib_node_registration vlib_node_registration_t
L2_MAC_AGE_PROCESS_EVENT_STOP
Definition:
l2_learn.h:58
vlib_main_t
Definition:
main.h:120
l2learn_main_t::vlib_main
vlib_main_t * vlib_main
Definition:
l2_learn.h:45
l2learn_main
l2learn_main_t l2learn_main
Definition:
l2_learn.c:33
l2learn_main_t::client_pid
u32 client_pid
Definition:
l2_learn.h:38
src
vnet
l2
l2_learn.h
Generated on Thu Jun 3 2021 16:06:15 for FD.io VPP by
1.8.13