Hi,
I've been noticing network performance degradation on my soekris net6501 on
a 100/10 connection.
I can't pinpoint an exact date, but before new year performance was as
expected.
network setup as follows:
The isp ont connects to the openbsd box via ethernet, with a data vlan
which delivers internet connectivity.
pcaetano@soekris $ > ifconfig
-a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
priority: 0
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7
inet 127.0.0.1 netmask 0xff000000
em0:
flags=18b43<UP,BROADCAST,RUNNING,PROMISC,ALLMULTI,SIMPLEX,MULTICAST,MPSAFE>
mtu 1500
lladdr 00:00:24:cf:08:c8
description: internet
priority: 0
media: Ethernet 100baseTX full-duplex
status: active
em1: flags=18843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,MPSAFE> mtu 1500
lladdr 00:00:24:cf:08:c9
description: mediacenter
priority: 0
media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause)
status: active
inet 10.255.255.1 netmask 0xffffff00 broadcast 10.255.255.255
em2: flags=18843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,MPSAFE> mtu 1500
lladdr 00:00:24:cf:08:ca
description: AP
priority: 0
media: Ethernet autoselect (1000baseT full-duplex,master)
status: active
inet 10.254.254.1 netmask 0xffffff00 broadcast 10.254.254.255
inet6 fe80::200:24ff:fecf:8ca%em2 prefixlen 64 scopeid 0x4
inet6 2001:470:1f1d:802b:: prefixlen 64
em3: flags=18843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,MPSAFE> mtu 1500
lladdr 00:00:24:cf:08:cb
description: NAS
priority: 0
media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause)
status: active
inet 10.253.253.1 netmask 0xffffff00 broadcast 10.253.253.255
enc0: flags=0<>
priority: 0
groups: enc
status: active
vlan100: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:00:24:cf:08:c8
priority: 0
vlan: 100 parent interface: em0
groups: vlan egress
status: active
inet 89.115.7.49 netmask 0xffff8000 broadcast 89.115.127.255
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
priority: 0
groups: gif egress
tunnel: inet 89.115.7.49 -> 216.66.88.98
inet6 fe80::200:24ff:fecf:8c8%gif0 -> prefixlen 64 scopeid 0x9
inet6 2001:470:1f1c:480::2 -> 2001:470:1f1c:480::1 prefixlen 128
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144
priority: 0
groups: pflog
netstat counters show bad checksums:
netstat -w 1 -c 1 -I vlan100 ; netstat -w 1 -c 1 -I em1 ; netstat -w 1 -c 1
-I em2 ; netstat -w 1 -c 1 -I em3 ; netstat -w 1 -c 1 -I gif0 ; netstat -w
1 -c 1 -I lo0
vlan1 in vlan1 out total in total out
packets errs packets errs colls packets errs packets errs colls
333689 0 266922 0 0 997949 8399 923226 0 0
em1 in em1 out total in total out
packets errs packets errs colls packets errs packets errs colls
76695 0 75446 0 0 997951 8399 923228 0 0
em2 in em2 out total in total out
packets errs packets errs colls packets errs packets errs colls
235420 0 286200 0 0 997953 8399 923230 0 0
em3 in em3 out total in total out
packets errs packets errs colls packets errs packets errs colls
288 0 282 0 0 997955 8399 923232 0 0
gif0 in gif0 out total in total out
packets errs packets errs colls packets errs packets errs colls
14117 0 14274 0 0 997957 8399 923234 0 0
lo0 in lo0 out total in total out
packets errs packets errs colls packets errs packets errs colls
4053 0 4053 0 0 997959 8399 923236 0 0
But none seem to be tied to any physical/virtual interface (?)
To rule out a possible isp related issue a linux fc23 x64 laptop was used
to perform some tests directly connected to the ont.
speedtest-cli (http://openports.se/benchmarks/speedtest-cli) was used to
measure the bandwidth, forcing use of a nearby server.
openbsd
5 mbit download / 5 mbit upload
linux fc23 x64
100 mbit download / 10 mbit upload
The checksum errors are visible in tcpdump.
pcaetano@soekris $ > curl http://openbsd.org
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="http://www.openbsd.org/">here</A>.<P>
</BODY></HTML>
pcaetano@soekris $ > doas tcpdump -nnvvr badchecksum.cap
23:18:56.258991 89.115.7.49.38924 > 129.128.5.194.80: S [bad tcp cksum
e818! -> d08e] 2129156372:2129156372(0) win 16384 <mss
1460,nop,nop,sackOK,nop,wscale 3,nop,nop,timestamp 293911467 0> (DF) (ttl
64, id 62808, len 64)
23:18:56.413029 89.115.7.49.38924 > 129.128.5.194.80: . [bad tcp cksum
e80c! -> a2cd] 2129156373:2129156373(0) ack 3391522537 win 2048
<nop,nop,timestamp 293911468 522794565> (DF) (ttl 64, id 29729, len 52)
23:18:56.414358 89.115.7.49.38924 > 129.128.5.194.80: P 0:75(75) ack 1 win
2048 <nop,nop,timestamp 293911468 522794565> (DF) (ttl 64, id 16582, len
127)
23:18:56.572933 89.115.7.49.38924 > 129.128.5.194.80: F [bad tcp cksum
e80c! -> a0f3] 75:75(0) ack 399 win 2048 <nop,nop,timestamp 293911468
522794565> (DF) (ttl 64, id 25156, len 52)
23:18:56.727385 89.115.7.49.38924 > 129.128.5.194.80: . [bad tcp cksum
e80c! -> a0f1] 76:76(0) ack 400 win 2048 <nop,nop,timestamp 293911468
522794566> (DF) (ttl 64, id 40799, len 52)
Please let me know if/how further testing is required.
Thank you for your help,
Pedro Caetano
pf.conf
icmp_types = "{ echoreq, unreach }"
icmp6_types = "{ echoreq unreach timex paramprob }"
int_if="{ em1 em2 em3 }"
set skip on lo
set loginterface egress
match out on egress from !(egress:network) nat-to (egress)
antispoof quick for (egress)
block in log all
block in log inet6 all
match in all scrub (no-df max-mss 1440)
pass inet proto icmp all icmp-type $icmp_types
pass in on vlan100 inet proto tcp from any to any port 22
pass out quick inet proto tcp from any to any port 22
pass out quick inet proto tcp from any to any port 80
pass out quick inet proto tcp from any to any port 443
pass out quick inet proto tcp from any to any port 20
pass out quick inet proto tcp from any to any port 21
pass out quick inet proto tcp from any to any port 989
pass out quick inet proto tcp from any to any port 990
pass out quick inet proto udp from any to any port 53
pass out on egress inet proto udp to port 33433 >< 33626
pass out quick inet keep state
pass in quick on $int_if inet proto udp from em3:network to any port 53
rdr-to 127.0.0.1
pass in quick on $int_if inet proto udp from em2:network to any port 53
rdr-to 127.0.0.1
pass in quick on $int_if inet proto udp from em1:network to any port 53
rdr-to 127.0.0.1
#pass in quick on $int_if inet proto tcp from !self to any port 80 rdr-to
127.0.0.1 port 3127
#pass in quick on em2 inet proto tcp from any to vlan100 port 80 rdr-to
127.0.0.1 port 3127
pass on em2 inet6 #from em2:network
pass on $int_if inet
pass out on vlan100 inet proto ipv6 from vlan100 to 216.66.88.98 \
keep state
pass in on vlan100 inet proto ipv6 from 216.66.88.98 to vlan100 \
keep state
pass inet6 proto icmp6 icmp6-type $icmp6_types
pass on gif0 inet6 all keep state
pass out quick inet6 proto tcp from any to any port 22
pass out quick inet6 proto tcp from any to any port 80
pass out quick inet6 proto tcp from any to any port 443
pass out quick inet6 proto tcp from any to any port 20
pass out quick inet6 proto tcp from any to any port 21
pass out quick inet6 proto tcp from any to any port 989
pass out quick inet6 proto tcp from any to any port 990
pass out quick inet6 proto udp from any to any port 53
dmesg
OpenBSD 5.9-beta (GENERIC.MP) #7: Fri Jan 22 02:06:55 WET 2016
[email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 2130575360 (2031MB)
avail mem = 2061873152 (1966MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0
acpi at bios0 not configured
mpbios0 at bios0: Intel MP Specification 1.4
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Genuine Intel(R) CPU @ 1.60GHz, 1600.22 MHz
cpu0:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,MOVBE,NXE,LONG,LAHF,PERF,SENSOR
cpu0: 512KB 64b/line 8-way L2 cache
cpu0: smt 0, core 0, package 0
mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges
cpu0: apic clock running at 99MHz
cpu0: mwait min=64, max=64, C-substates=0.2.2.0.2.0.3, IBE
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Genuine Intel(R) CPU @ 1.60GHz, 1599.99 MHz
cpu1:
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,MOVBE,NXE,LONG,LAHF,PERF,SENSOR
cpu1: 512KB 64b/line 8-way L2 cache
cpu1: smt 1, core 0, package 0
mpbios0: bus 0 is type PCI
mpbios0: bus 64 is type ISA
ioapic0 at mainbus0: apid 0 pa 0xfec00000, version 20, 24 pins
cpu0: unknown Enhanced SpeedStep CPU, msr 0x0613101a0600101a
cpu0: using only highest and lowest power states
cpu0: Enhanced SpeedStep 1600 MHz: speeds: 1600, 600 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 "Intel E600 Host" rev 0x05
pchb1 at pci0 dev 1 function 0 "Intel E600 Config" rev 0x00
ppb0 at pci0 dev 23 function 0 "Intel E600 PCIE" rev 0x00
pci1 at ppb0 bus 1
ppb1 at pci1 dev 0 function 0 "Intel EG20T PCIE" rev 0x01
pci2 at ppb1 bus 2
"Intel EG20T Packet Hub" rev 0x01 at pci2 dev 0 function 0 not configured
"Intel EG20T Ethernet" rev 0x01 at pci2 dev 0 function 1 not configured
"Intel EG20T GPIO" rev 0x00 at pci2 dev 0 function 2 not configured
ohci0 at pci2 dev 2 function 0 "Intel EG20T USB" rev 0x01: apic 0 int 19,
version 1.0, legacy support
ohci1 at pci2 dev 2 function 1 "Intel EG20T USB" rev 0x01: apic 0 int 19,
version 1.0, legacy support
ohci2 at pci2 dev 2 function 2 "Intel EG20T USB" rev 0x01: apic 0 int 19,
version 1.0, legacy support
ehci0 at pci2 dev 2 function 3 "Intel EG20T USB" rev 0x01: apic 0 int 19
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
"Intel EG20T USB Client" rev 0x01 at pci2 dev 2 function 4 not configured
sdhc0 at pci2 dev 4 function 0 "Intel EG20T SDIO" rev 0x01: apic 0 int 18
sdmmc0 at sdhc0
sdhc1 at pci2 dev 4 function 1 "Intel EG20T SDIO" rev 0x01: apic 0 int 18
sdmmc1 at sdhc1
ahci0 at pci2 dev 6 function 0 "Intel EG20T AHCI" rev 0x01: msi, AHCI 1.1
ahci0: port 0: 3.0Gb/s
scsibus1 at ahci0: 32 targets
sd0 at scsibus1 targ 0 lun 0: <ATA, Crucial_CT240M50, MU05> SCSI3 0/direct
fixed naa.500a07510c2506c9
sd0: 228936MB, 512 bytes/sector, 468862128 sectors, thin
ohci3 at pci2 dev 8 function 0 "Intel EG20T USB" rev 0x01: apic 0 int 16,
version 1.0, legacy support
ohci4 at pci2 dev 8 function 1 "Intel EG20T USB" rev 0x01: apic 0 int 16,
version 1.0, legacy support
ohci5 at pci2 dev 8 function 2 "Intel EG20T USB" rev 0x01: apic 0 int 16,
version 1.0, legacy support
ehci1 at pci2 dev 8 function 3 "Intel EG20T USB" rev 0x01: apic 0 int 16
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
"Intel EG20T DMA" rev 0x00 at pci2 dev 10 function 0 not configured
puc0 at pci2 dev 10 function 1 "Intel EG20T Serial" rev 0x00: ports: 1 com
com4 at puc0 port 0 apic 0 int 19: ti16750, 64 byte fifo
puc1 at pci2 dev 10 function 2 "Intel EG20T Serial" rev 0x00: ports: 1 com
com5 at puc1 port 0 apic 0 int 19: ti16750, 64 byte fifo
puc2 at pci2 dev 10 function 3 "Intel EG20T Serial" rev 0x00: ports: 1 com
com6 at puc2 port 0 apic 0 int 19: ti16750, 64 byte fifo
puc3 at pci2 dev 10 function 4 "Intel EG20T Serial" rev 0x00: ports: 1 com
com7 at puc3 port 0 apic 0 int 19: ti16750, 64 byte fifo
"Intel EG20T DMA" rev 0x00 at pci2 dev 12 function 0 not configured
"Intel EG20T SPI" rev 0x00 at pci2 dev 12 function 1 not configured
"Intel EG20T I2C" rev 0x00 at pci2 dev 12 function 2 not configured
"Intel EG20T CAN" rev 0x00 at pci2 dev 12 function 3 not configured
"Intel EG20T 1588" rev 0x01 at pci2 dev 12 function 4 not configured
usb2 at ohci0: USB revision 1.0
uhub2 at usb2 "Intel OHCI root hub" rev 1.00/1.00 addr 1
usb3 at ohci1: USB revision 1.0
uhub3 at usb3 "Intel OHCI root hub" rev 1.00/1.00 addr 1
usb4 at ohci2: USB revision 1.0
uhub4 at usb4 "Intel OHCI root hub" rev 1.00/1.00 addr 1
usb5 at ohci3: USB revision 1.0
uhub5 at usb5 "Intel OHCI root hub" rev 1.00/1.00 addr 1
usb6 at ohci4: USB revision 1.0
uhub6 at usb6 "Intel OHCI root hub" rev 1.00/1.00 addr 1
usb7 at ohci5: USB revision 1.0
uhub7 at usb7 "Intel OHCI root hub" rev 1.00/1.00 addr 1
ppb2 at pci0 dev 24 function 0 "Intel E600 PCIE" rev 0x00
pci3 at ppb2 bus 3
ppb3 at pci3 dev 0 function 0 "IDT 89HPES4T4" rev 0x0e
pci4 at ppb3 bus 4
ppb4 at pci4 dev 2 function 0 "IDT 89HPES4T4" rev 0x0e
pci5 at ppb4 bus 5
em0 at pci5 dev 0 function 0 "Intel 82574L" rev 0x00: msi, address
00:00:24:cf:08:c8
ppb5 at pci4 dev 3 function 0 "IDT 89HPES4T4" rev 0x0e
pci6 at ppb5 bus 6
em1 at pci6 dev 0 function 0 "Intel 82574L" rev 0x00: msi, address
00:00:24:cf:08:c9
ppb6 at pci4 dev 4 function 0 "IDT 89HPES4T4" rev 0x0e
pci7 at ppb6 bus 7
athn0 at pci7 dev 0 function 0 "Atheros AR9281" rev 0x01: apic 0 int 17
athn0: AR9280 rev 2 (2T2R), ROM rev 16, address 00:80:48:76:43:55
ppb7 at pci0 dev 25 function 0 "Intel E600 PCIE" rev 0x00
pci8 at ppb7 bus 8
ppb8 at pci8 dev 0 function 0 "IDT 89HPES4T4" rev 0x0e
pci9 at ppb8 bus 9
ppb9 at pci9 dev 2 function 0 "IDT 89HPES4T4" rev 0x0e
pci10 at ppb9 bus 10
em2 at pci10 dev 0 function 0 "Intel 82574L" rev 0x00: msi, address
00:00:24:cf:08:ca
ppb10 at pci9 dev 3 function 0 "IDT 89HPES4T4" rev 0x0e
pci11 at ppb10 bus 11
em3 at pci11 dev 0 function 0 "Intel 82574L" rev 0x00: msi, address
00:00:24:cf:08:cb
ppb11 at pci9 dev 4 function 0 "IDT 89HPES4T4" rev 0x0e
pci12 at ppb11 bus 12
ppb12 at pci0 dev 26 function 0 "Intel E600 PCIE" rev 0x00
pci13 at ppb12 bus 13
tcpcib0 at pci0 dev 31 function 0 "Intel E600 LPC" rev 0x00: 14318179 Hz
timer, watchdog
isa0 at tcpcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ti16750, 64 byte fifo
com0: console
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
skgpio0 at isa0 port 0x680/32
gpio0 at skgpio0: 16 pins
gpio1 at skgpio0: 2 pins
vscsi0 at root
scsibus2 at vscsi0: 256 targets
softraid0 at root
scsibus3 at softraid0: 256 targets
root on sd0a (2e8186959cf355bb.a) swap on sd0b dump on sd0b