FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | vnet_classify_bucket_t |
struct | vnet_classify_table_t |
Macros | |
#define | CLASSIFY_TRACE 0 |
#define | foreach_size_in_u32x4 |
#define | VNET_CLASSIFY_ENTRY_FREE (1<<0) |
#define | VNET_CLASSIFY_VECTOR_SIZE sizeof (((vnet_classify_table_t *) 0)->mask[0]) |
The vector size for the classifier in the add/del table 'match' is the number of vectors of this size. More... | |
Typedefs | |
typedef enum vnet_classify_flags_t_ | vnet_classify_flags_t |
typedef enum vnet_classify_action_t_ | vnet_classify_action_t |
typedef struct _vnet_classify_main | vnet_classify_main_t |
typedef struct _vnet_classify_entry | vnet_classify_entry_t |
Enumerations | |
enum | vnet_classify_flags_t_ { CLASSIFY_FLAG_NONE = 0, CLASSIFY_FLAG_USE_CURR_DATA = (1 << 0) } |
enum | vnet_classify_action_t_ { CLASSIFY_ACTION_NONE = 0, CLASSIFY_ACTION_SET_IP4_FIB_INDEX = 1, CLASSIFY_ACTION_SET_IP6_FIB_INDEX = 2, CLASSIFY_ACTION_SET_METADATA = 3 } |
#define CLASSIFY_TRACE 0 |
Definition at line 30 of file vnet_classify.h.
#define foreach_size_in_u32x4 |
Definition at line 63 of file vnet_classify.h.
#define VNET_CLASSIFY_ENTRY_FREE (1<<0) |
Definition at line 94 of file vnet_classify.h.
#define VNET_CLASSIFY_VECTOR_SIZE sizeof (((vnet_classify_table_t *) 0)->mask[0]) |
The vector size for the classifier in the add/del table 'match' is the number of vectors of this size.
Definition at line 211 of file vnet_classify.h.
typedef enum vnet_classify_action_t_ vnet_classify_action_t |
typedef struct _vnet_classify_entry vnet_classify_entry_t |
typedef enum vnet_classify_flags_t_ vnet_classify_flags_t |
typedef struct _vnet_classify_main vnet_classify_main_t |
Definition at line 61 of file vnet_classify.h.
Enumerator | |
---|---|
CLASSIFY_ACTION_NONE | |
CLASSIFY_ACTION_SET_IP4_FIB_INDEX | |
CLASSIFY_ACTION_SET_IP6_FIB_INDEX | |
CLASSIFY_ACTION_SET_METADATA |
Definition at line 52 of file vnet_classify.h.
Enumerator | |
---|---|
CLASSIFY_FLAG_NONE | |
CLASSIFY_FLAG_USE_CURR_DATA |
Definition at line 37 of file vnet_classify.h.
u32 classify_get_pcap_chain | ( | vnet_classify_main_t * | cm, |
u32 | sw_if_index | ||
) |
u32 classify_get_trace_chain | ( | void | ) |
void classify_set_pcap_chain | ( | vnet_classify_main_t * | cm, |
u32 | sw_if_index, | ||
u32 | table_index | ||
) |
Definition at line 1761 of file vnet_classify.c.
void classify_set_trace_chain | ( | vnet_classify_main_t * | cm, |
u32 | table_index | ||
) |
Definition at line 1734 of file vnet_classify.c.
u32 classify_sort_table_chain | ( | vnet_classify_main_t * | cm, |
u32 | table_index | ||
) |
Definition at line 1680 of file vnet_classify.c.
Definition at line 687 of file vnet_classify.c.
Definition at line 2207 of file vnet_classify.c.
STATIC_ASSERT_OFFSET_OF | ( | vnet_classify_entry_t | , |
key | , | ||
32 | |||
) |
Check there's no padding in the entry.
the key lies on a 16 byte boundary.
STATIC_ASSERT_OFFSET_OF | ( | vnet_classify_table_t | , |
cacheline1 | , | ||
CLIB_CACHE_LINE_BYTES | |||
) |
Ensure DP fields don't spill over to cache-line 2.
int vnet_classify_add_del_session | ( | vnet_classify_main_t * | cm, |
u32 | table_index, | ||
const u8 * | match, | ||
u32 | hit_next_index, | ||
u32 | opaque_index, | ||
i32 | advance, | ||
u8 | action, | ||
u16 | metadata, | ||
int | is_add | ||
) |
Definition at line 2745 of file vnet_classify.c.
int vnet_classify_add_del_table | ( | vnet_classify_main_t * | cm, |
const u8 * | mask, | ||
u32 | nbuckets, | ||
u32 | memory_size, | ||
u32 | skip, | ||
u32 | match, | ||
u32 | next_table_index, | ||
u32 | miss_next_index, | ||
u32 * | table_index, | ||
u8 | current_data_flag, | ||
i16 | current_data_offset, | ||
int | is_add, | ||
int | del_chain | ||
) |
Definition at line 747 of file vnet_classify.c.
void vnet_classify_delete_table_index | ( | vnet_classify_main_t * | cm, |
u32 | table_index, | ||
int | del_chain | ||
) |
Definition at line 164 of file vnet_classify.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
vnet_classify_entry_t* vnet_classify_find_entry | ( | vnet_classify_table_t * | t, |
u8 * | h, | ||
u64 | hash, | ||
f64 | now | ||
) |
Definition at line 657 of file vnet_classify.c.
|
inlinestatic |
Definition at line 399 of file vnet_classify.h.
|
inlinestatic |
Definition at line 335 of file vnet_classify.h.
|
inlinestatic |
Definition at line 344 of file vnet_classify.h.
u64 vnet_classify_hash_packet | ( | vnet_classify_table_t * | t, |
u8 * | h | ||
) |
|
inlinestatic |
Definition at line 250 of file vnet_classify.h.
vnet_classify_table_t* vnet_classify_new_table | ( | vnet_classify_main_t * | cm, |
const u8 * | mask, | ||
u32 | nbuckets, | ||
u32 | memory_size, | ||
u32 | skip_n_vectors, | ||
u32 | match_n_vectors | ||
) |
Definition at line 131 of file vnet_classify.c.
|
inlinestatic |
Definition at line 323 of file vnet_classify.h.
|
inlinestatic |
Definition at line 371 of file vnet_classify.h.
void vnet_classify_register_unformat_acl_next_index_fn | ( | unformat_function_t * | fn | ) |
void vnet_classify_register_unformat_ip_next_index_fn | ( | unformat_function_t * | fn | ) |
void vnet_classify_register_unformat_l2_next_index_fn | ( | unformat_function_t * | fn | ) |
void vnet_classify_register_unformat_opaque_index_fn | ( | unformat_function_t * | fn | ) |
void vnet_classify_register_unformat_policer_next_index_fn | ( | unformat_function_t * | fn | ) |
static_always_inline vnet_classify_table_t* vnet_classify_table_get | ( | u32 | table_index | ) |
Definition at line 242 of file vnet_classify.h.
foreach_size_in_u32x4 |
Definition at line 129 of file vnet_classify.h.
vlib_node_registration_t ip4_classify_node |
(constructor) VLIB_REGISTER_NODE (ip4_classify_node)
Definition at line 313 of file ip_classify.c.
vlib_node_registration_t ip6_classify_node |
(constructor) VLIB_REGISTER_NODE (ip6_classify_node)
Definition at line 334 of file ip_classify.c.
unformat_function_t unformat_classify_mask |
Definition at line 555 of file vnet_classify.h.
unformat_function_t unformat_classify_match |
Definition at line 564 of file vnet_classify.h.
unformat_function_t unformat_ip4_mask |
Definition at line 551 of file vnet_classify.h.
unformat_function_t unformat_ip4_match |
Definition at line 558 of file vnet_classify.h.
unformat_function_t unformat_ip6_mask |
Definition at line 552 of file vnet_classify.h.
unformat_function_t unformat_ip6_match |
Definition at line 559 of file vnet_classify.h.
unformat_function_t unformat_ip_next_index |
Definition at line 557 of file vnet_classify.h.
unformat_function_t unformat_l2_mask |
Definition at line 554 of file vnet_classify.h.
unformat_function_t unformat_l2_match |
Definition at line 563 of file vnet_classify.h.
unformat_function_t unformat_l2_next_index |
Definition at line 556 of file vnet_classify.h.
unformat_function_t unformat_l3_mask |
Definition at line 553 of file vnet_classify.h.
unformat_function_t unformat_l3_match |
Definition at line 560 of file vnet_classify.h.
unformat_function_t unformat_l4_match |
Definition at line 561 of file vnet_classify.h.
unformat_function_t unformat_vlan_tag |
Definition at line 562 of file vnet_classify.h.
vnet_classify_main_t vnet_classify_main |
Definition at line 32 of file vnet_classify.c.