Skip to contentSkip to conversation

New: sunhme requires lower MTU to handle 802.1q frames

Bugme-new Andrew Morton 3 participants 4 messages Oct 31, 2007 – Nov 1, 2007 1 message not in the archive

Subsystems (2)
lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]/

#1 lore raw
Quoted 38 lines · On Wed, 31 Oct 2007 14:54:06 -0700 (PDT) [email protected] wrote:

http://bugzilla.kernel.org/show_bug.cgi?id=9270

           Summary: sunhme requires lower MTU to handle 802.1q frames
           Product: Drivers
           Version: 2.5
     KernelVersion: 2.6.18-3
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Network
        AssignedTo: [email protected]
        ReportedBy: [email protected]

Most recent kernel where this bug did not occur: N/A
Distribution: Debian 4.0r1 (Etch)
Hardware Environment: Sun Netra T1 105
Software Environment:
Problem Description:
sunhme requires lower MTU to handle 802.1q frames - even though the PCI driver supported VLAN tagging, you cannot do full MTU @ 1500 because the driver doesn't set the card to transfer more the extra bytes for a 802.1q frame at 1500 MTU.

Steps to reproduce:
modprobe 8021q
modprobe sunhme
ifconfig eth0 up
vconfig set_name_type DEV_PLUS_VID_NO_PAD
vconfig add eth0 10
ifconfig eth0.10 192.l68.0.1 netmask 255.255.255.252 broadcast 192.168.0.3 up # IP pkt size = 1496, Ethernet frame size = 1514
ping -s 1468 -c 1 -w 1 192.168.0.2
# IP pkt size = 1500, Ethernet frame size = 1518
ping -s 1472 -c 1 -w 1 192.168.0.2

maintainer
#2 lore raw

From: Andrew Morton <[email protected]>
Date: Wed, 31 Oct 2007 15:43:01 -0700

Quoted 4 lines
Quoted 4 lines

sunhme requires lower MTU to handle 802.1q frames - even though the PCI driver supported VLAN tagging, you cannot do full MTU @ 1500 because the driver doesn't set the card to transfer more the extra bytes for a 802.1q frame at 1500 MTU.

It supports VLAN tagging by accident, the NETIF_F_VLAN_CHALLENGED flag should be set both in the PCI and non-PCI cases.

Jeff, please apply, thanks:

[SUNHME]: Fix missing NETIF_F_VLAN_CHALLENGED on PCI happy meals.

No HME parts can do VLANs correctly.

drivers/net/sunhme.c +2 -2
index 120c8af..c20a3bd 100644
@@ -3143,8 +3143,8 @@ static int __devinit happy_meal_pci_probe(struct pci_dev *pdev,
 	dev->irq = pdev->irq;
 	dev->dma = 0;
 
-	/* Happy Meal can do it all... */
-	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
+	/* Happy Meal can do it all... except VLAN. */
+	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_VLAN_CHALLENGED;
 
 #if defined(CONFIG_SBUS) && defined(CONFIG_PCI)
 	/* Hook up PCI register/dma accessors. */
#3 lore raw
Quoted 24 lines · On Wed, 31 Oct 2007 16:35:57 -0700 (PDT) David Miller <[email protected]>…

From: Andrew Morton <[email protected]>
Date: Wed, 31 Oct 2007 15:43:01 -0700

Quoted 4 lines
Quoted 4 lines

sunhme requires lower MTU to handle 802.1q frames - even though the PCI driver supported VLAN tagging, you cannot do full MTU @ 1500 because the driver doesn't set the card to transfer more the extra bytes for a 802.1q frame at 1500 MTU.

It supports VLAN tagging by accident, the NETIF_F_VLAN_CHALLENGED flag should be set both in the PCI and non-PCI cases.

Jeff, please apply, thanks:

[SUNHME]: Fix missing NETIF_F_VLAN_CHALLENGED on PCI happy meals.

No HME parts can do VLANs correctly.

drivers/net/sunhme.c +0 -0
index 120c8af..c20a3bd 100644

drivers/net/sunhme.c static int __devinit happy_meal_pci_probe(struct pci_dev *pdev, · line 3150

Quoted 10 lines
drivers/net/sunhme.c +2 -2
@@ -3143,8 +3143,8 @@ static int __devinit happy_meal_pci_probe(struct pci_dev *pdev,
 	dev->irq = pdev->irq;
 	dev->dma = 0;
 
-	/* Happy Meal can do it all... */
-	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
+	/* Happy Meal can do it all... except VLAN. */
+	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_VLAN_CHALLENGED;
 
 #if defined(CONFIG_SBUS) && defined(CONFIG_PCI)
 	/* Hook up PCI register/dma accessors. */

I forgot to add my standard "please reply via emailed reply-to-all, not via the bugzilla web interface", so Chris has gone and attempted to communicate with us via the bugzilla UI (sigh).

He asked

"Even though it appears to work after I bumped the BMAC_TXMAX / BMAC_RXMAX?"

#4 lore raw

Forgot to add that only changing BMAC_TXMAX & BMAC_RXMAX wouldn't work for me, until I changed 2 skb_put as well (which is in the patch that I submitted in bugzilla). Dug up some really old threads on the net and found out that this was reported before

Quoting Andrew Morton <[email protected]>:

Quoted 52 lines
Quoted 4 lines · On Wed, 31 Oct 2007 16:35:57 -0700 (PDT) David Miller <[email protected]>…

From: Andrew Morton <[email protected]>
Date: Wed, 31 Oct 2007 15:43:01 -0700

Quoted 1 line
Quoted 1 line

sunhme requires lower MTU to handle 802.1q frames - even though the

PCI

Quoted 1 line
Quoted 1 line
Quoted 1 line

driver supported VLAN tagging, you cannot do full MTU @ 1500 because

the

Quoted 1 line
Quoted 1 line
Quoted 1 line

driver doesn't set the card to transfer more the extra bytes for a

802.1q

drivers/net/sunhme.c static int __devinit happy_meal_pci_probe(struct

Quoted 18 lines
Quoted 1 line
Quoted 1 line

frame at 1500 MTU.

It supports VLAN tagging by accident, the NETIF_F_VLAN_CHALLENGED flag should be set both in the PCI and non-PCI cases.

Jeff, please apply, thanks:

[SUNHME]: Fix missing NETIF_F_VLAN_CHALLENGED on PCI happy meals.

No HME parts can do VLANs correctly.

drivers/net/sunhme.c +0 -0
index 120c8af..c20a3bd 100644
@@ -3143,8 +3143,8 @@ static int __devinit happy_meal_pci_probe(struct

pci_dev *pdev,

drivers/net/sunhme.c static int __devinit happy_meal_pci_probe(struct pci_dev *pdev, · line 3150

Quoted 10 lines
drivers/net/sunhme.c +2 -2
 	dev->irq = pdev->irq;
 	dev->dma = 0;
 
-	/* Happy Meal can do it all... */
-	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;
+	/* Happy Meal can do it all... except VLAN. */
+	dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_VLAN_CHALLENGED;
 
 #if defined(CONFIG_SBUS) && defined(CONFIG_PCI)
 	/* Hook up PCI register/dma accessors. */

I forgot to add my standard "please reply via emailed reply-to-all, not via the bugzilla web interface", so Chris has gone and attempted to communicate with us via the bugzilla UI (sigh).

He asked

"Even though it appears to work after I bumped the BMAC_TXMAX / BMAC_RXMAX?"