icmp packets on em larger than 1472 [SEC=UNCLASSIFIED]
Kirill Yelizarov
ykirill at yahoo.com
Thu Nov 11 20:23:19 UTC 2010
--- On Thu, 11/11/10, Mike Tancsa <mike at sentex.net> wrote:
> From: Mike Tancsa <mike at sentex.net>
> Subject: Re: icmp packets on em larger than 1472 [SEC=UNCLASSIFIED]
> To: freebsd-stable at freebsd.org
> Date: Thursday, November 11, 2010, 10:01 PM
> On 11/11/2010 12:26 AM, Kevin Oberman
> wrote:
> >> Date: Thu, 11 Nov 2010 13:01:26 +0800
> >> From: "Wilkinson, Alex" <alex.wilkinson at dsto.defence.gov.au>
> >> Sender: owner-freebsd-stable at freebsd.org
> >>
> >>
> >> 0n Wed, Nov 10, 2010 at
> 04:21:12AM -0800, Kirill Yelizarov wrote:
> >>
> >> >All my em cards
> running 8.1 stable don't reply to icmp echo requests packets
> larger than 1472 bytes.
> >> >
> >> >On stable 7.2 the same
> hardware works as expected:
> >> ># ping -s 1500
> 192.168.64.99
> >> >PING 192.168.64.99
> (192.168.64.99): 1500 data bytes
> >> >1508 bytes from
> 192.168.64.99: icmp_seq=0 ttl=63 time=1.249 ms
> >> >1508 bytes from
> 192.168.64.99: icmp_seq=1 ttl=63 time=1.158 ms
> >> >
> >> >Here is the dump on em
> interface
> >> >15:06:31.452043 IP
> 192.168.66.65 > *****: ICMP echo request, id 28729, seq
> 5, length 1480
> >> >15:06:31.452047 IP
> 192.168.66.65 > ****: icmp
> >> >15:06:31.452069 IP
> **** > 192.168.66.65: ICMP echo reply, id 28729, seq 5,
> length 1480
> >> >15:06:31.452071 IP ***
> > 192.168.66.65: icmp
> >> >
> >> >Same ping from same
> source (it's a 8.1 stable with fxp interface) to em card
> running 8.1 stable
> >> >#pciconf -lv
> >>
> >em0 at pci0:3:4:0:
> class=0x020000 card=0x10798086 chip=0x10798086 rev=0x03
> hdr=0x00
> >> >
> vendor = 'Intel Corporation'
> >> >
> device = 'Dual Port Gigabit Ethernet
> Controller (82546EB)'
> >> >
> class = network
> >> >
> subclass = ethernet
> >> >
> >> ># ping -s 1472
> 192.168.64.200
> >> >PING 192.168.64.200
> (192.168.64.200): 1472 data bytes
> >> >1480 bytes from
> 192.168.64.200: icmp_seq=0 ttl=63 time=0.848 ms
> >> >^C
> >> >
> >> ># ping -s 1473
> 192.168.64.200
> >> >PING 192.168.64.200
> (192.168.64.200): 1473 data bytes
> >> >^C
> >> >--- 192.168.64.200
> ping statistics ---
> >> >4 packets transmitted,
> 0 packets received, 100.0% packet loss
> >>
> >> works fine for me:
> >>
> >> FreeBSD 8.1-STABLE #0 r213395
> >>
> >> em0 at pci0:0:25:0:class=0x020000 card=0x3035103c
> chip=0x10de8086 rev=0x02 hdr=0x00
> >> vendor
> = 'Intel Corporation'
> >> device
> = 'Intel Gigabit network connection
> (82567LM-3 )'
> >> class
> = network
> >>
> subclass = ethernet
> >>
> >> #ping -s 1473 host
> >> PING host(192.168.1.1): 1473 data bytes
> >> 1481 bytes from 192.168.1.1: icmp_seq=0 ttl=253
> time=31.506 ms
> >> 1481 bytes from 192.168.1.1: icmp_seq=1 ttl=253
> time=31.493 ms
> >> 1481 bytes from 192.168.1.1: icmp_seq=2 ttl=253
> time=31.550 ms
> >> ^C
> >
> > The reason the '-s 1500' worked was that the packets
> were fragmented. If
> > I add the '-D' option, '-s 1473' fails on v7 and v8.
> Are the V8 systems
> > where you see if failing without the '-D' on the same
> network segment?
> > If not, it is likely that an intervening device is
> refusing to fragment
> > the packet. (Some routers deliberately don't fragment
> ICMP Echos Request
> > packets.)
>
>
> I am not sure I follow. If you do a
> ping -s 1473 -D
> on an interface that has the default MTU of 1500, it wont
> work, as the
> entire packet is going to be 1501 (note the data bytes)
>
> eg.
> # ping -q -s 1472 -c 1 192.168.43.219
> PING 192.168.43.219 (192.168.43.219): 1472 data bytes
>
> --- 192.168.43.219 ping statistics ---
> 1 packets transmitted, 1 packets received, 0.0% packet
> loss
> round-trip min/avg/max/stddev = 1.714/1.714/1.714/0.000 ms
> on 192.168.43.219, I see
>
> and on .43.219, I see
>
> 0(ich10)# tcpdump -vvvni em2 icmp
> tcpdump: listening on em2, link-type EN10MB (Ethernet),
> capture size 96
> bytes
> 13:49:17.564482 IP (tos 0x0, ttl 63, id 53656, offset 0,
> flags [none],
> proto ICMP (1), length 1500)
> 192.168.42.11 > 192.168.43.219: ICMP echo
> request, id 23315, seq 0,
> length 1480
> 13:49:17.564499 IP (tos 0x0, ttl 64, id 14346, offset 0,
> flags [none],
> proto ICMP (1), length 1500)
> 192.168.43.219 > 192.168.42.11: ICMP echo
> reply, id 23315, seq 0,
> length 1480
>
>
> Note the length is 1500 of the packet.
>
> That being said, if its failing on the em nic where you
> dont specify the
> -D flag on the ping, then there is a bug somewhere.
> On certain em nics,
> I found doing
> ifconfig em0 -rxcsum
> ifconfig em0 -txcsum
> ifconfig em0 -tso
>
> works around a number of bugs
>
> ---Mike
>
Yes, i know it. This was the first thing i tried. Sorry, i didn't mention it.
Kirill
>
>
> _______________________________________________
> freebsd-stable at freebsd.org
> mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>
More information about the freebsd-stable
mailing list