TCP problems
Larry Maloney
larry.maloney at hackerdojo.com
Mon May 9 19:33:43 UTC 2016
Can you do a sysctl dump for each NIC to see their settings?
/Larry
Sent from my iPhone
> On May 9, 2016, at 11:49 AM, Dieter BSD <dieterbsd at gmail.com> wrote:
>
> Larry suggests:
>> Have you tried bumping the MTU on the interfaces to JUMBO frames?
>> 9000 or whatever max is?
>
> Easy enough to try, but 2 of the 4 max out at 1500. I suppose I
> could rewire the networks to get the 2 that allow 9000 on the
> same wire. But packet size seems unlikely to have anything to do
> with bind failing. And MTU=1500 is really supposed to work.
>
> I set ue0 to *smaller* mtu (500, 250, 100) and still got data corruption,
> along with
> rcp: lost connection
> Data connection: Operation timed out. (ftp)
>
> More on ue0's MTU below.
>
> Mark suggests:
>> Sounds like you may have fired the nic on the G box
>
> Which is why I tried both networks. Seems unlikely that both
> re0 *and* ue0 would fail with the same symptoms. Seems unlikely
> that bad nics would have anything to do with bind failing?
>
> Thank you both for your suggestions.
> -------------------
> re0:
>
> New problem. One network got some strange ping times for awhile:
>
> 64 bytes from machine_G_re0: icmp_seq=2 ttl=64 time=0.355 ms
> 64 bytes from machine_G_re0: icmp_seq=3 ttl=64 time=2001.209 ms
> 64 bytes from machine_G_re0: icmp_seq=4 ttl=64 time=2001.219 ms
> 64 bytes from machine_G_re0: icmp_seq=5 ttl=64 time=1000.728 ms
> 64 bytes from machine_G_re0: icmp_seq=6 ttl=64 time=0.229 ms
> 64 bytes from machine_G_re0: icmp_seq=7 ttl=64 time=2001.091 ms
> 64 bytes from machine_G_re0: icmp_seq=8 ttl=64 time=2001.129 ms
> 64 bytes from machine_G_re0: icmp_seq=9 ttl=64 time=1000.643 ms
> 64 bytes from machine_G_re0: icmp_seq=10 ttl=64 time=0.149 ms
> 64 bytes from machine_G_re0: icmp_seq=11 ttl=64 time=2001.207 ms
> 64 bytes from machine_G_re0: icmp_seq=12 ttl=64 time=2001.211 ms
> 64 bytes from machine_G_re0: icmp_seq=13 ttl=64 time=1000.726 ms
>
> 64 bytes from machine_T_bge0: icmp_seq=0 ttl=64 time=423.415 ms
> 64 bytes from machine_T_bge0: icmp_seq=1 ttl=64 time=14491.793 ms
> 64 bytes from machine_T_bge0: icmp_seq=2 ttl=64 time=13490.387 ms
> 64 bytes from machine_T_bge0: icmp_seq=3 ttl=64 time=12489.373 ms
> 64 bytes from machine_T_bge0: icmp_seq=4 ttl=64 time=11488.635 ms
> 64 bytes from machine_T_bge0: icmp_seq=5 ttl=64 time=10487.481 ms
> 64 bytes from machine_T_bge0: icmp_seq=6 ttl=64 time=9486.493 ms
> 64 bytes from machine_T_bge0: icmp_seq=7 ttl=64 time=8485.567 ms
>
> Powered machine G down overnight and re0 mostly recovered.
> Still have the bind problem. Does bind have anything to do
> with the Ethernet hardware or device drivers? I'm guessing no.
>
> No clue as to why re0 was causing data corruption, or why the
> data corruption went away (that problem went away before the power down
> so it isn't that). Also no clue about what caused the long ping times,
> which went away after the power down.
>
> -------------------
> ue0:
>
> Noticed that netstat was reporting input errors for ue0.
> And ue0 input was where the data corruption was happening.
> Sent data from machine A with 10Mbps Ethernet. Netstat
> did not report any input errors on ue0 and there was no data
> corruption.
>
> So ue0 can handle gigabit data rate, but gets input errors if
> packets arrive too frequently.
>
> # ifconfig ue0 media 100baseTX-FDX
> fixed the input error problem and the data corruption problem,
> at the expense of making it even slower.
>
> Max data rate seen (before lowering to 100Mbps) was about 35 MB/s
> which is said to be the effective rate of USB2.
>
> usbconfig says:
> ugen0.3: <AX88179 ASIX Elec. Corp.> at usbus0, cfg=0 md=HOST spd=SUPER
> (5.0Gbps) pwr=ON (124mA)
>
> so I guess it really is running at USB3 speed.
>
> The chip performs a lot better for tweaktown:
> http://www.tweaktown.com/reviews/7243/vantec-cb-u300gna-usb-3-gigabit-network-adapter-review/index.html
> (Vantec CB-U300GNA with the same Asix AX88179 chip)
> "full duplex gigabit with 952 Mbps consistently across the chart"
>
> Asix AX88179 chip:
> http://www.asix.com.tw/products.php?op=pItemdetail&PItemID=131;71;112
> "Supports Jumbo frame up to 4KB"
>
> But ifconfig rejects any value > 1500:
>
> # ifconfig ue0 mtu 4000
> ifconfig: ioctl (set mtu): Invalid argument
> # ifconfig ue0 mtu 1501
> ifconfig: ioctl (set mtu): Invalid argument
>
> A quick look at the driver code didn't find a MTU limit. (But did in other
> Ethernet drivers.) Looks to me like axge(4) doesn't support a large MTU.
>
> IIRC, one should set ifconfig -rxcsum -txcsum to get maximum data
> integrity (at the expense of using more cpu). If the cpu were doing
> the checksums it should catch and correct the data corruption I'm
> getting since the corruption appears to be happening inside the
> Asix AX88179 chip. But:
>
> # ifconfig ue0 -rxcsum
> results in no Ethernet traffic
> # ifconfig ue0 -txcsum
> seems to work ok. (including no data corruption)
>
> Why am I not getting any Ethernet traffic with -rxcsum? I can see that
> some controllers might not have the hardware to support rxcsum, but it
> seems to me that -rxcsum and -txcsum should always work?
>
> # ifconfig re0 -rxcsum -txcsum
> seems to work ok. (including no data corruption)
>
> Is Asix AX88179 still the only USB to gigabit Ethernet chip?
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
More information about the freebsd-hackers
mailing list