Go to the source code of this file.
|
static vlib_node_registration_t * | adj_get_glean_node (fib_protocol_t proto) |
|
adj_index_t | adj_glean_add_or_lock (fib_protocol_t proto, vnet_link_t linkt, u32 sw_if_index, const ip46_address_t *nh_addr) |
| Glean Adjacency. More...
|
|
void | adj_glean_update_rewrite (adj_index_t adj_index) |
| adj_glean_update_rewrite More...
|
|
adj_index_t | adj_glean_get (fib_protocol_t proto, u32 sw_if_index) |
| Get an existing glean. More...
|
|
void | adj_glean_remove (fib_protocol_t proto, u32 sw_if_index) |
|
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 void | 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) |
|
u8 * | format_adj_glean (u8 *s, va_list *ap) |
| Format/display a glean adjacency. 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...
|
|
static void adj_dpo_lock |
( |
dpo_id_t * |
dpo | ) |
|
|
static |
static void adj_dpo_unlock |
( |
dpo_id_t * |
dpo | ) |
|
|
static |
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 50 of file adj_glean.c.
Get an existing glean.
- Returns
- INVALID if it does not exist
Definition at line 119 of file adj_glean.c.
Registered callback for HW interface state changes.
Definition at line 188 of file adj_glean.c.
void adj_glean_module_init |
( |
void |
| ) |
|
adj_glean_update_rewrite
Called by an adjacency provider (an interface type) to configure a glean adj (i.e. and adjacency linked to a connected prefix) to its default behaviour. Other interface types (i.e. 6RD tunnels) can can choose not to use glean behaviour on an adjacency liked to a connected prefix.
Definition at line 101 of file adj_glean.c.
static void adj_nbr_hw_sw_interface_state_change |
( |
vnet_main_t * |
vnm, |
|
|
u32 |
sw_if_index, |
|
|
void * |
arg |
|
) |
| |
|
static |
Invoked on each SW interface of a HW interface when the HW interface state changes.
Definition at line 177 of file adj_glean.c.
u8* format_adj_glean |
( |
u8 * |
s, |
|
|
va_list * |
ap |
|
) |
| |
Format/display a glean adjacency.
Definition at line 261 of file adj_glean.c.
Initial value:= {
}
u32 adj_dpo_get_urpf(const dpo_id_t *dpo)
static void adj_dpo_unlock(dpo_id_t *dpo)
static void adj_dpo_lock(dpo_id_t *dpo)
u8 * format_adj_glean(u8 *s, va_list *ap)
Format/display a glean adjacency.
Definition at line 287 of file adj_glean.c.
const char* const glean_ip4_nodes[] |
|
static |
Initial value:
The per-protocol VLIB graph nodes that are assigned to a glean object.
this means that these graph nodes are ones from which a glean is the parent object in the DPO-graph.
Definition at line 301 of file adj_glean.c.
const char* const glean_ip6_nodes[] |
|
static |
Initial value:=
{
}
static const char *const glean_ip4_nodes[]
The per-protocol VLIB graph nodes that are assigned to a glean object.
static const char *const glean_ip6_nodes[]
Definition at line 312 of file adj_glean.c.