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;
#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;
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;
a->count = count;
error = pg_capture (a);
+
+done:
+ unformat_free (line_input);
+
return error;
}
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;
;
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* */