VLAN trunking and fragmentation

Giulio Ferro auryn at zirakzigil.org
Thu Mar 20 10:03:25 PDT 2008


Pyun YongHyeon wrote:
> Please try latest attempt to fix re(4) issues.
>  http://people.freebsd.org/~yongari/re/if_re.c
>  http://people.freebsd.org/~yongari/re/if_rlreg.h
>
> This one is attempt to fix the following bug reports on re(4).
>  - VLAN tagging does not work on multi-fragmented frames.
>  - Non-working/instability on re(4) hardwares that uses MSI.
>  - Unconditional VLAN tag stripping without respect to ifconfig
>     configuration.
>  - ENOBUFS on transmitting UDP frames under heavy network loads.
>  - DAC does not work.
>
> This one removed previous checksum offload hack for checksum offload
> on PCIe hardwares so I'm not sure checksum offload still work on
> PCIe hardwares. Please test and let me know how it goes.
> Also make sure you have all hardware features enabled.(checksum
> offload, TSO, VLAN hardware tagging etc).
>
>   

Sorry for the slow answer.

I've tried the new files, and they seem to work:

# ifconfig re0
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 00:14:c1:40:c2:e8
        inet 192.168.60.1 netmask 0xffffff00 broadcast 192.168.60.255
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active


The only problem I see now is the one I already mention in the last 
mail. There are slow packets
in the stream of the communication:

# ping -s 2000 192.168.100.2
PING 192.168.100.2 (192.168.100.2): 2000 data bytes
2008 bytes from 192.168.100.2: icmp_seq=0 ttl=64 time=0.264 ms
2008 bytes from 192.168.100.2: icmp_seq=1 ttl=64 time=1001.186 ms
2008 bytes from 192.168.100.2: icmp_seq=2 ttl=64 time=0.235 ms
2008 bytes from 192.168.100.2: icmp_seq=3 ttl=64 time=0.187 ms
2008 bytes from 192.168.100.2: icmp_seq=4 ttl=64 time=0.189 ms
2008 bytes from 192.168.100.2: icmp_seq=5 ttl=64 time=2002.172 ms
2008 bytes from 192.168.100.2: icmp_seq=6 ttl=64 time=1001.182 ms
2008 bytes from 192.168.100.2: icmp_seq=7 ttl=64 time=2002.178 ms
2008 bytes from 192.168.100.2: icmp_seq=8 ttl=64 time=1001.186 ms
2008 bytes from 192.168.100.2: icmp_seq=9 ttl=64 time=1001.174 ms
2008 bytes from 192.168.100.2: icmp_seq=10 ttl=64 time=0.179 ms
2008 bytes from 192.168.100.2: icmp_seq=11 ttl=64 time=1001.172 ms
2008 bytes from 192.168.100.2: icmp_seq=12 ttl=64 time=0.180 ms
2008 bytes from 192.168.100.2: icmp_seq=13 ttl=64 time=1001.188 ms
2008 bytes from 192.168.100.2: icmp_seq=14 ttl=64 time=0.244 ms
2008 bytes from 192.168.100.2: icmp_seq=15 ttl=64 time=0.188 ms
2008 bytes from 192.168.100.2: icmp_seq=16 ttl=64 time=0.184 ms
2008 bytes from 192.168.100.2: icmp_seq=17 ttl=64 time=1001.173 ms
2008 bytes from 192.168.100.2: icmp_seq=18 ttl=64 time=0.180 ms
2008 bytes from 192.168.100.2: icmp_seq=19 ttl=64 time=0.188 ms
2008 bytes from 192.168.100.2: icmp_seq=20 ttl=64 time=0.185 ms
2008 bytes from 192.168.100.2: icmp_seq=21 ttl=64 time=0.186 ms
2008 bytes from 192.168.100.2: icmp_seq=22 ttl=64 time=2002.174 ms
2008 bytes from 192.168.100.2: icmp_seq=23 ttl=64 time=1001.182 ms
2008 bytes from 192.168.100.2: icmp_seq=24 ttl=64 time=1001.178 ms
2008 bytes from 192.168.100.2: icmp_seq=25 ttl=64 time=0.185 ms
2008 bytes from 192.168.100.2: icmp_seq=26 ttl=64 time=0.176 ms
2008 bytes from 192.168.100.2: icmp_seq=27 ttl=64 time=0.189 ms
2008 bytes from 192.168.100.2: icmp_seq=28 ttl=64 time=0.176 ms
2008 bytes from 192.168.100.2: icmp_seq=29 ttl=64 time=0.190 ms
2008 bytes from 192.168.100.2: icmp_seq=30 ttl=64 time=0.188 ms
2008 bytes from 192.168.100.2: icmp_seq=31 ttl=64 time=0.187 ms
2008 bytes from 192.168.100.2: icmp_seq=32 ttl=64 time=0.188 ms
2008 bytes from 192.168.100.2: icmp_seq=33 ttl=64 time=1001.186 ms
2008 bytes from 192.168.100.2: icmp_seq=34 ttl=64 time=0.234 ms
2008 bytes from 192.168.100.2: icmp_seq=35 ttl=64 time=0.187 ms
2008 bytes from 192.168.100.2: icmp_seq=36 ttl=64 time=0.189 ms
2008 bytes from 192.168.100.2: icmp_seq=37 ttl=64 time=1001.183 ms
2008 bytes from 192.168.100.2: icmp_seq=38 ttl=64 time=0.232 ms
2008 bytes from 192.168.100.2: icmp_seq=39 ttl=64 time=0.187 ms
2008 bytes from 192.168.100.2: icmp_seq=40 ttl=64 time=1001.174 ms
2008 bytes from 192.168.100.2: icmp_seq=41 ttl=64 time=0.181 ms



It would be great if you could understand why this happens...

Thanks again.


More information about the freebsd-net mailing list