dummynet damages ICMPv6 packets

2011-11-07 Thread Przemyslaw Frasunek
Hello,

we are experiencing interesing behaviour of dummynet enabled on IPv6 interfaces.
When the following rules are added:

add pipe 24 ip from any to any in recv vlan1
add pipe 25 ip from any to any out xmit vlan1

all ICMPv6 packets passing on vlan1 are being damaged:

10:55:53.180801 IP6 fe80::215:17ff:feae:4d99 > ff02::1: ip-proto-64 16
0x:  6000  0010 403a fe80     `.@:
0x0010:  0215 17ff feae 4d99 ff02     ..M.
0x0020:     0001 8000 2dc9 31f2 002e  ..-.1...
0x0030:  4eb7 ab29 0002 c207  N..)

Please note invalid protocol shown by tcpdump and shifted bytes at offset 7 and
8 (it reads 0x403a but should be 0x3a40).

After changing dummynet rule to:

add pipe 24 ip4 from any to any in recv vlan1
add pipe 25 ip4 from any to any out xmit vlan1

packets are no longer malformed:

11:01:49.934348 IP6 fe80::215:17ff:feae:4d99 > ff02::1: ICMP6, echo request, seq
0, length 16
0x:  6000  0010 3a40 fe80     `.:@
0x0010:  0215 17ff feae 4d99 ff02     ..M.
0x0020:     0001 8000 ab9a 3341   3A..
0x0030:  4eb7 ac8d 000e 41a5  N.A.

The above problem affects 8.2-STABLE compiled on 3rd May 2011.
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Current problem reports assigned to freebsd-net@FreeBSD.org

2011-11-07 Thread FreeBSD bugmaster
Note: to view an individual PR, use:
  http://www.freebsd.org/cgi/query-pr.cgi?pr=(number).

The following is a listing of current problems submitted by FreeBSD users.
These represent problem reports covering all versions including
experimental development code and obsolete releases.


S Tracker  Resp.  Description

o kern/162201  net[ip] [patch] multicast forwarding cache hash always al
o kern/162153  net[em] intel em driver 7.2.4 don't compile
o kern/162110  net[igb] [panic] RELENG_9 panics on boot in IGB driver - 
o kern/162028  net[ixgbe] [patch] misplaced #endif in ixgbe.c
o kern/161908  net[netgraph] [patch] ng_vlan update for QinQ support
o kern/161899  net[route] ntpd(8): Repeating RTM_MISS packets causing hi
o kern/161381  net[re] RTL8169SC - re0: PHY write failed
o kern/161277  net[em] [patch] BMC cannot receive IPMI traffic after loa
o kern/160873  net[igb] igb(4) from HEAD fails to build on 7-STABLE
o kern/160750  netIntel PRO/1000 connection breaks under load until rebo
o kern/160693  net[gif] [em] Multicast packet are not passed from GIF0 t
o kern/160420  net[msk] phy write timeout on HP 5310m
o kern/160293  net[ieee80211] ppanic] kernel panic during network setup 
o kern/160206  net[gif] gifX stops working after a while (IPv6 tunnel)
o kern/159817  net[udp] write UDPv4: No buffer space available (code=55)
o kern/159795  net[tcp] excessive duplicate ACKs and TCP session freezes
o kern/159629  net[ipsec] [panic] kernel panic with IPsec in transport m
o kern/159621  net[tcp] [panic] panic: soabort: so_count
o kern/159603  net[netinet] [patch] in_ifscrubprefix() - network route c
o kern/159601  net[netinet] [patch] in_scrubprefix() - loopback route re
o kern/159294  net[em] em watchdog timeouts
o kern/159203  net[wpi] Intel 3945ABG Wireless LAN not support IBSS
o kern/158930  net[bpf] BPF element leak in ifp->bpf_if->bif_dlist
o kern/158726  net[ip6] [patch] ICMPv6 Router Announcement flooding limi
o kern/158694  net[ix] [lagg] ix0 is not working within lagg(4)
o kern/158665  net[ip6] [panic] kernel pagefault in in6_setscope()
o kern/158635  net[em] TSO breaks BPF packet captures with em driver
f kern/157802  net[dummynet] [panic] kernel panic in dummynet
o kern/157785  netamd64 + jail + ipfw + natd = very slow outbound traffi
o kern/157429  net[re] Realtek RTL8169 doesn't work with re(4)
o kern/157418  net[em] em driver lockup during boot on Supermicro X9SCM-
o kern/157410  net[ip6] IPv6 Router Advertisements Cause Excessive CPU U
o kern/157287  net[re] [panic] INVARIANTS panic (Memory modified after f
o kern/157209  net[ip6] [patch] locking error in rip6_input() (sys/netin
o kern/157200  net[network.subr] [patch] stf(4) can not communicate betw
o kern/157182  net[lagg] lagg interface not working together with epair 
o kern/156877  net[dummynet] [panic] dummynet move_pkt() null ptr derefe
o kern/156667  net[em] em0 fails to init on CURRENT after March 17
o kern/156408  net[vlan] Routing failure when using VLANs vs. Physical e
o kern/156328  net[icmp]: host can ping other subnet but no have IP from
o kern/156317  net[ip6] Wrong order of IPv6 NS DAD/MLD Report
o kern/156283  net[ip6] [patch] nd6_ns_input - rtalloc_mpath does not re
o kern/156279  net[if_bridge][divert][ipfw] unable to correctly re-injec
o kern/156226  net[lagg]: failover does not announce the failover to swi
o kern/156030  net[ip6] [panic] Crash in nd6_dad_start() due to null ptr
o kern/155772  netifconfig(8): ioctl (SIOCAIFADDR): File exists on direc
o kern/155680  net[multicast] problems with multicast
s kern/155642  net[request] Add driver for Realtek RTL8191SE/RTL8192SE W
o kern/155604  net[flowtable] Flowtable excessively caches dest MAC addr
o kern/155597  net[panic] Kernel panics with "sbdrop" message
o kern/155420  net[vlan] adding vlan break existent vlan
o kern/155177  net[route] [panic] Panic when inject routes in kernel
o kern/155030  net[igb] igb(4) DEVICE_POLLING does not work with carp(4)
o kern/155010  net[msk] ntfs-3g via iscsi using msk driver cause kernel 
o kern/155004  net[bce] [panic] kernel panic in bce0 driver
o kern/154943  net[gif] ifconfig gifX create on existing gifX clears IP
s kern/154851  net[request]: Port brcm80211 driver from Linux to FreeBSD
o kern/154850  net[netgraph] [patch] ng_ether fails to name nodes when t
o kern/154679  net[em] Fatal trap 12: "em1 taskq" only at startup (8.1-R
o kern/154600  net[tcp] [panic] Random kernel panics o

Re[2]: kern/155585: [tcp] [panic] tcp_output tcp_mtudisc loop until kernel panic

2011-11-07 Thread Andrey Smagin
Hi. I updated system to r227141:227142M and tried patch. 6 hours uptime right 
now. Bug looks fixed.


02 ноября 2011, 21:01 от Andrey Zonov :
> The following reply was made to PR kern/155585; it has been noted by GNATS.
> 
> From: Andrey Zonov 
> To: bug-follo...@freebsd.org, samsp...@mail.ru
> Cc:
> Subject: Re: kern/155585: [tcp] [panic] tcp_output tcp_mtudisc loop until
>  kernel panic
> Date: Wed, 02 Nov 2011 20:54:15 +0400
> 
>  This is a multi-part message in MIME format.
>  --040501090905060606010708
>  Content-Type: text/plain; charset=UTF-8; format=flowed
>  Content-Transfer-Encoding: 7bit
> 
>  Hi Andrey,
> 
>  Please try attached patch.
> 
>  I think the same problem was resolved here [1].
> 
>  [1] http://svnweb.freebsd.org/base?view=revision&revision=178029
> 
>  --
>  Andrey Zonov
> 
>  --040501090905060606010708
>  Content-Type: text/plain;
>   name="patch-tcp_output.c.txt"
>  Content-Transfer-Encoding: base64
>  Content-Disposition: attachment;
>   filename="patch-tcp_output.c.txt"
> 
>  SW5kZXg6IHN5cy9uZXRpbmV0L3RjcF9vdXRwdXQuYwo9PT09PT09PT09PT09PT09PT09PT09
>  PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMv
>  bmV0aW5ldC90Y3Bfb3V0cHV0LmMJKHJldmlzaW9uIDIyNzAyMCkKKysrIHN5cy9uZXRpbmV0
>  L3RjcF9vdXRwdXQuYwkod29ya2luZyBjb3B5KQpAQCAtMTc3LDggKzE3Nyw5IEBACiAJaW50
>  IGlkbGUsIHNlbmRhbG90OwogCWludCBzYWNrX3J4bWl0LCBzYWNrX2J5dGVzX3J4bXQ7CiAJ
>  c3RydWN0IHNhY2tob2xlICpwOwotCWludCB0c287CisJaW50IHRzbywgbXR1LCBvZmZlcjsK
>  IAlzdHJ1Y3QgdGNwb3B0IHRvOworCXN0cnVjdCByb3V0ZSBybzsKICNpZiAwCiAJaW50IG1h
>  eGJ1cnN0ID0gVENQX01BWEJVUlNUOwogI2VuZGlmCkBAIC0yMTgsNiArMjE5LDcgQEAKIAkJ
>  dGNwX3NhY2tfYWRqdXN0KHRwKTsKIAlzZW5kYWxvdCA9IDA7CiAJdHNvID0gMDsKKwltdHUg
>  PSAwOwogCW9mZiA9IHRwLT5zbmRfbnh0IC0gdHAtPnNuZF91bmE7CiAJc2VuZHdpbiA9IG1p
>  bih0cC0+c25kX3duZCwgdHAtPnNuZF9jd25kKTsKIApAQCAtMTIzMSw5ICsxMjMzLDE2IEBA
>  CiAJaWYgKFZfcGF0aF9tdHVfZGlzY292ZXJ5ICYmIHRwLT50X21heG9wZCA+IFZfdGNwX21p
>  bm1zcykKIAkJaXAtPmlwX29mZiB8PSBJUF9ERjsKIAotCWVycm9yID0gaXBfb3V0cHV0KG0s
>  IHRwLT50X2lucGNiLT5pbnBfb3B0aW9ucywgTlVMTCwKKwliemVybygmcm8sIHNpemVvZihy
>  bykpOworCisJZXJyb3IgPSBpcF9vdXRwdXQobSwgdHAtPnRfaW5wY2ItPmlucF9vcHRpb25z
>  LCAmcm8sCiAJICAgICgoc28tPnNvX29wdGlvbnMgJiBTT19ET05UUk9VVEUpID8gSVBfUk9V
>  VEVUT0lGIDogMCksIDAsCiAJICAgIHRwLT50X2lucGNiKTsKKworCWlmIChlcnJvciA9PSBF
>  TVNHU0laRSAmJiByby5yb19ydCkKKwkJbXR1ID0gcm8ucm9fcnQtPnJ0X3JteC5ybXhfbXR1
>  OworCWlmIChyby5yb19ydCkKKwkJUlRGUkVFKHJvLnJvX3J0KTsKICAgICB9CiAjZW5kaWYg
>  LyogSU5FVCAqLwogCWlmIChlcnJvcikgewpAQCAtMTI3OSwyMiArMTI4OCwyMCBAQAogCQkJ
>  LyoKIAkJCSAqIEZvciBzb21lIHJlYXNvbiB0aGUgaW50ZXJmYWNlIHdlIHVzZWQgaW5pdGlh
>  bGx5CiAJCQkgKiB0byBzZW5kIHNlZ21lbnRzIGNoYW5nZWQgdG8gYW5vdGhlciBvciBsb3dl
>  cmVkCi0JCQkgKiBpdHMgTVRVLgotCQkJICoKLQkJCSAqIHRjcF9tdHVkaXNjKCkgd2lsbCBm
>  aW5kIG91dCB0aGUgbmV3IE1UVSBhbmQgYXMKLQkJCSAqIGl0cyBsYXN0IGFjdGlvbiwgaW5p
>  dGlhdGUgcmV0cmFuc21pc3Npb24sIHNvIGl0Ci0JCQkgKiBpcyBpbXBvcnRhbnQgdG8gbm90
>  IGRvIHNvIGhlcmUuCi0JCQkgKgotCQkJICogSWYgVFNPIHdhcyBhY3RpdmUgd2UgZWl0aGVy
>  IGdvdCBhbiBpbnRlcmZhY2UKLQkJCSAqIHdpdGhvdXQgVFNPIGNhcGFiaWxpdHMgb3IgVFNP
>  IHdhcyB0dXJuZWQgb2ZmLgotCQkJICogRGlzYWJsZSBpdCBmb3IgdGhpcyBjb25uZWN0aW9u
>  IGFzIHRvbyBhbmQKLQkJCSAqIGltbWVkaWF0bHkgcmV0cnkgd2l0aCBNU1Mgc2l6ZWQgc2Vn
>  bWVudHMgZ2VuZXJhdGVkCi0JCQkgKiBieSB0aGlzIGZ1bmN0aW9uLgorCQkJICogaXRzIE1U
>  VS4gVXBkYXRlIHRfbWF4b3BkIGFuZCB0X21heHNlZyB0aHJvdWdoCisJCQkgKiB0Y3BfbXNz
>  X3VwZGF0ZSgpIGFuZCB0cnkgdG8gc2VuZCBkYXRhIGFnYWluLgogCQkJICovCi0JCQlpZiAo
>  dHNvKQotCQkJCXRwLT50X2ZsYWdzICY9IH5URl9UU087Ci0JCQl0Y3BfbXR1ZGlzYyh0cC0+
>  dF9pbnBjYiwgMCk7Ci0JCQlyZXR1cm4gKDApOworCQkJaWYgKG10dSAhPSAwKSB7CisJCQkJ
>  b2ZmZXIgPSBtdHUgLSBoZHJsZW47CisJCQkJaWYgKCh0cC0+dF9mbGFncyAmIFRGX1JDVkRf
>  VFNUTVApID09IFRGX1JDVkRfVFNUTVApCisJCQkJCW9mZmVyICs9IFRDUE9MRU5fVFNUQU1Q
>  X0FQUEE7CisJCQkJdGNwX21zc191cGRhdGUodHAsIG9mZmVyLCBOVUxMLCBOVUxMKTsKKwkJ
>  CQlnb3RvIGFnYWluOworCQkJfQorCQkJLyoKKwkJCSAqIFRoaXMgaXMgdGhlIGJlc3Qgd2Ug
>  Y2FuIGRvIGhlcmUuCisJCQkgKi8KKwkJCXJldHVybiAoZXJyb3IpOwogCQljYXNlIEVIT1NU
>  RE9XTjoKIAkJY2FzZSBFSE9TVFVOUkVBQ0g6CiAJCWNhc2UgRU5FVERPV046Cg==
>  --040501090905060606010708--
> ___
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"
> ___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Re[2]: PCI-E VT6130 NIC (if_vge) hang system with gigabit link

2011-11-07 Thread Andrey Smagin

02 ноября 2011, 06:07 от YongHyeon PYUN :
> If there is no cabling issue there, please try attached patch and
> let me know whether the patch makes any difference on you.
> 
> Thanks.
>

I tried patch. Now automatic connection can't established. 
In dmesg 
vge0: MII read timed out
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Possible MROUTING regression in 9.0 RC1

2011-11-07 Thread Pavel Timofeev
Hello! I have problems with ip_mroute (loaded as module) - kernel
multicast packet forwarder.
I have 2 disk: freebsd 8.2 release amd64 on first and freebsd 9.0 rc1 on second.
I use net/igmpproxy to watch IPTV on my home atom-based router.

On FreeBSD 8.2 it works good.

But when I try to use FreeBSD 9.0 RC-1 in same role (with same
configs, of cource) I have messages like:
Nov  7 16:16:46 timp igmpproxy[35495]: received packet from
172.16.254.1 shorter (28 bytes) than hdr+data length (20+28)
Nov  7 16:16:47 timp igmpproxy[35495]: received packet from
172.16.254.1 shorter (32 bytes) than hdr+data length (24+32)
Nov  7 16:17:28 timp igmpproxy[35495]: received packet from 10.85.13.5
shorter (28 bytes) than hdr+data length (20+28)
And IPTV doesn't work =(

Any ideas?
Do you need configs?
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Undocumented netgraph `cmd' flags ?

2011-11-07 Thread Gleb Smirnoff
On Mon, Oct 31, 2011 at 10:31:25PM -0700, Julian Elischer wrote:
J> NGM_HASREPLY is not used that I can see in the kernel. It may be a 
J> historical artifact or
J> maybe only used in the library as a hint.

I introduced NGM_HASREPLY. Yes, it is used in library, to make repliable
messages synchronous, as they were in RELENG_4. Applications like mpd
rely on that fact.

-- 
Totus tuus, Glebius.
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: mbuf leak in icmp6 code??

2011-11-07 Thread Gleb Smirnoff
  Kristof,

On Thu, Nov 03, 2011 at 01:07:52PM +0100, Kristof Provost wrote:
K> > For example:
K> > 
K> > icmp6_input calls icmp6_redirect_input and right after it returns it
K> > makes m=NULL. Inside icmp6_redirect_input there are checks for ifp and
K> > for the message being short (which probably don't get exercised that
K> > often (or at all?)) and for these checks simply return. Looks to be
K> > mbuf leak. In other icmp6 functions also we have similar instances.
K> 
K> The checks for m and ifp should probably be asserts, rather than just
K> returns. I think they are always supposed to be true.

I've checked all callers, and it looks like m and m->pkthdr.rcvif
can be safely asserted. I've committed that change.

-- 
Totus tuus, Glebius.
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Panic in the udp_input() under heavy load

2011-11-07 Thread Maxim Sobolev

Hi Gang,

We are seeing repeatable panics under high PPS load on our production 
systems. It happens when the traffic gets into the range or 200MBps and 
150-200K PPS. We have been managed to track it down to the following 
piece of code:


(gdb) l *udp_input+0x5d2
0x806f6202 is in udp_input (/usr/src/sys/netinet/udp_usrreq.c:628).
623 if (inp->inp_ip_minttl && inp->inp_ip_minttl > ip->ip_ttl) {
624 INP_RUNLOCK(inp);
625 goto badunlocked;
626 }
627 up = intoudpcb(inp);
628 if (up->u_tun_func == NULL) {
629 udp_append(inp, ip, m, iphlen + sizeof(struct 
udphdr), &udp_in);

630 } else {
631 /*
632  * Engage the tunneling protocol.

The faulty line appears to be 628, with up value is being NULL, attempt 
to deference it causes NULL pointer exception. I believe this particular 
piece of code has been introduced here:


---
Author: bz
Date: Thu Aug 13 15:16:30 2009
New Revision: 196192
URL: http://svn.freebsd.org/changeset/base/196192

Log:
  MFC: r192649

Implement UDP control block support.

Add udpcb support with own fields and flags for UDP instead
of further sticking things into in_pcb and flags fields.
Attach the udpcb to the inp_ppcb in the kernel.

Note: the udp tunneling parts are not (yet) existing in 7
and thus were not merged.

  Reviewed by:  rwatson
---

The screenshot of the panic message is attached. This is pretty recent 
8.2-STABLE. Any help is greatly appreciated. This particular bug has 
haunted us for at least 4-5 months now.


Thanks!

-Maxim
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Re: FreeBSD 9-RC1, openbgpd, tcp md5

2011-11-07 Thread Borja Marcos

On Nov 4, 2011, at 1:41 PM, Patrick Lamaiziere wrote:

> Isn't a new option to build openbgpd with tcp-md5 (and without pf_key)?
> 
> I've used TCP-MD5 signature for bgp between a FreeBSD 8.x and OpenBSD,
> using setkey(8) to enforce the signature between the peers. That
> worked (of course, then you shouldn't use tcp-md5 in openbgd).
> 
> setkey(8):
> add -4 peer1 peer2 tcp 0x1000 -A tcp-md5 "PASSWORD";
> add -4 peer2 peer1 tcp 0x1000 -A tcp-md5 "PASSWORD";

Ouch! Silly me, I assumed there was some setsockopt() option to set an MD5 for 
a TCP socket.

Thank you very much, working now both with both bird and openbgpd. :) Turns out 
you have to delete the md5 option from the openbgpd config file, but you need 
to put it (even with a bogus key) in the bird config file.




add 10.0.0.1 10.0.0.2 tcp 0x1000 -A tcp-md5 "mekmitasgoat";
add 10.0.1.1 10.0.1.2 tcp 0x1000 -A tcp-md5 "mekmitasgoat";
add 10.0.0.2 10.0.0.1 tcp 0x1000 -A tcp-md5 "mekmitasgoat";
add 10.0.1.2 10.0.1.1 tcp 0x1000 -A tcp-md5 "mekmitasgoat";





Borja.

___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Panic in the udp_input() under heavy load

2011-11-07 Thread Maxim Sobolev

Panic screenshot is here:

http://sobomax.sippysoft.com/ScreenShot859.png

-Maxim
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Intel 82574L interface wedging on em 7.1.9/7.2.3 when MSIX enabled

2011-11-07 Thread Jason Wolfe
On Mon, Oct 31, 2011 at 1:13 AM, Hooman Fazaeli wrote:

>
> Attached is a patch for if_em.c. It flushes interface queue when it is
> full
> and link is not active. Please note that when this happens, drops are
> increasing
> on interface and this will trigger your scripts as before. You need to
> change
> a little the scripts as follows:
>
>   check interface TX status
>   if (interface TX seems hung) {
> sleep 5
> check interface TX status
> if (interface TX seems hung) {
>  reset the interface.
> }
> }
>
> For MULTIQUEUE, it just disables the check for link status (which is not
> good).
> so pls. test in non-MULTIQUEUE mode.
>
> The patch also contains some minor fixups to compile on 7 plus
> a fix from r1.69 which addressed RX hang problem (the fix was
> later removed in r1.70). I included it for Emil to give it a
> try.
>
> Pls. let me know if you have any problems with patch.
>
>
Hooman,

Unfortunately  one of the server just had a wedge event a couple hours ago
with this patch.  To confirm your changes should cause a recovery within
the time I'm allowing, here is the current format:

check interface TX status
if (interface TX seems hung) {
sleep 3
check packets out
sleep 2
check packets out
if (packets not incrementing) {
reset the interface
}
}

I bounced em0 because dropped packets incremented 1749543 to 1749708 and
the interface is not incrementing packets out.

4:10AM up 6 days, 15:23, 0 users, load averages: 0.02, 0.12, 0.14

em0: flags=8843 metric 0 mtu 1500
options=219b
ether X
inet6 X%em0 prefixlen 64 scopeid 0x1
nd6 options=1
media: Ethernet autoselect (1000baseT )
status: active

em1: flags=8843 metric 0 mtu 1500
options=219b
ether X
inet6 X%em1 prefixlen 64 scopeid 0x2
nd6 options=3
media: Ethernet autoselect (1000baseT )
status: active

ipfw0: flags=8801 metric 0 mtu 65536

lo0: flags=8049 metric 0 mtu 16384
options=3
inet 127.0.0.1 netmask 0xff00
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet X.X.X.X netmask 0x
inet X.X.X.X netmask 0x
inet X.X.X.X netmask 0x
nd6 options=3

lagg0: flags=8843 metric 0 mtu 1500
options=219b
ether X
inet X.X.X.X netmask 0xff00 broadcast X.X.X.X
inet6 X%lagg0 prefixlen 64 scopeid 0x5
inet6 X prefixlen 64 autoconf
nd6 options=3
media: Ethernet autoselect
status: active
laggproto loadbalance
laggport: em0 flags=4
laggport: em1 flags=4

interrupt total rate
irq3: uart1 3810 0
cpu0: timer 1147568087 2000
irq256: em0:rx 0 59779710 104
irq257: em0:tx 0 2771888652 4831
irq258: em0:link 1 0
irq259: em1:rx 0 3736828886 6512
irq260: em1:tx 0 2790566376 4863
irq261: em1:link 27286 0
irq262: mps0 395687386 689
cpu1: timer 1147559894 2000
cpu2: timer 1147559901 2000
cpu3: timer 1147559902 2000
Total 14345029891 25001

13466/4144/17610 mbufs in use (current/cache/total)
2567/2635/5202/5853720 mbuf clusters in use (current/cache/total/max)
2567/633 mbuf+clusters out of packet secondary zone in use (current/cache)
6798/554/7352/2926859 4k (page size) jumbo clusters in use
(current/cache/total/max)
0/0/0/6400 9k jumbo clusters in use (current/cache/total/max)
0/0/0/3200 16k jumbo clusters in use (current/cache/total/max)
35692K/8522K/44214K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/0/0 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
0 requests for I/O initiated by sendfile
0 calls to protocol drain routines

Name Mtu Network Address Ipkts Ierrs Idrop Opkts Oerrs Coll Drop
em0 1500  00:25:90:2b:e5:75 60747643 0 0 11246408092 0 0 1750763
em0 1500 fe80:1::225:9 fe80:1::225:90ff: 0 - - 4 - - -
em1 1500  00:25:90:2b:e5:75 11237195776 123950 0 11344722383 0 0
545682
em1 1500 fe80:2::225:9 fe80:2::225:90ff: 0 - - 1 - - -
lagg0 1500  00:25:90:2b:e5:75 11297850142 0 0 22588666102 2296445 0
0
lagg0 1500 69.164.38.0/2 69.164.38.83 10189108030 - - 22592881776 - - -
lagg0 1500 fe80:5::225:9 fe80:5::225:90ff: 24 - - 28 - - -
lagg0 1500 2607:f4e8:310 2607:f4e8:310:12: 19578 - - 19591 - - -

kern.msgbuf:

Nov 7 04:10:06 cds1033 kernel: Interface is RUNNING and INACTIVE
Nov 7 04:10:06 cds1033 kernel: em0: hw tdh = 558, hw tdt = 558
Nov 7 04:10:06 cds1033 kernel: em0: hw rdh = 889, hw rdt = 888
Nov 7 04:10:06 cds1033 kernel: em0: Tx Queue Status = 0
Nov 7 04:10:06 cds1033 kernel: em0: TX descriptors avail = 1024
Nov 7 04:10:06 cds1033 kernel: em0: Tx Descriptors avail failure = 0
Nov 7 04:10:06 cds1033 kernel: em0: RX discarded packets = 0
Nov 7 04:10:06 cds1033 kernel: em0: RX Next to Check = 889
Nov 7 04:10:06 cds1033 kernel: em0: RX Next to Refresh = 888
Nov 7 04:10:06 cds1033 kernel: em0: Link state: active
Nov 7 04:10:06 cds1033 kernel: Interface is RUNNING and INACTIVE
Nov 

Re: Gigabit Ethernet performance with Realtek 8111E

2011-11-07 Thread YongHyeon PYUN
On Sun, Nov 06, 2011 at 03:40:54PM -0800, YongHyeon PYUN wrote:
> On Sat, Nov 05, 2011 at 12:53:23PM +0100, Michael La?? wrote:
> > Hi!
> > 
> > I've got a small NAS with Intel D525MW (Atom) board inside using FreeBSD
> > 9.0-RC1 as operating system. It has an onboard Realtek 8111E ethernet
> > adapter. I'm experiencing heavy performance problems when transfering
> > files from a specific PC in my network to that NAS. I did the following
> > tests by transfering large amount of data between the diferrent machines
> > (using dd and nc):
> > 
> > NAS -> Linux1:~ 400Mbit/s
> > NAS -> Linux2:~ 400Mbit/s
> > Linux1 -> NAS:heavy fluctuation, between 700Mbit/s and 0bit/s
> > Linux2 -> NAS:~ 400Mbit/s
> > Linux1 -> Linux2: ~ 400Mbit/s
> > Linux2 -> Linux1: ~ 400Mbit/s
> > 
> > As you can see everythink works fine except for transfering data from
> > Linux1 to that NAS box. The following graph shows the problem:
> > http://dl.dropbox.com/u/25455527/network-problems.png
> > 
> > While the transfer rate drops to zero the NAS also has a very bad ping
> > up to one second. Ping of Linux1 is perfectly fine during these outages.
> > 
> > I also had a quick look on the data stream with wireshark on Linux1 and
> > it shows a lot of TCP Dup ACK (up to 263 Dup ACKs created by NAS for one
> > frame).
> > 
> > What can be eliminated as a cause is:
> > - Switch (I tried connecting Linux1 and NAS directly)
> > - Cable (I changed that a few times)
> > - Harddisk I/O (I'm only writing from /dev/zero to /dev/null)
> > 
> > The sevirity of that problem varies from one minute to another but can
> > always be reproduced with a few tries.
> > 
> > When limiting either NAS or Linux1 to 100Mbit I'm getting a steady
> > transfer rate of about 90Mbit/s.
> 
> Some revisions of RealTek controller have FIFO overrun issue but
> I'm not sure whether you're seeing the issue.  Try enabling flow
> control and see whether that makes any difference. You can enable
> it by issuing 'ifconfig re0 media flow'.

This should be read as 'ifconfig re0 mediaopt flow'.

> 
> > When decreasing the MTU on NAS to 1200 the problem seems to disappear,
> > getting a transfer rate of about 160Mbit/s.
> > 
> > ifconfig re0:
> > > re0: flags=8843 metric 0 mtu 1500
> > >   
> > > options=388b
> > >   ether 38:60:77:3e:af:a5
> > >   inet 192.168.178.54 netmask 0xff00 broadcast 192.168.178.255
> > >   nd6 options=29
> > >   media: Ethernet autoselect (1000baseT )
> > >   status: active
> > 
> > pciconf -lv:
> > > re0@pci0:1:0:0:   class=0x02 card=0xd6258086 chip=0x816810ec rev=0x06 
> > > hdr=0x00
> > > vendor = 'Realtek Semiconductor Co., Ltd.'
> > > device = 'RTL8111/8168B PCI Express Gigabit Ethernet controller'
> > > class  = network
> > > subclass   = ethernet
> > 
> 
> Show me the dmesg output. RealTek uses the same device PCI ids so it's
> impossible to know which controller you have from the pciconf(8)
> output.
> 
> > Because Linux1 seems to be involved in that problem: It's running Linux
> > 3.0 and it has an "Atheros Communications AR8121/AR8113/AR8114" onboard.
> > 
> > Does anyone have an idea what could be the problem here? Decreasing the
> > MTU is some kind of solution but the performance is still not optimal
> > and a MTU of 1500 should be no problem.
> > 
> > Greetings,
> > Michael Laß
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Panic in the udp_input() under heavy load

2011-11-07 Thread Bjoern A. Zeeb

On Mon, 7 Nov 2011, Maxim Sobolev wrote:


Hi Gang,

We are seeing repeatable panics under high PPS load on our production 
systems. It happens when the traffic gets into the range or 200MBps and 
150-200K PPS. We have been managed to track it down to the following piece of 
code:


(gdb) l *udp_input+0x5d2
0x806f6202 is in udp_input (/usr/src/sys/netinet/udp_usrreq.c:628).
623 if (inp->inp_ip_minttl && inp->inp_ip_minttl > ip->ip_ttl) {
624 INP_RUNLOCK(inp);
625 goto badunlocked;
626 }
627 up = intoudpcb(inp);
628 if (up->u_tun_func == NULL) {
629 udp_append(inp, ip, m, iphlen + sizeof(struct 
udphdr), &udp_in);

630 } else {
631 /*
632  * Engage the tunneling protocol.

The faulty line appears to be 628, with up value is being NULL, attempt to 
deference it causes NULL pointer exception. I believe this particular piece 
of code has been introduced here:


Unlikely; the inp is properly locked there and the udp info attach
better still be valid there; your problem is most likely elsewhere;
try to see if you have other threads and see what they do at the same
time, etc.  You would need to race with udp_detach();  you also want
to make sure that the inp still looks sane from either ddb or a dump
and we are not talking about random memory corruption here.

/bz

--
Bjoern A. Zeeb You have to have visions!
 Stop bit received. Insert coin for new address family.
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: kern/162352: [patch] Enhancement: add SO_PROTO to socket.h

2011-11-07 Thread linimon
Old Synopsis: Enhancement:
New Synopsis: [patch] Enhancement: add SO_PROTO to socket.h

Responsible-Changed-From-To: freebsd-bugs->freebsd-net
Responsible-Changed-By: linimon
Responsible-Changed-When: Mon Nov 7 21:18:58 UTC 2011
Responsible-Changed-Why: 
reclassify.

http://www.freebsd.org/cgi/query-pr.cgi?pr=162352
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Multiqueue support for bpf

2011-11-07 Thread Takuya ASADA
Hi,

Probably my previous mail had been skipped or forgot replying, so I'd
like to try notice again.
# This is original post of this thread, if you don't remember what is
this: http://lists.freebsd.org/pipermail/freebsd-net/2011-August/029585.html

George said "I think we should try to integrate this work and then
tune it up more. in previous mail, then I want to merge this now.

Is there any additional work required to merge, or just fine?

2011/9/22 Takuya ASADA :
> Sorry for late replying,
>
>> One comment, one question.
>>
>> First, I think we should try to integrate this work and then tune it up 
>> more.  The API
>> is, I think, fine, and performance tuning takes a bit of work.
>
> Is there good way(I mean tools or something) to find the bottleneck?
>
>> Second, what are the parameters set on buffers for the drivers?  I.e. how 
>> many slots
>> do they have in their queues etc.?  If they defaults are too small, and 
>> often they are,
>> then that's going to hurt your performance.
>
> It does equals to number of descriptors per queue, right?
> If I'm correct, it's 2048 descriptors per queue by default, and I used
> default parameter when I perform benchmarks.
>
> It's on line 290 of
> http://p4db.freebsd.org/fileViewer.cgi?FSPC=//depot/projects/soc2011/mq_bpf/src/sys/dev/ixgbe/ixgbe.c&REV=2
>
> and line 105 of
> http://p4db.freebsd.org/fileViewer.cgi?FSPC=//depot/projects/soc2011/mq_bpf/src/sys/dev/ixgbe/ixgbe.h&REV=2
>
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Panic in the udp_input() under heavy load

2011-11-07 Thread Maxim Sobolev

On 11/7/2011 10:24 AM, Bjoern A. Zeeb wrote:

Unlikely; the inp is properly locked there and the udp info attach
better still be valid there; your problem is most likely elsewhere;
try to see if you have other threads and see what they do at the same
time, etc.  You would need to race with udp_detach();  you also want
to make sure that the inp still looks sane from either ddb or a dump
and we are not talking about random memory corruption here.


Well, as you can see from the trace it points pretty strongly to that 
piece of code. And as I said this panic is completely reproducible, 
we've seen it at least 5 times to date in exactly this location. 
Unfortunately the trace is rather long so we could not capture it in 
full before, until we've switched to the 80x50 mode.


If it was a memory corruption it would be just random fault, while here 
we have it failing in this point reliably.


Unfortunately the panic happens in the driver thread context (I 
believe), so the KDB/dump is not working. After panicing the machine 
just hangs there. Keyboard is not working and I need to do a hard reset.


Is there any other explanation that you can think of? Is it possible for 
some other portion of the code (i.e. network driver, DMA engine etc) to 
trash this structure by writing something off bound? Or something along 
the lines?


Thanks!

Regards,
--
Maksym Sobolyev
Sippy Software, Inc.
Internet Telephony (VoIP) Experts
Tel: +1-646-651-1110
Fax: +1-866-857-6942
Web: http://www.sippysoft.com
MSN: sa...@sippysoft.com
Skype: SippySoft
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Panic in the udp_input() under heavy load

2011-11-07 Thread Maxim Sobolev

On 11/7/2011 2:57 PM, Maxim Sobolev wrote:

On 11/7/2011 10:24 AM, Bjoern A. Zeeb wrote:

Unlikely; the inp is properly locked there and the udp info attach
better still be valid there; your problem is most likely elsewhere;
try to see if you have other threads and see what they do at the same
time, etc. You would need to race with udp_detach(); you also want
to make sure that the inp still looks sane from either ddb or a dump
and we are not talking about random memory corruption here.


Well, as you can see from the trace it points pretty strongly to that
piece of code. And as I said this panic is completely reproducible,
we've seen it at least 5 times to date in exactly this location.
Unfortunately the trace is rather long so we could not capture it in
full before, until we've switched to the 80x50 mode.

If it was a memory corruption it would be just random fault, while here
we have it failing in this point reliably.

Unfortunately the panic happens in the driver thread context (I
believe), so the KDB/dump is not working. After panicing the machine
just hangs there. Keyboard is not working and I need to do a hard reset.

Is there any other explanation that you can think of? Is it possible for
some other portion of the code (i.e. network driver, DMA engine etc) to
trash this structure by writing something off bound? Or something along
the lines?


OK, I've put the following catch to prove the case:

up = intoudpcb(inp);
if (up == NULL) {
printf("BZZT! Something is terribly wrong, up == NULL!\n");
INP_RUNLOCK(inp);
goto badunlocked;
}
if (up->u_tun_func == NULL) {

I am going to give it a spin on two busiest boxes and see if I can log 
anything.


Regards,
--
Maksym Sobolyev
Sippy Software, Inc.
Internet Telephony (VoIP) Experts
Tel: +1-646-651-1110
Fax: +1-866-857-6942
Web: http://www.sippysoft.com
MSN: sa...@sippysoft.com
Skype: SippySoft
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Panic in the udp_input() under heavy load

2011-11-07 Thread Bjoern A. Zeeb

On Mon, 7 Nov 2011, Maxim Sobolev wrote:


On 11/7/2011 2:57 PM, Maxim Sobolev wrote:

On 11/7/2011 10:24 AM, Bjoern A. Zeeb wrote:

Unlikely; the inp is properly locked there and the udp info attach
better still be valid there; your problem is most likely elsewhere;
try to see if you have other threads and see what they do at the same
time, etc. You would need to race with udp_detach(); you also want
to make sure that the inp still looks sane from either ddb or a dump
and we are not talking about random memory corruption here.


Well, as you can see from the trace it points pretty strongly to that
piece of code. And as I said this panic is completely reproducible,
we've seen it at least 5 times to date in exactly this location.
Unfortunately the trace is rather long so we could not capture it in
full before, until we've switched to the 80x50 mode.

If it was a memory corruption it would be just random fault, while here
we have it failing in this point reliably.

Unfortunately the panic happens in the driver thread context (I
believe), so the KDB/dump is not working. After panicing the machine
just hangs there. Keyboard is not working and I need to do a hard reset.

Is there any other explanation that you can think of? Is it possible for
some other portion of the code (i.e. network driver, DMA engine etc) to
trash this structure by writing something off bound? Or something along
the lines?


OK, I've put the following catch to prove the case:

   up = intoudpcb(inp);
   if (up == NULL) {
   printf("BZZT! Something is terribly wrong, up == NULL!\n");
   INP_RUNLOCK(inp);
   goto badunlocked;
   }
   if (up->u_tun_func == NULL) {

I am going to give it a spin on two busiest boxes and see if I can log 
anything.


Now if you are clever you'd also log the inp there as the above will
only prove the case that something is wrong but still not help us in
anything to figure out what.

/bz

--
Bjoern A. Zeeb You have to have visions!
 Stop bit received. Insert coin for new address family.
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Panic in the udp_input() under heavy load

2011-11-07 Thread Maxim Sobolev

On 11/7/2011 3:25 PM, Bjoern A. Zeeb wrote:

Now if you are clever you'd also log the inp there as the above will
only prove the case that something is wrong but still not help us in
anything to figure out what.


Good point, thank you Sir.

Would that be good enough?

printf("BZZT! Something is terribly wrong, up == NULL! inp = %p\n", inp);

Do you think of any other useful piece of information that I can log at 
this point?


-Maxim
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"


Re: Panic in the udp_input() under heavy load

2011-11-07 Thread Robert Watson


On Mon, 7 Nov 2011, Maxim Sobolev wrote:


On 11/7/2011 3:25 PM, Bjoern A. Zeeb wrote:
Now if you are clever you'd also log the inp there as the above will only 
prove the case that something is wrong but still not help us in anything to 
figure out what.


Good point, thank you Sir.

Would that be good enough?

printf("BZZT! Something is terribly wrong, up == NULL! inp = %p\n", inp);

Do you think of any other useful piece of information that I can log at this 
point?


Hi Maxim:

There was recently a commit to fix a race condition in 10-CURRENT which I 
think is not slated to be merged for 9.0.  You might check the commit logs 
there and see if that fixes the problems you have -- if so, we might want to 
reconsider the plan not to merge for 9.0.


(It relates to a race condition on closing sockets..)

Robert
___
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"