|
u8 * | format_icmp_echo_trace (u8 *s, va_list *va) |
|
static u8 * | format_ip46_ping_result (u8 *s, va_list *args) |
|
static_always_inline uword | get_cli_process_id_by_icmp_id_mt (vlib_main_t *vm, u16 icmp_id) |
|
static_always_inline void | set_cli_process_id_by_icmp_id_mt (vlib_main_t *vm, u16 icmp_id, uword cli_process_id) |
|
static_always_inline void | clear_cli_process_id_by_icmp_id_mt (vlib_main_t *vm, u16 icmp_id) |
|
static_always_inline int | ip46_get_icmp_id_and_seq (vlib_main_t *vm, vlib_buffer_t *b0, u16 *out_icmp_id, u16 *out_icmp_seq, int is_ip6) |
|
static_always_inline void | ip46_post_icmp_reply_event (vlib_main_t *vm, uword cli_process_id, u32 bi0, int is_ip6) |
|
static_always_inline void | ip46_echo_reply_maybe_trace_buffer (vlib_main_t *vm, vlib_node_runtime_t *node, uword cli_process_id, u16 id, u16 seq, vlib_buffer_t *b0, int is_ip6) |
|
static_always_inline uword | ip46_icmp_echo_reply_inner_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int do_trace, int is_ip6) |
|
static_always_inline uword | ip46_icmp_echo_reply_outer_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame, int is_ip6) |
|
static uword | ip4_icmp_echo_reply_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static uword | ip6_icmp_echo_reply_node_fn (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *frame) |
|
static_always_inline u8 | get_icmp_echo_payload_byte (int offset) |
|
static u16 | init_icmp46_echo_request (vlib_main_t *vm, vlib_buffer_t *b0, int l4_header_offset, icmp46_echo_request_t *icmp46_echo, u16 seq_host, u16 id_host, u64 now, u16 data_len) |
|
static u32 | ip46_fib_index_from_table_id (u32 table_id, int is_ip6) |
|
static fib_node_index_t | ip46_fib_table_lookup_host (u32 fib_index, ip46_address_t *pa46, int is_ip6) |
|
static u32 | ip46_get_resolving_interface (u32 fib_index, ip46_address_t *pa46, int is_ip6) |
|
static u32 | ip46_fib_table_get_index_for_sw_if_index (u32 sw_if_index, int is_ip6) |
|
static int | ip46_fill_l3_header (ip46_address_t *pa46, vlib_buffer_t *b0, int is_ip6) |
|
static int | ip46_set_src_address (u32 sw_if_index, vlib_buffer_t *b0, int is_ip6) |
|
static void | ip46_print_buffer_src_address (vlib_main_t *vm, vlib_buffer_t *b0, int is_ip6) |
|
static u16 | ip46_fill_icmp_request_at (vlib_main_t *vm, int l4_offset, u16 seq_host, u16 id_host, u16 data_len, vlib_buffer_t *b0, int is_ip6) |
|
u16 | ip4_icmp_compute_checksum (vlib_main_t *vm, vlib_buffer_t *p0, ip4_header_t *ip0) |
|
static void | ip46_fix_len_and_csum (vlib_main_t *vm, int l4_offset, u16 data_len, vlib_buffer_t *b0, int is_ip6) |
|
static u16 | at_most_a_frame (u32 count) |
|
static int | ip46_enqueue_packet (vlib_main_t *vm, vlib_buffer_t *b0, u32 burst, int is_ip6) |
|
static send_ip46_ping_result_t | send_ip46_ping (vlib_main_t *vm, u32 table_id, ip46_address_t *pa46, u32 sw_if_index, u16 seq_host, u16 id_host, u16 data_len, u32 burst, u8 verbose, int is_ip6) |
|
static send_ip46_ping_result_t | send_ip6_ping (vlib_main_t *vm, u32 table_id, ip6_address_t *pa6, u32 sw_if_index, u16 seq_host, u16 id_host, u16 data_len, u32 burst, u8 verbose) |
|
static send_ip46_ping_result_t | send_ip4_ping (vlib_main_t *vm, u32 table_id, ip4_address_t *pa4, u32 sw_if_index, u16 seq_host, u16 id_host, u16 data_len, u32 burst, u8 verbose) |
|
static void | print_ip46_icmp_reply (vlib_main_t *vm, u32 bi0, int is_ip6) |
|
static void | run_ping_ip46_address (vlib_main_t *vm, u32 table_id, ip4_address_t *pa4, ip6_address_t *pa6, u32 sw_if_index, f64 ping_interval, u32 ping_repeat, u32 data_len, u32 ping_burst, u32 verbose) |
|
static clib_error_t * | ping_ip_address (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd) |
|
static clib_error_t * | ping_cli_init (vlib_main_t *vm) |
|
IPv4 and IPv6 ICMP Ping.
This file contains code to suppport IPv4 or IPv6 ICMP ECHO_REQUEST to network hosts.
Definition in file ping.c.