Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Nov 2010 20:52:26 -0800
From:      "Kevin Oberman" <oberman@es.net>
To:        Kirill Yelizarov <ykirill@yahoo.com>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: icmp packets on em larger than 1472 
Message-ID:  <20101111045226.DCA681CC0F@ptavv.es.net>
In-Reply-To: Your message of "Wed, 10 Nov 2010 04:21:12 PST." <889823.70463.qm@web120506.mail.ne1.yahoo.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> Date: Wed, 10 Nov 2010 04:21:12 -0800 (PST)
> From: Kirill Yelizarov <ykirill@yahoo.com>
> Sender: owner-freebsd-stable@freebsd.org
> 
> Hi,
> 
> 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@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
> 
> And here is it's dump on em card
> 5:11:15.191496 IP 192.168.66.65 > *****: ICMP echo request, id 33593, seq 0, length 1480
> 15:11:15.191534 IP 192.168.66.65 > *****: icmp
> 15:11:16.192119 IP 192.168.66.65 > *****: ICMP echo request, id 33593, seq 1, length 1480
> 15:11:16.192156 IP 192.168.66.65 > ******: icmp
> 
> igb cards on 8.1 stable are not affected

I'm unsure why it ever worked. Was the interface MTU set to 1500
(default) under V7? 

Most ping programs (including FreeBSD) send the specified number of DATA
bytes. Add the ICMP header (8 bytes) and the IP header (20 bytes) to
1472 and you get 1500, the largest packet that should work. It even
gives you a hint as, for no reason I have never understood, the program
includes the ICMP header is the displayed packet size (1480/1508).

Also, the IP MTU of 1500 does not include the Ethernet framing which
includes 12 bytes of address and two bytes of ethertype or the CRC.

If the igb is allowing over 1500 bytes of IP packet through, assuming
the MTU has not been increased for the standard 1500, something is
clearly broken. 1472 is the right answer and 1500 (or 1473) is not.
-- 
R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: oberman@es.net			Phone: +1 510 486-8634
Key fingerprint:059B 2DDF 031C 9BA3 14A4  EADA 927D EBB3 987B 3751



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101111045226.DCA681CC0F>