FD.io VPP
v21.10.1-2-g0a485f517
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 212 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 1760 of file vnet_classify.c.
void classify_set_trace_chain | ( | vnet_classify_main_t * | cm, |
u32 | table_index | ||
) |
Definition at line 1733 of file vnet_classify.c.
u32 classify_sort_table_chain | ( | vnet_classify_main_t * | cm, |
u32 | table_index | ||
) |
Definition at line 1679 of file vnet_classify.c.
Definition at line 686 of file vnet_classify.c.
Definition at line 2206 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 2746 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 746 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 |
static_always_inline int vnet_classify_entry_is_equal | ( | vnet_classify_entry_t * | v, |
const u8 * | d, | ||
u8 * | m, | ||
u32 | match_n_vectors | ||
) |
|
inlinestatic |
vnet_classify_entry_t* vnet_classify_find_entry | ( | vnet_classify_table_t * | t, |
u8 * | h, | ||
u64 | hash, | ||
f64 | now | ||
) |
Definition at line 656 of file vnet_classify.c.
|
inlinestatic |
Definition at line 464 of file vnet_classify.h.
|
inlinestatic |
Definition at line 332 of file vnet_classify.h.
|
inlinestatic |
Definition at line 341 of file vnet_classify.h.
u64 vnet_classify_hash_packet | ( | vnet_classify_table_t * | t, |
u8 * | h | ||
) |
|
inlinestatic |
Definition at line 251 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 320 of file vnet_classify.h.
|
inlinestatic |
Definition at line 368 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 243 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 535 of file vnet_classify.h.
unformat_function_t unformat_classify_match |
Definition at line 544 of file vnet_classify.h.
unformat_function_t unformat_ip4_mask |
Definition at line 531 of file vnet_classify.h.
unformat_function_t unformat_ip4_match |
Definition at line 538 of file vnet_classify.h.
unformat_function_t unformat_ip6_mask |
Definition at line 532 of file vnet_classify.h.
unformat_function_t unformat_ip6_match |
Definition at line 539 of file vnet_classify.h.
unformat_function_t unformat_ip_next_index |
Definition at line 537 of file vnet_classify.h.
unformat_function_t unformat_l2_mask |
Definition at line 534 of file vnet_classify.h.
unformat_function_t unformat_l2_match |
Definition at line 543 of file vnet_classify.h.
unformat_function_t unformat_l2_next_index |
Definition at line 536 of file vnet_classify.h.
unformat_function_t unformat_l3_mask |
Definition at line 533 of file vnet_classify.h.
unformat_function_t unformat_l3_match |
Definition at line 540 of file vnet_classify.h.
unformat_function_t unformat_l4_match |
Definition at line 541 of file vnet_classify.h.
unformat_function_t unformat_vlan_tag |
Definition at line 542 of file vnet_classify.h.
vnet_classify_main_t vnet_classify_main |
Definition at line 32 of file vnet_classify.c.