FD.io VPP
v21.01.1
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
/* client waiting for L2 MAC events for learned and aged MACs */
39
u32
client_pid
;
40
u32
client_index
;
41
42
/* Next nodes for each feature */
43
u32
feat_next_node_index[32];
44
45
/* convenience variables */
46
vlib_main_t
*
vlib_main
;
47
vnet_main_t
*
vnet_main
;
48
}
l2learn_main_t
;
49
50
#define L2LEARN_DEFAULT_LIMIT (L2FIB_NUM_BUCKETS * 64)
51
52
extern
l2learn_main_t
l2learn_main
;
53
54
extern
vlib_node_registration_t
l2fib_mac_age_scanner_process_node
;
55
56
typedef
enum
57
{
58
L2_MAC_AGE_PROCESS_EVENT_START
= 1,
59
L2_MAC_AGE_PROCESS_EVENT_STOP
= 2,
60
L2_MAC_AGE_PROCESS_EVENT_ONE_PASS
= 3,
61
}
l2_mac_age_process_event_t
;
62
63
#endif
64
65
/*
66
* fd.io coding-style-patch-verification: ON
67
*
68
* Local Variables:
69
* eval: (c-set-style "gnu")
70
* End:
71
*/
l2learn_main_t
Definition:
l2_learn.h:26
l2learn_main_t::global_learn_count
u32 global_learn_count
Definition:
l2_learn.h:33
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:1307
l2learn_main_t::client_index
u32 client_index
Definition:
l2_learn.h:40
L2_MAC_AGE_PROCESS_EVENT_ONE_PASS
Definition:
l2_learn.h:60
u32
unsigned int u32
Definition:
types.h:88
ethernet.h
l2learn_main_t::vnet_main
vnet_main_t * vnet_main
Definition:
l2_learn.h:47
l2_mac_age_process_event_t
l2_mac_age_process_event_t
Definition:
l2_learn.h:56
BVT
BVT(clib_bihash)
Definition:
l2_fib.c:1019
vlib.h
vnet_main_t
Definition:
vnet.h:60
L2_MAC_AGE_PROCESS_EVENT_START
Definition:
l2_learn.h:58
l2learn_main_t::global_learn_limit
u32 global_learn_limit
Definition:
l2_learn.h:36
bihash_8_8.h
vlib_node_registration_t
struct _vlib_node_registration vlib_node_registration_t
L2_MAC_AGE_PROCESS_EVENT_STOP
Definition:
l2_learn.h:59
vlib_main_t
Definition:
main.h:119
l2learn_main_t::vlib_main
vlib_main_t * vlib_main
Definition:
l2_learn.h:46
l2learn_main
l2learn_main_t l2learn_main
Definition:
l2_learn.c:32
l2learn_main_t::client_pid
u32 client_pid
Definition:
l2_learn.h:39
src
vnet
l2
l2_learn.h
Generated on Wed Jul 14 2021 16:05:52 for FD.io VPP by
1.8.13