FD.io VPP
v21.01.1
Vector Packet Processing
|
Go to the source code of this file.
Typedefs | |
typedef enum adj_nbr_rewrite_flag_t_ | adj_nbr_rewrite_flag_t |
When adding a rewrite to an adjacency these are flags that apply to that rewrite. More... | |
Enumerations | |
enum | adj_nbr_rewrite_flag_t_ { ADJ_NBR_REWRITE_FLAG_NONE, ADJ_NBR_REWRITE_FLAG_INCOMPLETE = ADJ_NBR_REWRITE_FLAG_NONE, ADJ_NBR_REWRITE_FLAG_COMPLETE = (1 << 0) } |
When adding a rewrite to an adjacency these are flags that apply to that rewrite. More... | |
Functions | |
adj_index_t | adj_nbr_add_or_lock (fib_protocol_t nh_proto, vnet_link_t link_type, const ip46_address_t *nh_addr, u32 sw_if_index) |
Neighbour Adjacency sub-type. More... | |
adj_index_t | adj_nbr_add_or_lock_w_rewrite (fib_protocol_t nh_proto, vnet_link_t link_type, const ip46_address_t *nh_addr, u32 sw_if_index, u8 *rewrite) |
Add (and lock) a new or lock an existing neighbour adjacency. More... | |
void | adj_nbr_update_rewrite (adj_index_t adj_index, adj_nbr_rewrite_flag_t flags, u8 *rewrite) |
Update the rewrite string for an existing adjacecny. More... | |
u8 * | format_adj_nbr_incomplete (u8 *s, va_list *ap) |
Format aa incomplete neigbour (ARP) adjacency. More... | |
u8 * | format_adj_nbr (u8 *s, va_list *ap) |
Format a neigbour (REWRITE) adjacency. More... | |
void | adj_nbr_walk (u32 sw_if_index, fib_protocol_t adj_nh_proto, adj_walk_cb_t cb, void *ctx) |
Walk the neighbour Adjacencies on a given interface. More... | |
void | adj_nbr_walk_nh (u32 sw_if_index, fib_protocol_t adj_nh_proto, const ip46_address_t *nh, adj_walk_cb_t cb, void *ctx) |
Walk the neighbour Adjacencies on a given interface with a given next-hop. More... | |
void | adj_nbr_walk_nh4 (u32 sw_if_index, const ip4_address_t *addr, adj_walk_cb_t cb, void *ctx) |
Walk adjacencies on a link with a given v4 next-hop. More... | |
void | adj_nbr_walk_nh6 (u32 sw_if_index, const ip6_address_t *addr, adj_walk_cb_t cb, void *ctx) |
Walk adjacencies on a link with a given v6 next-hop. More... | |
adj_index_t | adj_nbr_find (fib_protocol_t nh_proto, vnet_link_t link_type, const ip46_address_t *nh_addr, u32 sw_if_index) |
Lookup neighbor adjancency. More... | |
void | adj_nbr_module_init (void) |
Module initialisation. More... | |
u32 | adj_nbr_db_size (void) |
Return the size of the adjacency database. More... | |
typedef enum adj_nbr_rewrite_flag_t_ adj_nbr_rewrite_flag_t |
When adding a rewrite to an adjacency these are flags that apply to that rewrite.
When adding a rewrite to an adjacency these are flags that apply to that rewrite.
adj_index_t adj_nbr_add_or_lock | ( | fib_protocol_t | nh_proto, |
vnet_link_t | link_type, | ||
const ip46_address_t * | nh_addr, | ||
u32 | sw_if_index | ||
) |
Neighbour Adjacency sub-type.
These adjs represent an L3 peer on a connected link.
Add (and lock) a new or lock an existing neighbour adjacency
nh_proto | The protocol for the next-hop address (v4 or v6) |
link_type | A description of the protocol of the packets that will forward through this adj. On an ethernet interface this is the MAC header's ether-type |
nh_addr | The address of the next-hop/peer to send the packet to |
sw_if_index | The interface on which the peer resides |
Definition at line 236 of file adj_nbr.c.
adj_index_t adj_nbr_add_or_lock_w_rewrite | ( | fib_protocol_t | nh_proto, |
vnet_link_t | link_type, | ||
const ip46_address_t * | nh_addr, | ||
u32 | sw_if_index, | ||
u8 * | rewrite | ||
) |
Add (and lock) a new or lock an existing neighbour adjacency.
nh_proto | The protocol for the next-hop address (v4 or v6) |
link_type | A description of the protocol of the packets that will forward through this adj. On an ethernet interface this is the MAC header's ether-type |
nh_addr | The address of the next-hop/peer to send the packet to |
sw_if_index | The interface on which the peer resides |
rewrite | The rewrite to prepend to packets |
Definition at line 282 of file adj_nbr.c.
u32 adj_nbr_db_size | ( | void | ) |
adj_index_t adj_nbr_find | ( | fib_protocol_t | nh_proto, |
vnet_link_t | link_type, | ||
const ip46_address_t * | nh_addr, | ||
u32 | sw_if_index | ||
) |
void adj_nbr_module_init | ( | void | ) |
void adj_nbr_update_rewrite | ( | adj_index_t | adj_index, |
adj_nbr_rewrite_flag_t | flags, | ||
u8 * | rewrite | ||
) |
Update the rewrite string for an existing adjacecny.
The | index of the adj to update |
The | new rewrite |
Update the rewrite string for an existing adjacecny.
Update the adjacency's rewrite string. A NULL string implies the rewrite is reset (i.e. when ARP/ND entry is gone). NB: the adj being updated may be handling traffic in the DP.
Definition at line 319 of file adj_nbr.c.
void adj_nbr_walk | ( | u32 | sw_if_index, |
fib_protocol_t | adj_nh_proto, | ||
adj_walk_cb_t | cb, | ||
void * | ctx | ||
) |
void adj_nbr_walk_nh | ( | u32 | sw_if_index, |
fib_protocol_t | adj_nh_proto, | ||
const ip46_address_t * | nh, | ||
adj_walk_cb_t | cb, | ||
void * | ctx | ||
) |
Walk the neighbour Adjacencies on a given interface with a given next-hop.
Walk the neighbour Adjacencies on a given interface with a given next-hop.
that is visit the adjacencies with different link types.
Definition at line 663 of file adj_nbr.c.
void adj_nbr_walk_nh4 | ( | u32 | sw_if_index, |
const ip4_address_t * | addr, | ||
adj_walk_cb_t | cb, | ||
void * | ctx | ||
) |
void adj_nbr_walk_nh6 | ( | u32 | sw_if_index, |
const ip6_address_t * | addr, | ||
adj_walk_cb_t | cb, | ||
void * | ctx | ||
) |