summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authornp <np@FreeBSD.org>2011-12-16 02:09:51 +0000
committernp <np@FreeBSD.org>2011-12-16 02:09:51 +0000
commit65b6b4fa8f3369ae8f1ddf883233883607f6abb8 (patch)
tree3f54f68c887ea6a17b5427746efe66dfa931b56d /tools
parent8b1b8ed3cbd6bbfca00c2962853afec4ba1e1839 (diff)
downloadFreeBSD-src-65b6b4fa8f3369ae8f1ddf883233883607f6abb8.zip
FreeBSD-src-65b6b4fa8f3369ae8f1ddf883233883607f6abb8.tar.gz
Many updates to cxgbe(4)
- Device configuration via plain text config file. Also able to operate when not attached to the chip as the master driver. - Generic "work request" queue that serves as the base for both ctrl and ofld tx queues. - Generic interrupt handler routine that can process any event on any kind of ingress queue (via a dispatch table). - A couple of new driver ioctls. cxgbetool can now install a firmware to the card ("loadfw" command) and can read the card's memory ("memdump" and "tcb" commands). - Lots of assorted information within dev.t4nex.X.misc.* This is primarily for debugging and won't show up in sysctl -a. - Code to manage the L2 tables on the chip. - Updates to cxgbe(4) man page to go with the tunables that have changed. - Updates to the shared code in common/ - Updates to the driver-firmware interface (now at fw 1.4.16.0) MFC after: 1 month
Diffstat (limited to 'tools')
-rw-r--r--tools/tools/cxgbetool/cxgbetool.c64
1 files changed, 35 insertions, 29 deletions
diff --git a/tools/tools/cxgbetool/cxgbetool.c b/tools/tools/cxgbetool/cxgbetool.c
index da6bfba..06fa50b 100644
--- a/tools/tools/cxgbetool/cxgbetool.c
+++ b/tools/tools/cxgbetool/cxgbetool.c
@@ -396,12 +396,12 @@ do_show_info_header(uint32_t mode)
printf (" Port");
break;
- case T4_FILTER_OVLAN:
- printf (" vld:oVLAN");
+ case T4_FILTER_VNIC:
+ printf (" vld:VNIC");
break;
- case T4_FILTER_IVLAN:
- printf (" vld:iVLAN");
+ case T4_FILTER_VLAN:
+ printf (" vld:VLAN");
break;
case T4_FILTER_IP_TOS:
@@ -653,18 +653,18 @@ do_show_one_filter_info(struct t4_filter *t, uint32_t mode)
printf(" %1d/%1d", t->fs.val.iport, t->fs.mask.iport);
break;
- case T4_FILTER_OVLAN:
+ case T4_FILTER_VNIC:
printf(" %1d:%1x:%02x/%1d:%1x:%02x",
- t->fs.val.ovlan_vld, (t->fs.val.ovlan >> 7) & 0x7,
- t->fs.val.ovlan & 0x7f, t->fs.mask.ovlan_vld,
- (t->fs.mask.ovlan >> 7) & 0x7,
- t->fs.mask.ovlan & 0x7f);
+ t->fs.val.vnic_vld, (t->fs.val.vnic >> 7) & 0x7,
+ t->fs.val.vnic & 0x7f, t->fs.mask.vnic_vld,
+ (t->fs.mask.vnic >> 7) & 0x7,
+ t->fs.mask.vnic & 0x7f);
break;
- case T4_FILTER_IVLAN:
+ case T4_FILTER_VLAN:
printf(" %1d:%04x/%1d:%04x",
- t->fs.val.ivlan_vld, t->fs.val.ivlan,
- t->fs.mask.ivlan_vld, t->fs.mask.ivlan);
+ t->fs.val.vlan_vld, t->fs.val.vlan,
+ t->fs.mask.vlan_vld, t->fs.mask.vlan);
break;
case T4_FILTER_IP_TOS:
@@ -830,11 +830,11 @@ get_filter_mode(void)
if (mode & T4_FILTER_IP_TOS)
printf("tos ");
- if (mode & T4_FILTER_IVLAN)
- printf("ivlan ");
+ if (mode & T4_FILTER_VLAN)
+ printf("vlan ");
- if (mode & T4_FILTER_OVLAN)
- printf("ovlan ");
+ if (mode & T4_FILTER_VNIC)
+ printf("vnic ");
if (mode & T4_FILTER_PORT)
printf("iport ");
@@ -868,11 +868,12 @@ set_filter_mode(int argc, const char *argv[])
if (!strcmp(argv[0], "tos"))
mode |= T4_FILTER_IP_TOS;
- if (!strcmp(argv[0], "ivlan"))
- mode |= T4_FILTER_IVLAN;
+ if (!strcmp(argv[0], "vlan"))
+ mode |= T4_FILTER_VLAN;
- if (!strcmp(argv[0], "ovlan"))
- mode |= T4_FILTER_OVLAN;
+ if (!strcmp(argv[0], "ovlan") ||
+ !strcmp(argv[0], "vnic"))
+ mode |= T4_FILTER_VNIC;
if (!strcmp(argv[0], "iport"))
mode |= T4_FILTER_PORT;
@@ -936,15 +937,20 @@ set_filter(uint32_t idx, int argc, const char *argv[])
t.fs.val.iport = val;
t.fs.mask.iport = mask;
} else if (!parse_val_mask("ovlan", args, &val, &mask)) {
- t.fs.val.ovlan = val;
- t.fs.mask.ovlan = mask;
- t.fs.val.ovlan_vld = 1;
- t.fs.mask.ovlan_vld = 1;
- } else if (!parse_val_mask("ivlan", args, &val, &mask)) {
- t.fs.val.ivlan = val;
- t.fs.mask.ivlan = mask;
- t.fs.val.ivlan_vld = 1;
- t.fs.mask.ivlan_vld = 1;
+ t.fs.val.vnic = val;
+ t.fs.mask.vnic = mask;
+ t.fs.val.vnic_vld = 1;
+ t.fs.mask.vnic_vld = 1;
+ } else if (!parse_val_mask("vnic", args, &val, &mask)) {
+ t.fs.val.vnic = val;
+ 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)) {
+ t.fs.val.vlan = val;
+ t.fs.mask.vlan = mask;
+ t.fs.val.vlan_vld = 1;
+ t.fs.mask.vlan_vld = 1;
} else if (!parse_val_mask("tos", args, &val, &mask)) {
t.fs.val.tos = val;
t.fs.mask.tos = mask;
OpenPOWER on IntegriCloud