|
static u32 | adj_get_glean_node (fib_protocol_t proto) |
|
static adj_index_t | adj_glean_db_lookup (fib_protocol_t proto, u32 sw_if_index, const ip46_address_t *nh_addr) |
|
static void | adj_glean_db_insert (fib_protocol_t proto, u32 sw_if_index, const ip46_address_t *nh_addr, adj_index_t ai) |
|
static void | adj_glean_db_remove (fib_protocol_t proto, u32 sw_if_index, const ip46_address_t *nh_addr) |
|
adj_index_t | adj_glean_add_or_lock (fib_protocol_t proto, vnet_link_t linkt, u32 sw_if_index, const fib_prefix_t *conn) |
| Glean Adjacency. More...
|
|
void | adj_glean_update_rewrite (adj_index_t adj_index) |
| adj_glean_update_rewrite More...
|
|
static adj_walk_rc_t | adj_glean_update_rewrite_walk (adj_index_t ai, void *data) |
|
void | adj_glean_walk (u32 sw_if_index, adj_walk_cb_t cb, void *data) |
| Walk all the gleans on an interface. More...
|
|
adj_index_t | adj_glean_get (fib_protocol_t proto, u32 sw_if_index, const ip46_address_t *nh) |
| Get an existing glean. More...
|
|
const ip46_address_t * | adj_glean_get_src (fib_protocol_t proto, u32 sw_if_index, const ip46_address_t *nh) |
| Return the source address from the glean. More...
|
|
void | adj_glean_remove (ip_adjacency_t *adj) |
|
static adj_walk_rc_t | adj_glean_start_backwalk (adj_index_t ai, void *data) |
|
static clib_error_t * | adj_glean_interface_state_change (vnet_main_t *vnm, u32 sw_if_index, u32 flags) |
|
| VNET_SW_INTERFACE_ADMIN_UP_DOWN_FUNCTION (adj_glean_interface_state_change) |
|
static walk_rc_t | adj_nbr_hw_sw_interface_state_change (vnet_main_t *vnm, u32 sw_if_index, void *arg) |
| Invoked on each SW interface of a HW interface when the HW interface state changes. More...
|
|
static clib_error_t * | adj_glean_hw_interface_state_change (vnet_main_t *vnm, u32 hw_if_index, u32 flags) |
| Registered callback for HW interface state changes. More...
|
|
| VNET_HW_INTERFACE_LINK_UP_DOWN_FUNCTION (adj_glean_hw_interface_state_change) |
|
static clib_error_t * | adj_glean_interface_delete (vnet_main_t *vnm, u32 sw_if_index, u32 is_add) |
|
| VNET_SW_INTERFACE_ADD_DEL_FUNCTION (adj_glean_interface_delete) |
|
static void | adj_glean_ethernet_change_mac (ethernet_main_t *em, u32 sw_if_index, uword opaque) |
| Callback function invoked when an interface's MAC Address changes. More...
|
|
u8 * | format_adj_glean (u8 *s, va_list *ap) |
| Format/display a glean adjacency. More...
|
|
u32 | adj_glean_db_size (void) |
| Return the size of the adjacency database. More...
|
|
static void | adj_dpo_lock (dpo_id_t *dpo) |
|
static void | adj_dpo_unlock (dpo_id_t *dpo) |
|
void | adj_glean_module_init (void) |
| Module initialisation. More...
|
|
Glean Adjacency.
A gleean adjacency represent the need to discover new peers on an attached link. Packets that hit a glean adjacency will generate an ARP/ND packet addessesed to the packet's destination address. Note this is different to an incomplete neighbour adjacency, which does not send ARP/ND requests to the packet's destination address, but instead to the next-hop address of the adjacency itself.
Add (and lock) a new or lock an existing glean adjacency
- Parameters
-
proto | The protocol for the neighbours that we wish to glean |
sw_if_index | The interface on which to glean |
nh_addr | the address applied to the interface on which to glean. This as the source address in packets when the ARP/ND packet is sent |
Definition at line 112 of file adj_glean.c.