FD.io VPP
v20.05.1-6-gf53edbc3b
Vector Packet Processing
|
In-band OAM (iOAM). More...
Go to the source code of this file.
Data Structures | |
struct | ip6_add_hop_by_hop_trace_t |
struct | ip6_pop_hop_by_hop_trace_t |
struct | ip6_local_hop_by_hop_trace_t |
Macros | |
#define | foreach_ip6_hbyh_ioam_input_next |
#define | foreach_ip6_add_hop_by_hop_error _(PROCESSED, "Pkts w/ added ip6 hop-by-hop options") |
#define | foreach_ip6_pop_hop_by_hop_error |
#define | foreach_ip6_local_hop_by_hop_error |
Variables | |
ip6_hop_by_hop_ioam_main_t | ip6_hop_by_hop_ioam_main |
vlib_node_registration_t | ip6_add_hop_by_hop_node |
(constructor) VLIB_REGISTER_NODE (ip6_add_hop_by_hop_node) More... | |
static char * | ip6_add_hop_by_hop_error_strings [] |
vlib_node_registration_t | ip6_pop_hop_by_hop_node |
(constructor) VLIB_REGISTER_NODE (ip6_pop_hop_by_hop_node) More... | |
static char * | ip6_pop_hop_by_hop_error_strings [] |
vlib_node_registration_t | ip6_local_hop_by_hop_node |
(constructor) VLIB_REGISTER_NODE (ip6_local_hop_by_hop_node) More... | |
static char * | ip6_local_hop_by_hop_error_strings [] |
static vlib_cli_command_t | show_ip6_hbh |
(constructor) VLIB_CLI_COMMAND (show_ip6_hbh) More... | |
static vlib_cli_command_t | ip6_clear_ioam_rewrite_cmd |
(constructor) VLIB_CLI_COMMAND (ip6_clear_ioam_rewrite_cmd) More... | |
static vlib_cli_command_t | ip6_set_ioam_rewrite_cmd |
(constructor) VLIB_CLI_COMMAND (ip6_set_ioam_rewrite_cmd) More... | |
static vlib_cli_command_t | ip6_show_ioam_run_cmd |
(constructor) VLIB_CLI_COMMAND (ip6_show_ioam_run_cmd) More... | |
In-band OAM (iOAM).
In-band OAM (iOAM) is an implementation study to record operational information in the packet while the packet traverses a path between two points in the network.
VPP can function as in-band OAM encapsulating, transit and decapsulating node. In this version of VPP in-band OAM data is transported as options in an IPv6 hop-by-hop extension header. Hence in-band OAM can be enabled for IPv6 traffic.
Definition in file ip6_hop_by_hop.c.
Definition at line 224 of file ip6_hop_by_hop.c.
#define foreach_ip6_hbyh_ioam_input_next |
Definition at line 48 of file ip6_hop_by_hop.c.
#define foreach_ip6_local_hop_by_hop_error |
Definition at line 822 of file ip6_hop_by_hop.c.
#define foreach_ip6_pop_hop_by_hop_error |
Definition at line 517 of file ip6_hop_by_hop.c.
Enumerator | |
---|---|
IP6_ADD_HOP_BY_HOP_N_ERROR |
Definition at line 227 of file ip6_hop_by_hop.c.
Enumerator | |
---|---|
IP6_HBYH_IOAM_INPUT_N_NEXT |
Definition at line 53 of file ip6_hop_by_hop.c.
Enumerator | |
---|---|
IP6_LOCAL_HOP_BY_HOP_N_ERROR |
Definition at line 826 of file ip6_hop_by_hop.c.
Enumerator | |
---|---|
IP6_LOCAL_HOP_BY_HOP_NEXT_DROP | |
IP6_LOCAL_HOP_BY_HOP_N_NEXT |
Definition at line 842 of file ip6_hop_by_hop.c.
Enumerator | |
---|---|
IP6_POP_HOP_BY_HOP_N_ERROR |
Definition at line 522 of file ip6_hop_by_hop.c.
clib_error_t* clear_ioam_rewrite_command_fn | ( | vlib_main_t * | vm, |
unformat_input_t * | input, | ||
vlib_cli_command_t * | cmd | ||
) |
clib_error_t* clear_ioam_rewrite_fn | ( | void | ) |
Definition at line 806 of file ip6_hop_by_hop.c.
|
inlinestatic |
Definition at line 537 of file ip6_hop_by_hop.c.
VLIB_NODE_FN() ip6_add_hop_by_hop_node | ( | vlib_main_t * | vm, |
vlib_node_runtime_t * | node, | ||
vlib_frame_t * | frame | ||
) |
int ip6_hbh_add_unregister_option | ( | u8 | option | ) |
int ip6_hbh_config_handler_register | ( | u8 | option, |
int | config_handlervoid *data, u8 disable | ||
) |
int ip6_hbh_config_handler_unregister | ( | u8 | option | ) |
int ip6_hbh_flow_handler_unregister | ( | u8 | option | ) |
int ip6_hbh_pop_register_option | ( | u8 | option, |
int | optionsvlib_buffer_t *b, ip6_header_t *ip, ip6_hop_by_hop_option_t *opt | ||
) |
int ip6_hbh_pop_unregister_option | ( | u8 | option | ) |
|
static |
clib_error_t* ip6_ioam_enable | ( | int | has_trace_option, |
int | has_pot_option, | ||
int | has_seqno_option, | ||
int | has_analyse_option | ||
) |
Definition at line 1276 of file ip6_hop_by_hop.c.
int ip6_ioam_set_rewrite | ( | u8 ** | rwp, |
int | has_trace_option, | ||
int | has_pot_option, | ||
int | has_seqno_option | ||
) |
|
inlinestatic |
Definition at line 849 of file ip6_hop_by_hop.c.
VLIB_NODE_FN() ip6_local_hop_by_hop_node | ( | vlib_main_t * | vm, |
vlib_node_runtime_t * | node, | ||
vlib_frame_t * | frame | ||
) |
Definition at line 1116 of file ip6_hop_by_hop.c.
VLIB_NODE_FN() ip6_pop_hop_by_hop_node | ( | vlib_main_t * | vm, |
vlib_node_runtime_t * | node, | ||
vlib_frame_t * | frame | ||
) |
|
static |
|
static |
clib_error_t* show_ip6_hbh_command_fn | ( | vlib_main_t * | vm, |
unformat_input_t * | input, | ||
vlib_cli_command_t * | cmd | ||
) |
|
static |
Definition at line 63 of file ip6_hop_by_hop.c.
void vnet_register_ioam_end_of_path_callback | ( | void * | cb | ) |
Definition at line 1467 of file ip6_hop_by_hop.c.
|
static |
Definition at line 235 of file ip6_hop_by_hop.c.
vlib_node_registration_t ip6_add_hop_by_hop_node |
(constructor) VLIB_REGISTER_NODE (ip6_add_hop_by_hop_node)
Definition at line 442 of file ip6_hop_by_hop.c.
|
static |
(constructor) VLIB_CLI_COMMAND (ip6_clear_ioam_rewrite_cmd)
Definition at line 1268 of file ip6_hop_by_hop.c.
ip6_hop_by_hop_ioam_main_t ip6_hop_by_hop_ioam_main |
Definition at line 45 of file ip6_hop_by_hop.c.
|
static |
Definition at line 835 of file ip6_hop_by_hop.c.
vlib_node_registration_t ip6_local_hop_by_hop_node |
(constructor) VLIB_REGISTER_NODE (ip6_local_hop_by_hop_node)
Definition at line 818 of file ip6_hop_by_hop.c.
|
static |
Definition at line 530 of file ip6_hop_by_hop.c.
vlib_node_registration_t ip6_pop_hop_by_hop_node |
(constructor) VLIB_REGISTER_NODE (ip6_pop_hop_by_hop_node)
Definition at line 782 of file ip6_hop_by_hop.c.
|
static |
(constructor) VLIB_CLI_COMMAND (ip6_set_ioam_rewrite_cmd)
Definition at line 1375 of file ip6_hop_by_hop.c.
|
static |
(constructor) VLIB_CLI_COMMAND (ip6_show_ioam_run_cmd)
Definition at line 1459 of file ip6_hop_by_hop.c.
|
static |
(constructor) VLIB_CLI_COMMAND (show_ip6_hbh)
Definition at line 1063 of file ip6_hop_by_hop.c.