Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F107523154
D24179.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D24179.diff
View Options
diff --git a/share/man/man4/ixl.4 b/share/man/man4/ixl.4
--- a/share/man/man4/ixl.4
+++ b/share/man/man4/ixl.4
@@ -31,7 +31,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 27, 2020
+.Dd January 19, 2021
.Dt IXL 4
.Os
.Sh NAME
@@ -227,6 +227,15 @@
Displays the current speed.
.It Va dev.ixl.#.fw_version
Displays the current firmware and NVM versions of the adapter.
+.It Va dev.ixl.#.debug.switch_vlans
+Set the Ethertype used by the hardware itself to handle internal
+services.
+Frames with this Ethertype will be dropped without notice.
+Defaults to
+.Dv 0x88a8 ,
+which is a well known number for IEEE 802.1ad VLAN stacking.
+If you need 802.1ad support, set this number to any another Ethertype i.e.
+.Dv 0xffff .
.El
.Sh INTERRUPT STORMS
It is important to note that 40G operation can generate high
diff --git a/sys/dev/ixl/ixl_pf_main.c b/sys/dev/ixl/ixl_pf_main.c
--- a/sys/dev/ixl/ixl_pf_main.c
+++ b/sys/dev/ixl/ixl_pf_main.c
@@ -69,6 +69,7 @@
static int ixl_sysctl_sw_filter_list(SYSCTL_HANDLER_ARGS);
static int ixl_sysctl_hw_res_alloc(SYSCTL_HANDLER_ARGS);
static int ixl_sysctl_switch_config(SYSCTL_HANDLER_ARGS);
+static int ixl_sysctl_switch_vlans(SYSCTL_HANDLER_ARGS);
static int ixl_sysctl_hkey(SYSCTL_HANDLER_ARGS);
static int ixl_sysctl_hena(SYSCTL_HANDLER_ARGS);
static int ixl_sysctl_hlut(SYSCTL_HANDLER_ARGS);
@@ -2329,6 +2330,11 @@
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
pf, 0, ixl_sysctl_switch_config, "A", "HW Switch Configuration");
+ SYSCTL_ADD_PROC(ctx, debug_list,
+ OID_AUTO, "switch_vlans",
+ CTLTYPE_INT | CTLFLAG_WR | CTLFLAG_NEEDGIANT,
+ pf, 0, ixl_sysctl_switch_vlans, "I", "HW Switch VLAN Configuration");
+
SYSCTL_ADD_PROC(ctx, debug_list,
OID_AUTO, "rss_key",
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NEEDGIANT,
@@ -3481,6 +3487,40 @@
return (error);
}
+static int
+ixl_sysctl_switch_vlans(SYSCTL_HANDLER_ARGS)
+{
+ struct ixl_pf *pf = (struct ixl_pf *)arg1;
+ struct i40e_hw *hw = &pf->hw;
+ device_t dev = pf->dev;
+ int requested_vlan = -1;
+ enum i40e_status_code status = 0;
+ int error = 0;
+
+ error = sysctl_handle_int(oidp, &requested_vlan, 0, req);
+ if ((error) || (req->newptr == NULL))
+ return (error);
+
+ if ((hw->flags & I40E_HW_FLAG_802_1AD_CAPABLE) == 0) {
+ device_printf(dev, "Flags disallow setting of vlans\n");
+ return (ENODEV);
+ }
+
+ hw->switch_tag = requested_vlan;
+ device_printf(dev,
+ "Setting switch config to switch_tag=%04x, first_tag=%04x, second_tag=%04x\n",
+ hw->switch_tag, hw->first_tag, hw->second_tag);
+ status = i40e_aq_set_switch_config(hw, 0, 0, 0, NULL);
+ if (status) {
+ device_printf(dev,
+ "%s: aq_set_switch_config() error %s, aq error %s\n",
+ __func__, i40e_stat_str(hw, status),
+ i40e_aq_str(hw, hw->aq.asq_last_status));
+ return (status);
+ }
+ return (0);
+}
+
static int
ixl_sysctl_hkey(SYSCTL_HANDLER_ARGS)
{
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Jan 16, 10:04 AM (20 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15823760
Default Alt Text
D24179.diff (2 KB)
Attached To
Mode
D24179: ixl: Permit 802.1ad frames to pass though the chip
Attached
Detach File
Event Timeline
Log In to Comment