aboutsummaryrefslogtreecommitdiffstats
path: root/vnet/vnet/pg/cli.c
diff options
context:
space:
mode:
authorDamjan Marion <damarion@cisco.com>2016-07-12 21:58:19 +0200
committerDamjan Marion <damarion@cisco.com>2016-07-12 21:58:19 +0200
commit92217f3c1d6ca7a65ba567dca5273a0aad2a38d9 (patch)
tree78679089edaa913f2f35d394315c9175ca477369 /vnet/vnet/pg/cli.c
parentf24e5d79d47e8ccd5a83aea5595dbdfd1a0f5e0b (diff)
packet-generator: various fixes
Change-Id: I8f1be9a501574ff4d5024ed0d632392708716e77 Signed-off-by: Damjan Marion <damarion@cisco.com>
Diffstat (limited to 'vnet/vnet/pg/cli.c')
-rw-r--r--vnet/vnet/pg/cli.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/vnet/vnet/pg/cli.c b/vnet/vnet/pg/cli.c
index 201e4fb9d5e..d73add1220d 100644
--- a/vnet/vnet/pg/cli.c
+++ b/vnet/vnet/pg/cli.c
@@ -463,6 +463,7 @@ pg_capture_cmd_fn (vlib_main_t * vm,
pg_interface_t * pi;
u8 * pcap_file_name = 0;
u32 hw_if_index;
+ u32 is_disable = 0;
u32 count = ~0;
if (! unformat_user (input, unformat_line_input, line_input))
@@ -480,6 +481,8 @@ pg_capture_cmd_fn (vlib_main_t * vm,
;
else if (unformat (line_input, "count %u", &count))
;
+ else if (unformat (line_input, "disable"))
+ is_disable = 1;
else
{
@@ -495,21 +498,26 @@ pg_capture_cmd_fn (vlib_main_t * vm,
if (hi->dev_class_index != pg_dev_class.index)
return clib_error_return (0, "Please specify packet-generator interface");
- if (!pcap_file_name)
+ if (!pcap_file_name && is_disable == 0)
return clib_error_return (0, "Please specify pcap file name");
- {
- struct stat sb;
- if (stat ((char *) pcap_file_name, &sb) != -1)
- return clib_error_return (0, "Cannot create pcap file");
- }
+ if (is_disable == 0)
+ {
+ struct stat sb;
+ if (stat ((char *) pcap_file_name, &sb) != -1)
+ return clib_error_return (0, "Cannot create pcap file");
+ }
unformat_free (line_input);
pi = pool_elt_at_index (pg->interfaces, hi->dev_instance);
vec_free (pi->pcap_file_name);
- pi->pcap_file_name = pcap_file_name;
memset (&pi->pcap_main, 0, sizeof (pi->pcap_main));
+
+ if (is_disable)
+ return 0;
+
+ pi->pcap_file_name = pcap_file_name;
pi->pcap_main.file_name = (char *) pi->pcap_file_name;
pi->pcap_main.n_packets_to_capture = count;
pi->pcap_main.packet_type = PCAP_PACKET_TYPE_ethernet;