https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=291420

            Bug ID: 291420
           Summary: [epair] Bad UDP packet checksum with epair(4) and
                    txcsum enabled
           Product: Base System
           Version: 14.3-STABLE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: [email protected]
          Reporter: [email protected]

Created attachment 265874
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=265874&action=edit
traffic dump

Bad udp checksum, when `txcsum` enabled on `epair` interface

Host mashine
```
bge1: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
       
options=c009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,VLAN_HWTSO,LINKSTATE>
        ether c4:34:6b:b8:e4:39
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
bridge1: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric
0 mtu 1500
  options=0
  ether 58:9c:fc:10:ff:ca
  id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
  maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
  root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
  member: epair1a flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
          ifmaxaddr 0 port 19 priority 128 path cost 2000
  member: bge1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
          ifmaxaddr 0 port 2 priority 128 path cost 55
  groups: bridge
epair1a: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP>
metric 0 mtu 1500
        options=20000b<RXCSUM,TXCSUM,VLAN_MTU,RXCSUM_IPV6>
        ether 02:ef:5d:1e:0d:0a
        groups: epair
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        nd6 options=9<PERFORMNUD,IFDISABLED>
```
Inside jail
```
epair1b: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric
0 mtu 1500
        options=20000b<RXCSUM,TXCSUM,VLAN_MTU,RXCSUM_IPV6>
        ether 02:ef:5d:1e:0d:0b
        inet 193.34.20.8 netmask 0xfffffff0 broadcast 193.34.20.15
        groups: epair
        media: Ethernet 10Gbase-T (10Gbase-T <full-duplex>)
        status: active
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
```
193.34.20.4 - neighbors machine
Trying `drill i.ua @193.34.20.4` inside jail

On neighbor machine `bad checksum` counter increased by three
```
# netstat -sp udp
udp:
        5505590454 datagrams received
        0 with incomplete header
        17 with bad data length field
        46288 with bad checksum
```

PCAP file attached
first three packets - unanswered (bad checksum)
fourth packet - with disabled `txcsum` on 'epair1a`
fifth packet - answer to the fourth

enable/disable txcsum on bge1 interface - does not give results
enable/disable net.inet.udp.checksum - does not give results

Additional
dev.bge.3.forced_udpcsum: 0
dev.bge.2.forced_udpcsum: 0
dev.bge.1.forced_udpcsum: 0
dev.bge.0.forced_udpcsum: 0

===============================================================================

ALSO. It's unbelievable - but it's true
I have no idea why it works this way.

Inside Jail

# ping 193.34.20.5
PING 193.34.20.5 (193.34.20.5): 56 data bytes
^C
--- 193.34.20.5 ping statistics ---
2 packets transmitted, 0 packets received, 100.0% packet loss
Press any key to continue...

# ping 193.34.20.4
PING 193.34.20.4 (193.34.20.4): 56 data bytes
64 bytes from 193.34.20.4: icmp_seq=0 ttl=64 time=0.702 ms
64 bytes from 193.34.20.4: icmp_seq=1 ttl=64 time=0.465 ms

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to