FD.io VPP
v18.04-17-g3a0d853
Vector Packet Processing
|
Go to the source code of this file.
Functions | |
adj_index_t | adj_mcast_add_or_lock (fib_protocol_t proto, vnet_link_t link_type, u32 sw_if_index) |
Mcast Adjacency. More... | |
void | adj_mcast_update_rewrite (adj_index_t adj_index, u8 *rewrite, u8 offset, u32 mask) |
Update the rewrite string for an existing adjacecny. More... | |
void | adj_mcast_midchain_update_rewrite (adj_index_t adj_index, adj_midchain_fixup_t fixup, const void *fixup_data, adj_flags_t flags, u8 *rewrite, u8 offset, u32 mask) |
Update the rewrite string for an existing adjacecny and Convert the adjacency into a midchain. More... | |
void | adj_mcast_walk (u32 sw_if_index, fib_protocol_t adj_nh_proto, adj_walk_cb_t cb, void *ctx) |
Walk the multicast Adjacencies on a given interface. More... | |
u8 * | format_adj_mcast (u8 *s, va_list *ap) |
Format/display a mcast adjacency. More... | |
u8 * | format_adj_mcast_midchain (u8 *s, va_list *ap) |
u32 | adj_mcast_db_size (void) |
Get the sze of the mcast adj DB. More... | |
void | adj_mcast_module_init (void) |
Module initialisation. More... | |
adj_index_t adj_mcast_add_or_lock | ( | fib_protocol_t | proto, |
vnet_link_t | link_type, | ||
u32 | sw_if_index | ||
) |
Mcast Adjacency.
The multicast adjacency forwards IP traffic on an interface toward a multicast group address. This is a different type of adjacency to a unicast adjacency since the application of the MAC header is different, and so the VLIB node visited is also different. DPO types have different VLIB nodes.
Add (and lock) a new or lock an existing mcast adjacency
proto | The protocol for the neighbours that we wish to mcast |
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 |
sw_if_index | The interface on which to mcast |
Definition at line 51 of file adj_mcast.c.
u32 adj_mcast_db_size | ( | void | ) |
Get the sze of the mcast adj DB.
Test purposes only.
Get the sze of the mcast adj DB.
This is only for testing purposes so an efficient implementation is not needed
Definition at line 454 of file adj_mcast.c.
void adj_mcast_midchain_update_rewrite | ( | adj_index_t | adj_index, |
adj_midchain_fixup_t | fixup, | ||
const void * | fixup_data, | ||
adj_flags_t | flags, | ||
u8 * | rewrite, | ||
u8 | offset, | ||
u32 | mask | ||
) |
Update the rewrite string for an existing adjacecny and Convert the adjacency into a midchain.
The | index of the adj to update |
fixup | The function that will be invoked at paket switch time to 'fixup' the rewrite applied with necessary per-packet info (i.e. length, checksums). |
fixup_data | Context data set by the caller that is provided as an argument in the fixup function. |
flags | Flags controlling the adjacency behaviour |
The | new rewrite |
Update the rewrite string for an existing adjacecny and Convert the adjacency into a midchain.
Update the adjacency's rewrite string. A NULL string implies the rewirte is reset (i.e. when ARP/ND etnry is gone). NB: the adj being updated may be handling traffic in the DP.
Definition at line 140 of file adj_mcast.c.
void adj_mcast_module_init | ( | void | ) |
Module initialisation.
Definition at line 477 of file adj_mcast.c.
void adj_mcast_update_rewrite | ( | adj_index_t | adj_index, |
u8 * | rewrite, | ||
u8 | offset, | ||
u32 | mask | ||
) |
Update the rewrite string for an existing adjacecny.
The | index of the adj to update |
The | new rewrite |
The | offset in the rewrite a which to write in packet's IP Address |
The | mask to apply to the packet berfore the rewrite. |
Update the rewrite string for an existing adjacecny.
Update the adjacency's rewrite string. A NULL string implies the rewirte is reset (i.e. when ARP/ND etnry is gone). NB: the adj being updated may be handling traffic in the DP.
Definition at line 102 of file adj_mcast.c.
void adj_mcast_walk | ( | u32 | sw_if_index, |
fib_protocol_t | adj_nh_proto, | ||
adj_walk_cb_t | cb, | ||
void * | ctx | ||
) |
Walk the multicast Adjacencies on a given interface.
Definition at line 321 of file adj_mcast.c.
Format/display a mcast adjacency.
Definition at line 336 of file adj_mcast.c.
Definition at line 354 of file adj_mcast.c.