summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authornp <np@FreeBSD.org>2013-01-17 00:21:45 +0000
committernp <np@FreeBSD.org>2013-01-17 00:21:45 +0000
commit980736a6d7829c63a5a7a1e7858261f9727b3ebd (patch)
tree24c4c88cb78099168a4e31e3358ee71cd890b14f /tools
parent559b3a7eace4ecc2123bb9319d05ad25cc53599b (diff)
downloadFreeBSD-src-980736a6d7829c63a5a7a1e7858261f9727b3ebd.zip
FreeBSD-src-980736a6d7829c63a5a7a1e7858261f9727b3ebd.tar.gz
Allow "ivlan" (inner VLAN) to be used as an alias for "vlan" when
specifying match criteria. "vlan" continues to be valid here, and it continues to be valid when deleting, rewriting, inserting, or stacking an 802.1q tag to a matching packet. MFC after: 3 days
Diffstat (limited to 'tools')
-rw-r--r--tools/tools/cxgbetool/cxgbetool.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/tools/tools/cxgbetool/cxgbetool.c b/tools/tools/cxgbetool/cxgbetool.c
index 7d0faa6..39e7376 100644
--- a/tools/tools/cxgbetool/cxgbetool.c
+++ b/tools/tools/cxgbetool/cxgbetool.c
@@ -955,7 +955,7 @@ set_filter(uint32_t idx, int argc, const char *argv[])
t.fs.mask.vnic = mask;
t.fs.val.vnic_vld = 1;
t.fs.mask.vnic_vld = 1;
- } else if (!parse_val_mask("vlan", args, &val, &mask)) {
+ } else if (!parse_val_mask("ivlan", args, &val, &mask)) {
t.fs.val.vlan = val;
t.fs.mask.vlan = mask;
t.fs.val.vlan_vld = 1;
@@ -1047,10 +1047,17 @@ set_filter(uint32_t idx, int argc, const char *argv[])
t.fs.newvlan = VLAN_REWRITE;
} else if (argv[start_arg + 1][0] == '+') {
t.fs.newvlan = VLAN_INSERT;
+ } else if (isdigit(argv[start_arg + 1][0]) &&
+ !parse_val_mask("vlan", args, &val, &mask)) {
+ t.fs.val.vlan = val;
+ t.fs.mask.vlan = mask;
+ t.fs.val.vlan_vld = 1;
+ t.fs.mask.vlan_vld = 1;
} else {
warnx("unknown vlan parameter \"%s\"; must"
- " be one of \"none\", \"=<vlan>\" or"
- " \"+<vlan>\"", argv[start_arg + 1]);
+ " be one of \"none\", \"=<vlan>\", "
+ " \"+<vlan>\", or \"<vlan>\"",
+ argv[start_arg + 1]);
return (EINVAL);
}
if (t.fs.newvlan == VLAN_REWRITE ||
OpenPOWER on IntegriCloud