NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/57652: ixl(4) doesn't fully support vlan(4)
>Number: 57652
>Category: kern
>Synopsis: ixl(4) doesn't fully support vlan(4)
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Oct 11 10:25:00 +0000 2023
>Originator: Manuel Bouyer
>Release: NetBSD 10.0_BETA
>Organization:
>Environment:
>Description:
a vlan(4) interface attached to ixl(4) has its MTU truncated to 1496:
vlan584: flags=0x8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1496
capabilities=0x3ff00<IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx>
capabilities=0x3ff00<UDP4CSUM_Rx,UDP4CSUM_Tx,TCP6CSUM_Rx,TCP6CSUM_Tx>
capabilities=0x3ff00<UDP6CSUM_Rx,UDP6CSUM_Tx>
enabled=0
vlan: 584 parent: ixl1
This is because ixl(4) doesn't announce VLAN_MTU in ec_capabilities.
I tried this simple patch:
--- sys/dev/pci/if_ixl.c.orig 2023-10-11 11:23:55.534559844 +0200
+++ sys/dev/pci/if_ixl.c 2023-10-11 11:24:20.514192237 +0200
@@ -1320,6 +1320,7 @@
#endif
ether_set_vlan_cb(&sc->sc_ec, ixl_vlan_cb);
sc->sc_ec.ec_capabilities |= ETHERCAP_JUMBO_MTU;
+ sc->sc_ec.ec_capabilities |= ETHERCAP_VLAN_MTU;
sc->sc_ec.ec_capabilities |= ETHERCAP_VLAN_HWTAGGING;
sc->sc_ec.ec_capabilities |= ETHERCAP_VLAN_HWFILTER;
which cause vlan(4) to have a 1500-byte MTU, but then packets larger
than 1496 bytes are not received so this is not enough; the driver
needs to handle VLAN_MTU in ec_enabled too.
BTW, I have JUMBO_MTU set in ec_enabled, even though I'm not using
large ethernet frames ...
ixl1: flags=0x8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
capabilities=0x3ff00<IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx>
capabilities=0x3ff00<UDP4CSUM_Rx,UDP4CSUM_Tx,TCP6CSUM_Rx,TCP6CSUM_Tx>
capabilities=0x3ff00<UDP6CSUM_Rx,UDP6CSUM_Tx>
enabled=0
ec_capabilities=0xe<VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWFILTER>
ec_enabled=0x6<VLAN_HWTAGGING,JUMBO_MTU>
>How-To-Repeat:
configure a vlan(4) on a ixl(4) and try a ping -s1500 from a remote
machine
>Fix:
please
Home |
Main Index |
Thread Index |
Old Index