X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fpg%2Fcli.c;h=a09107c50c53c548686d63d348cd95362983d294;hb=671e60e65635b8d030bf303c88411192c747b59e;hp=f5896b4326e9d2e99818618a18f1ff758f9e97a3;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/vnet/pg/cli.c b/src/vnet/pg/cli.c index f5896b4326e..a09107c50c5 100644 --- a/src/vnet/pg/cli.c +++ b/src/vnet/pg/cli.c @@ -43,7 +43,7 @@ #include #ifdef CLIB_UNIX -#include +#include #endif /* Root of all packet generator cli commands. */ @@ -92,7 +92,7 @@ pg_capture (pg_capture_args_t * a) pi = pool_elt_at_index (pg->interfaces, a->dev_instance); vec_free (pi->pcap_file_name); - memset (&pi->pcap_main, 0, sizeof (pi->pcap_main)); + clib_memset (&pi->pcap_main, 0, sizeof (pi->pcap_main)); if (a->is_enabled == 0) return 0; @@ -224,10 +224,11 @@ pg_pcap_read (pg_stream_t * s, char *file_name) #else pcap_main_t pm; clib_error_t *error; - memset (&pm, 0, sizeof (pm)); + clib_memset (&pm, 0, sizeof (pm)); pm.file_name = file_name; error = pcap_read (&pm); s->replay_packet_templates = pm.packets_read; + s->replay_packet_timestamps = pm.timestamps; s->min_packet_bytes = pm.min_packet_bytes; s->max_packet_bytes = pm.max_packet_bytes; s->buffer_bytes = pm.max_packet_bytes; @@ -304,7 +305,7 @@ new_stream (vlib_main_t * vm, s.sw_if_index[VLIB_RX] = s.sw_if_index[VLIB_TX] = ~0; s.node_index = ~0; s.max_packet_bytes = s.min_packet_bytes = 64; - s.buffer_bytes = VLIB_BUFFER_DEFAULT_FREE_LIST_BYTES; + s.buffer_bytes = VLIB_BUFFER_DATA_SIZE; s.if_id = 0; pcap_file_name = 0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) @@ -547,21 +548,30 @@ pg_capture_cmd_fn (vlib_main_t * vm, else { error = clib_error_create ("unknown input `%U'", - format_unformat_error, input); - return error; + format_unformat_error, line_input); + goto done; } } if (!hi) - return clib_error_return (0, "Please specify interface name"); + { + error = clib_error_return (0, "Please specify interface name"); + goto done; + } if (hi->dev_class_index != pg_dev_class.index) - return clib_error_return (0, "Please specify packet-generator interface"); + { + error = + clib_error_return (0, "Please specify packet-generator interface"); + goto done; + } if (!pcap_file_name && is_disable == 0) - return clib_error_return (0, "Please specify pcap file name"); + { + error = clib_error_return (0, "Please specify pcap file name"); + goto done; + } - unformat_free (line_input); pg_capture_args_t _a, *a = &_a; @@ -572,6 +582,10 @@ pg_capture_cmd_fn (vlib_main_t * vm, a->count = count; error = pg_capture (a); + +done: + unformat_free (line_input); + return error; } @@ -590,6 +604,7 @@ create_pg_if_cmd_fn (vlib_main_t * vm, pg_main_t *pg = &pg_main; unformat_input_t _line_input, *line_input = &_line_input; u32 if_id; + clib_error_t *error = NULL; if (!unformat_user (input, unformat_line_input, line_input)) return 0; @@ -600,14 +615,19 @@ create_pg_if_cmd_fn (vlib_main_t * vm, ; else - return clib_error_create ("unknown input `%U'", - format_unformat_error, input); + { + error = clib_error_create ("unknown input `%U'", + format_unformat_error, line_input); + goto done; + } } + pg_interface_add_or_get (pg, if_id); + +done: unformat_free (line_input); - pg_interface_add_or_get (pg, if_id); - return 0; + return error; } /* *INDENT-OFF* */