X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fclassify%2Fvnet_classify.c;h=b02a5dc6e5e78f43bdd06d4b76f8e08b46f932f8;hb=29c6132108be68feb11c8d9bfaaf674cba86ee33;hp=de11a107ef037573795fae1edcf39042aba4b304;hpb=1decd98e2edab69c3c7d6814d2da483175124dbd;p=vpp.git diff --git a/src/vnet/classify/vnet_classify.c b/src/vnet/classify/vnet_classify.c index de11a107ef0..b02a5dc6e5e 100755 --- a/src/vnet/classify/vnet_classify.c +++ b/src/vnet/classify/vnet_classify.c @@ -1697,6 +1697,7 @@ classify_filter_command_fn (vlib_main_t * vm, int current_data_offset = 0; u32 sw_if_index = ~0; int pkt_trace = 0; + int pcap = 0; int i; vnet_classify_table_t *t; u8 *mask = 0; @@ -1709,13 +1710,16 @@ classify_filter_command_fn (vlib_main_t * vm, { if (unformat (input, "del")) is_add = 0; - else if (unformat (input, "pcap %=", &sw_if_index, 0)) - ; + else if (unformat (input, "pcap %=", &pcap, 1)) + sw_if_index = 0; else if (unformat (input, "trace")) pkt_trace = 1; else if (unformat (input, "%U", unformat_vnet_sw_interface, vnm, &sw_if_index)) - ; + { + if (sw_if_index == 0) + return clib_error_return (0, "Local interface not supported..."); + } else if (unformat (input, "buckets %d", &nbuckets)) ; else if (unformat (input, "mask %U", unformat_classify_mask, @@ -1728,9 +1732,6 @@ classify_filter_command_fn (vlib_main_t * vm, break; } - if (sw_if_index == 0) - return clib_error_return (0, "Local interface not supported..."); - if (is_add && mask == 0 && table_index == ~0) return clib_error_return (0, "Mask required"); @@ -1740,7 +1741,7 @@ classify_filter_command_fn (vlib_main_t * vm, if (is_add && match == ~0 && table_index == ~0) return clib_error_return (0, "match count required"); - if (sw_if_index == ~0 && pkt_trace == 0) + if (sw_if_index == ~0 && pkt_trace == 0 && pcap == 0) return clib_error_return (0, "Must specify trace, pcap or interface..."); if (pkt_trace && sw_if_index != ~0)