lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 8 Jun 2009 13:05:11 +0300 (IDT)
From:	Or Gerlitz <ogerlitz@...taire.com>
To:	Jay Vosburgh <fubar@...ibm.com>, Patrick McHardy <kaber@...sh.net>
cc:	netdev@...r.kernel.org
Subject: bonds/vlan combinations and device features

I was looking on configurations which involve vlans and bonds, where so
far at least two problems were identified and handled through "zero features
for a vlan over bond" @ http://marc.info/?l=linux-netdev&m=124445367820790 and
"findings/questions on vlans/bonds" @ http://marc.info/?l=linux-netdev&m=124052070128649

Basically, there are at least two possible configs in that respect, where I believe
we want both of them to be supported (bond over vlans, or vlans over bond). Using Jay's
patches I have come into being able to bringup both configs and collect the features
exposed to the TCP stack by the "higher" interface, see details below (2.6.30-rc8 +
patch from Jay for vlan over bond).

Basically, things seem to make sense (to me...) and maybe one question to raise here
if its correct for bonding over vlan to advertize vlan accacceleration capabilites (HW_VLAN_XXX)?

Another questions which is more related to the vlan (8021q) driver, is the lack of
vlan passthrough (e.g setting dev->vlan_features) by most of the drivers (all expect
for the Intel ones...) as pointed by Jay earlier on these threads. Is there a real
issue for other HW vendors to support this or its something that got fogotten through
the introduction of the vlan_features? I traced 289c79a4... "vlan: Use bitmask of
feature flags instead of seperate feature bits" be to the 8021q patch and ad31c402...
"ixbge: allow vlan devices to use TSO and TCP CSUM offload" et al to be Intel drivers
patches, but I didn't see other drivers support.

Patrick, assuming that vlans are common and people expect NIC to support TCP offloads
such as checksum and large-send, what is the actual gap here per your view?

Or.


device		features	legend
======================================
bond0		0x111383	& ~GSO |  (HW_VLAN_TX/RX/FILTER | LLTX)
eth0.4001	0x110803	& ~(IPV6_CSUM | HIGHDMA | HW_VLAN_TX/RX/FILTER |GRO)
eth0		0x114bb3	(SG | IP/V6_CSUM | HIGHDMA | HW_VLAN_TX/RX/FILTER |GSO|GRO|TSO|TSO6)

bond0.4001	0x110803	& ~(IPV6_CSUM | HIGHDMA | HW_VLAN_TX/RX/FILTER| LLTX)
bond0		0x1113b3	& ~(GSO | GRO) | LLTX
eth0		0x114bb3	(SG | IP/V6_CSUM | HIGHDMA | HW_VLAN_TX/RX/FILTER |GSO|GRO|TSO|TSO6)

00	#define NETIF_F_SG		1	/* Scatter/gather IO. */
01	#define NETIF_F_IP_CSUM		2	/* Can checksum TCP/UDP over IPv4. */
02	#define NETIF_F_NO_CSUM		4	/* Does not require checksum. F.e. loopack. */
03	#define NETIF_F_HW_CSUM		8	/* Can checksum all the packets. */
----------------------------------------------------------------------------------
04	#define NETIF_F_IPV6_CSUM	16	/* Can checksum TCP/UDP over IPV6 */
05	#define NETIF_F_HIGHDMA		32	/* Can DMA to high memory. */
06	#define NETIF_F_FRAGLIST	64	/* Scatter/gather IO. */
07	#define NETIF_F_HW_VLAN_TX	128	/* Transmit VLAN hw acceleration */
----------------------------------------------------------------------------------
08	#define NETIF_F_HW_VLAN_RX	256	/* Receive VLAN hw acceleration */
09	#define NETIF_F_HW_VLAN_FILTER	512	/* Receive filtering on VLAN */
10	#define NETIF_F_VLAN_CHALLENGED	1024	/* Device cannot handle VLAN packets */
11	#define NETIF_F_GSO		2048	/* Enable software GSO. */
----------------------------------------------------------------------------------
12	#define NETIF_F_LLTX		4096	/* LockLess TX - deprecated. Please */
13	#define NETIF_F_NETNS_LOCAL	8192	/* Does not change network namespaces */
14	#define NETIF_F_GRO		16384	/* Generic receive offload */
15	#define NETIF_F_LRO		32768	/* large receive offload */
----------------------------------------------------------------------------------
16	#define NETIF_F_TSO		(SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT)
17	#define NETIF_F_UFO		(SKB_GSO_UDP << NETIF_F_GSO_SHIFT)
18	#define NETIF_F_GSO_ROBUST	(SKB_GSO_DODGY << NETIF_F_GSO_SHIFT)
19	#define NETIF_F_TSO_ECN		(SKB_GSO_TCP_ECN << NETIF_F_GSO_SHIFT)
----------------------------------------------------------------------------------
20	#define NETIF_F_TSO6		(SKB_GSO_TCPV6 << NETIF_F_GSO_SHIFT)
21
22
23
----------------------------------------------------------------------------------
24	#define NETIF_F_FCOE_CRC	(1 << 24) /* FCoE CRC32 */
----------------------------------------------------------------------------------
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ