|
static uword | unformat_opaque_ioam (unformat_input_t *input, va_list *args) |
|
u8 * | get_flow_name_from_flow_ctx (u32 flow_ctx) |
|
int | ip6_hbh_add_register_option (u8 option, u8 size, int rewrite_options(u8 *rewrite_string, u8 *rewrite_size)) |
|
int | ip6_hbh_add_unregister_option (u8 option) |
|
int | ip6_hbh_config_handler_register (u8 option, int config_handler(void *data, u8 disable)) |
|
int | ip6_hbh_config_handler_unregister (u8 option) |
|
int | ip6_hbh_flow_handler_register (u8 option, u32 ioam_flow_handler(u32 flow_ctx, u8 add)) |
|
int | ip6_hbh_flow_handler_unregister (u8 option) |
|
static u8 * | format_ip6_add_hop_by_hop_trace (u8 *s, va_list *args) |
|
static uword | ip6_add_hop_by_hop_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
| VLIB_NODE_FUNCTION_MULTIARCH (ip6_add_hop_by_hop_node, ip6_add_hop_by_hop_node_fn) |
|
static u8 * | format_ip6_pop_hop_by_hop_trace (u8 *s, va_list *args) |
|
int | ip6_hbh_pop_register_option (u8 option, int options(vlib_buffer_t *b, ip6_header_t *ip, ip6_hop_by_hop_option_t *opt)) |
|
int | ip6_hbh_pop_unregister_option (u8 option) |
|
static void | ioam_pop_hop_by_hop_processing (vlib_main_t *vm, ip6_header_t *ip0, ip6_hop_by_hop_header_t *hbh0, vlib_buffer_t *b) |
|
static uword | ip6_pop_hop_by_hop_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
| VLIB_NODE_FUNCTION_MULTIARCH (ip6_pop_hop_by_hop_node, ip6_pop_hop_by_hop_node_fn) |
|
static clib_error_t * | ip6_hop_by_hop_ioam_init (vlib_main_t *vm) |
|
int | ip6_ioam_set_rewrite (u8 **rwp, int has_trace_option, int has_pot_option, int has_seqno_option) |
|
clib_error_t * | clear_ioam_rewrite_fn (void) |
|
clib_error_t * | clear_ioam_rewrite_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
clib_error_t * | ip6_ioam_enable (int has_trace_option, int has_pot_option, int has_seqno_option, int has_analyse_option) |
|
static clib_error_t * | ip6_set_ioam_rewrite_command_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | ip6_show_ioam_summary_cmd_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
void | vnet_register_ioam_end_of_path_callback (void *cb) |
|
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.