Issue Type: | New Feature |
---|---|
Priority: | 4 - Normal |
Status: | Resolved |
Created at: | 2017-07-20T23:00:06.000Z |
Updated at: | 2018-03-16T22:01:13.519Z |
Created by: | Former user |
---|---|
Reported by: | Former user |
Assigned to: | Former user |
Fixed: A fix for this issue is checked into the tree and tested.
(Resolution Date: 2018-03-16T22:01:13.510Z)
2018-03-29 Old Man's House (Release Date: 2018-03-29)
If a MAC client has only 1 VID, as is the case for tagged VNICs, then we can take advantage of DLS bypass for VLAN traffic.
The current logic sets the s_ring_rx_func
of a tagged VNIC to mac_rx_deliver()
. This function, upon seeing that there is only 1 VID, strips the VLAN header and delivers it to the client receive function: i_dls_link_rx()
. This function then calls ip_input()
.
Since there is only 1 VID there is no reason to go through i_dls_link_rx()
when it's just going to deliver it to ip_input()
anyways.
If we do this there should be a clear performance benefit as it will probably make the code slightly more complicated.
OS-5326 will certainly net the biggest perf increase for VLAN traffic but I think these two changes become more beneficial when combined because of how TCP/squeue polling works. But I'm not certain. Just something to keep in mind.
illumos-joyent commit 1a34bceaa14b4cf3a9cf90aa9c4dae5eb003d9d7 (branch master, by Ryan Zezeski)
OS-5326 SRS ring polling disabled for VLANs
OS-6244 Want DLS bypass for VLAN traffic
OS-6593 add VLVF bypass to ixgbe core
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Dan McDonald <danmcd@joyent.com>
Approved by: Patrick Mooney <patrick.mooney@joyent.com>