Go to the source code of this file.
|
static u8 * | format_ip_pmtu_flags (u8 *s, va_list *ap) |
|
u32 | ip_pmtu_get_table_id (const ip_pmtu_t *ipt) |
|
void | ip_pmtu_get_ip (const ip_pmtu_t *ipt, ip_address_t *ip) |
|
static u8 * | format_ip_pmtu (u8 *s, va_list *ap) |
|
static u8 * | format_ip_path_mtu_adj_delegate (const adj_delegate_t *aed, u8 *s) |
|
static void | ip_pmtu_adj_delegate_adj_created (adj_index_t ai) |
|
static void | ip_pmtu_adj_delegate_adj_deleted (adj_delegate_t *ad) |
|
static void | ip_pmtu_adj_delegate_adj_modified (adj_delegate_t *ad) |
|
static bool | ip_path_mtu_value_invalid (u16 pmtu) |
|
static adj_walk_rc_t | ip_ptmu_adj_walk_remove (adj_index_t ai, void *ctx) |
|
static adj_walk_rc_t | ip_ptmu_adj_walk_update (adj_index_t ai, void *ctx) |
|
static ip_pmtu_dpo_t * | ip_pmtu_dpo_alloc (void) |
|
static ip_pmtu_dpo_t * | ip_pmtu_dpo_get_from_dpo (const dpo_id_t *dpo) |
|
static index_t | ip_pmtu_dpo_get_index (ip_pmtu_dpo_t *ipm) |
|
static void | ip_pmtu_dpo_lock (dpo_id_t *dpo) |
|
static void | ip_pmtu_dpo_unlock (dpo_id_t *dpo) |
|
static u32 | ip_pmtu_dpo_get_urpf (const dpo_id_t *dpo) |
|
void | ip_pmtu_dpo_add_or_lock (fib_protocol_t fproto, u16 pmtu, dpo_id_t *dpo) |
|
u8 * | format_ip_pmtu_dpo (u8 *s, va_list *ap) |
|
static void | ip_pmtu_dpo_interpose (const dpo_id_t *original, const dpo_id_t *parent, dpo_id_t *clone) |
| Interpose a path MTU DPO. More...
|
|
static u16 | ip_pmtu_dpo_get_mtu (const dpo_id_t *dpo) |
|
static bool | ip_mtu_fib_entry_is_attached (fib_node_index_t fib_entry) |
|
static index_t | ip_pmtu_alloc (u32 fib_index, const fib_prefix_t *pfx, const ip_pmtu_key_t *key, u16 pmtu) |
|
static void | ip_pmtu_stack (ip_pmtu_t *ipt) |
|
static void | ip_pmtu_update (index_t ipti, u16 pmtu) |
|
static index_t | ip_pmtu_destroy (index_t ipti, const ip_pmtu_key_t *key) |
|
int | ip_path_mtu_update (const ip_address_t *nh, u32 table_id, u16 pmtu) |
|
static walk_rc_t | ip_path_mtu_walk_mark (index_t ipti, void *ctx) |
|
static walk_rc_t | ip_path_mtu_walk_sweep (index_t ipti, void *arg) |
|
int | ip_path_mtu_replace_begin (void) |
|
int | ip_path_mtu_replace_end (void) |
|
void | ip_path_mtu_walk (ip_path_mtu_walk_t fn, void *ctx) |
|
static fib_node_t * | ip_pmtu_get_node (fib_node_index_t index) |
|
static ip_pmtu_t * | ip_pmtu_get_from_node (fib_node_t *node) |
|
static void | ip_pmtu_last_lock_gone (fib_node_t *node) |
|
static fib_node_back_walk_rc_t | ip_pmtu_back_walk_notify (fib_node_t *node, fib_node_back_walk_ctx_t *ctx) |
|
static clib_error_t * | ip_path_module_init (vlib_main_t *vm) |
|
static clib_error_t * | show_ip_pmtu_command (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
◆ IP_PMTU_DBG
#define IP_PMTU_DBG |
( |
|
_fmt, |
|
|
|
_args... |
|
) |
| |
◆ IP_PMTU_TRKR_DBG
#define IP_PMTU_TRKR_DBG |
( |
|
_ipt, |
|
|
|
_fmt, |
|
|
|
_args... |
|
) |
| |
◆ ip_path_mtu_adj_delegate_t
Delegate added to adjacencies to track path MTU.
◆ ip_path_mtu_walk_sweep_ctx_t
◆ ip_pmtu_key_t
◆ format_ip_path_mtu_adj_delegate()
◆ format_ip_pmtu()
static u8* format_ip_pmtu |
( |
u8 * |
s, |
|
|
va_list * |
ap |
|
) |
| |
|
static |
◆ format_ip_pmtu_dpo()
u8* format_ip_pmtu_dpo |
( |
u8 * |
s, |
|
|
va_list * |
ap |
|
) |
| |
◆ format_ip_pmtu_flags()
static u8* format_ip_pmtu_flags |
( |
u8 * |
s, |
|
|
va_list * |
ap |
|
) |
| |
|
static |
◆ ip_mtu_fib_entry_is_attached()
◆ ip_path_module_init()
◆ ip_path_mtu_replace_begin()
int ip_path_mtu_replace_begin |
( |
void |
| ) |
|
◆ ip_path_mtu_replace_end()
int ip_path_mtu_replace_end |
( |
void |
| ) |
|
◆ ip_path_mtu_update()
◆ ip_path_mtu_value_invalid()
static bool ip_path_mtu_value_invalid |
( |
u16 |
pmtu | ) |
|
|
static |
◆ ip_path_mtu_walk()
◆ ip_path_mtu_walk_mark()
◆ ip_path_mtu_walk_sweep()
◆ ip_pmtu_adj_delegate_adj_created()
static void ip_pmtu_adj_delegate_adj_created |
( |
adj_index_t |
ai | ) |
|
|
static |
◆ ip_pmtu_adj_delegate_adj_deleted()
◆ ip_pmtu_adj_delegate_adj_modified()
◆ ip_pmtu_alloc()
◆ ip_pmtu_back_walk_notify()
◆ ip_pmtu_destroy()
◆ ip_pmtu_dpo_add_or_lock()
◆ ip_pmtu_dpo_alloc()
◆ ip_pmtu_dpo_get_from_dpo()
◆ ip_pmtu_dpo_get_index()
◆ ip_pmtu_dpo_get_mtu()
◆ ip_pmtu_dpo_get_urpf()
static u32 ip_pmtu_dpo_get_urpf |
( |
const dpo_id_t * |
dpo | ) |
|
|
static |
◆ ip_pmtu_dpo_interpose()
◆ ip_pmtu_dpo_lock()
static void ip_pmtu_dpo_lock |
( |
dpo_id_t * |
dpo | ) |
|
|
static |
◆ ip_pmtu_dpo_unlock()
static void ip_pmtu_dpo_unlock |
( |
dpo_id_t * |
dpo | ) |
|
|
static |
◆ ip_pmtu_get_from_node()
◆ ip_pmtu_get_ip()
◆ ip_pmtu_get_node()
◆ ip_pmtu_get_table_id()
◆ ip_pmtu_last_lock_gone()
static void ip_pmtu_last_lock_gone |
( |
fib_node_t * |
node | ) |
|
|
static |
◆ ip_pmtu_stack()
◆ ip_pmtu_update()
static void ip_pmtu_update |
( |
index_t |
ipti, |
|
|
u16 |
pmtu |
|
) |
| |
|
static |
◆ ip_ptmu_adj_walk_remove()
◆ ip_ptmu_adj_walk_update()
◆ show_ip_pmtu_command()
◆ ip_path_adj_delegate_vft
◆ ip_path_mtu_adj_delegate_pool
◆ ip_pmtu_adj_delegate_type
◆ ip_pmtu_db
◆ ip_pmtu_dpo_ip4_nodes
const static char* const ip_pmtu_dpo_ip4_nodes[] |
|
static |
Initial value:= {
"ip4-pmtu-dpo",
NULL,
}
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 433 of file ip_path_mtu.c.
◆ ip_pmtu_dpo_ip6_nodes
const static char* const ip_pmtu_dpo_ip6_nodes[] |
|
static |
Initial value:= {
"ip6-pmtu-dpo",
NULL,
}
Definition at line 438 of file ip_path_mtu.c.
◆ ip_pmtu_dpo_nodes
const static char* const * const ip_pmtu_dpo_nodes[DPO_PROTO_NUM] |
|
static |
◆ ip_pmtu_dpo_pool
DPO pool.
Data-plane accessor functions.
Definition at line 52 of file ip_path_mtu.c.
◆ ip_pmtu_dpo_type
DPO type registered for these GBP FWD.
Definition at line 57 of file ip_path_mtu.c.
◆ ip_pmtu_dpo_vft
◆ ip_pmtu_fib_type
Fib node type for the tracker.
Definition at line 62 of file ip_path_mtu.c.
◆ ip_pmtu_logger
Path MTU.
A path is a peer. A peer is known by an IP address (in a table). Insert a DPO in the forwarding chain for the peer to perform the fragmentation. For attached peers, all traffic will use the peer's adjacency, there is already an MTU chekc in the adjacency (for the link's MTU) so as an optimisation, instead of using a DPO, we add a delegate to the adjacency to set the adjacency's MTU to the path MTU. the logger
Definition at line 44 of file ip_path_mtu.c.
◆ ip_pmtu_pool
◆ ip_pmtu_source
◆ ip_ptmu_fib_node_vft
◆ show_fib_entry
Initial value:= {
.path = "show ip pmtu",
.short_help = "show ip path MTU",
}
(constructor) VLIB_CLI_COMMAND (show_fib_entry)
Definition at line 871 of file ip_path_mtu.c.