|
FD.io VPP
v21.06-3-gbb25fbf28
Vector Packet Processing
|
Go to the documentation of this file.
86 return (aed1->
ad_type - aed2->ad_type);
115 if (NULL == delegate)
186 s =
format(s,
"\n {unknown delegate}");
#define vec_reset_length(v)
Reset vector length to zero NULL-pointer tolerant.
static adj_delegate_vft_t * ad_vfts
void adj_delegate_remove(adj_index_t ai, adj_delegate_type_t type)
Remove a delegate from an adjacency.
void adj_delegate_adj_created(ip_adjacency_t *adj)
An ADJ delegate virtual function table.
adj_delegate_type_t ad_type
The delagate type.
static adj_delegate_t * adj_delegate_find_i(const ip_adjacency_t *adj, adj_delegate_type_t type, u32 *index)
static adj_delegate_type_t ad_max_id
The value of the last dynamically allocated delegate value.
int adj_delegate_add(ip_adjacency_t *adj, adj_delegate_type_t adt, index_t adi)
Add a delegate to an adjacency.
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
#define vec_add1(V, E)
Add 1 element to end of vector (unspecified alignment).
static adj_index_t adj_get_index(const ip_adjacency_t *adj)
Get a pointer to an adjacency object from its index.
enum adj_delegate_type_t_ adj_delegate_type_t
A Delagate is a means to implement the Delagation design pattern; the extension of an object's functi...
struct adj_delegate_t_ * ia_delegates
A sorted vector of delegates.
adj_index_t ad_adj_index
The ADJ entry object to which the delagate is attached.
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
#define ADJ_DELEGATE_LAST
void adj_delegate_adj_modified(ip_adjacency_t *adj)
#define vec_validate(V, I)
Make sure vector is long enough for given index (no header, unspecified alignment)
adj_delegate_type_t adj_delegate_register_new_type(const adj_delegate_vft_t *vft)
adj_delegate_register_new_type
void adj_delegate_register_type(adj_delegate_type_t type, const adj_delegate_vft_t *vft)
adj_delegate_register_type
static void adj_delegate_init(ip_adjacency_t *adj, adj_delegate_type_t adt, index_t adi)
adj_delegate_t * adj_delegate_get(const ip_adjacency_t *adj, adj_delegate_type_t type)
Get a delegate from an adjacency.
description fragment has unexpected format
adj_delegate_adj_deleted_t adv_adj_deleted
u8 * adj_delegate_format(u8 *s, ip_adjacency_t *adj)
#define vec_foreach(var, vec)
Vector iterator.
#define vec_sort_with_function(vec, f)
Sort a vector using the supplied element comparison function.
u32 adj_index_t
An index for adjacencies.
adj_delegate_adj_modified_t adv_adj_modified
static ip_adjacency_t * adj_get(adj_index_t adj_index)
Get a pointer to an adjacency object from its index.
adj_delegate_format_t adv_format
vl_api_fib_path_type_t type
#define vec_del1(v, i)
Delete the element at index I.
static int adj_delegate_cmp_for_sort(void *v1, void *v2)
void adj_delegate_adj_deleted(ip_adjacency_t *adj)
adj_delegate_adj_created_t adv_adj_created