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

2012-02-20 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/165305  net[ip6] [request] Feature parity between IP_TOS and IPV6
o kern/165296  net[vlan] [patch] Fix EVL_APPLY_VLID, update EVL_APPLY_PR
o kern/165181  net[igb] igb freezes after about 2 weeks of uptime
o kern/165174  net[patch] [tap] allow tap(4) to keep its address on clos
o kern/165152  net[ip6] Does not work through the issue of ipv6 addresse
o kern/165032  net[mii] [patch] brgphy(4) is not used for BCM57780
o kern/164901  net[regression] [patch] [lagg] igb/lagg poor traffic dist
o kern/164569  net[msk] [hang] msk network driver cause freeze in FreeBS
o kern/164495  net[igb] connect double head igb to switch cause system t
o kern/164490  net[pfil] Incorrect IP checksum on pfil pass from ip_outp
o kern/164475  net[gre] gre misses RUNNING flag after a reboot
o kern/164400  net[ipsec] immediate crash after the start of ipsec proce
o kern/164265  net[netinet] [patch] tcp_lro_rx computes wrong checksum i
o kern/163903  net[igb] "igb0:tx(0)","bpf interface lock" v2.2.5 9-STABL
o kern/163481  netfreebsd do not add itself to ping route packet
o kern/162927  net[tun] Modem-PPP error ppp[1538]: tun0: Phase: Clearing
o kern/162926  net[ipfilter] Infinite loop in ipfilter with fragmented I
o kern/162558  net[dummynet] [panic] seldom dummynet panics
o kern/162509  net[re] [panic] Kernel panic may be related to if_re.c (r
o kern/162352  net[patch] Enhancement: add SO_PROTO to socket.h
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/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][i

Re: [urtw] Random wireless crash / kernel panic

2012-02-20 Thread Adam Twardowski
I do still have the kernel and the crash dump.  I'll try that fix tonight
to see how it goes.  Unfortunately, the kernel doesn't usually crash, more
likely the wifi stops working and I am forced to reboot the machine to get
it working again.

On Feb 20, 2012 2:56 AM, "Adrian Chadd"  wrote:
>
> Hi,
>
> Do you still have the kernel?
>
>
> On 19 February 2012 18:23, Adam Twardowski 
wrote:
> > Hello, I submitted a bug report the other day regarding a kernel panic
> > related to the urtw driver.  If anyone needs any additional
> > infromation, please let me know.
>
> It looks like there's no node associated with that particular TX.
>
> Change:
>
>if (m->m_flags & M_TXCB) {
>
>
> to
>
>if ((m->m_flags & M_TXCB) && (data->ni != NULL)) {
>
> .. that may fix the crash but it doesn't explain how an mbuf marked
> M_TXCB has no node..
>
>
>
> Adrian
___
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: [urtw] Random wireless crash / kernel panic

2012-02-20 Thread Bernhard Schmidt
On Monday 20 February 2012 18:03:45 Adam Twardowski wrote:
> I do still have the kernel and the crash dump.  I'll try that fix tonight
> to see how it goes.  Unfortunately, the kernel doesn't usually crash, more
> likely the wifi stops working and I am forced to reboot the machine to get
> it working again.

Building urtw(4) as module here helps a lot, kldunload/kldload is just so much 
faster than a reboot. :)

I have a bunch of asorted fixes [1] for urtw(4) which needs some further 
testing, though I still wasn't able to fix the issue which made me look into 
this in the first place.. As a test case I force a disconnection from the AP 
side a few times, which will eventually result in a device timeout and the 
requirement to reload the module. I believe that one of those might actually 
address the panic you're seeing, though, it doesn't fix the device timeout.

[1] http://techwires.net/~bschmidt/urtw/

-- 
Bernhard
___
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: Abstracting struct ifnet

2012-02-20 Thread Brooks Davis
On Thu, Feb 16, 2012 at 08:16:22PM -0800, Marcel Moolenaar wrote:
> All,
> 
> Juniper is in the final phases of creating a clean separation
> between FreeBSD and Junos, so as to make upgrades of FreeBSD
> easier. This also allows Juniper to track -current and be more
> active FreeBSD contributors.
> 
> To that end, we have a short-term and hopefully short-lived
> problem to solve, which is the ability to use FreeBSD's network
> drivers against the Junos network stack. As some may know, the
> Junos network stack has split up struct ifnet into a physical
> and logical component, called ifdev and iflogical.
> 
> We've tried a few approaches to bridge the gap between ifnet
> on the one hand and ifdev and iflogical on the other and found
> that abstracting ifnet and using accessor functions is the
> best way to allow us to use FreeBSD drivers with the Junos
> network stack, while retaining the ability to use them with
> the FreeBSD stack.
> 
> FreeBSD is also looking at breaking up ifnet and with that in
> mind, I was wondering if there would be any resistance to
> changing network drivers to use accessor functions or macros
> instead of direct pointer dereferences?
> 
> For example, do something like:
> 
> Index: if_fxp.c
> ===
> --- if_fxp.c  (revision 231178)
> +++ if_fxp.c  (working copy)
> @@ -823,13 +823,14 @@
>   }
>  
>   if_initname(ifp, device_get_name(dev), device_get_unit(dev));
> - ifp->if_init = fxp_init;
> - ifp->if_softc = sc;
> - ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
> - ifp->if_ioctl = fxp_ioctl;
> - ifp->if_start = fxp_start;
> + if_set_init(ifp, fxp_init);
> + if_set_softc(ifp, sc);
> + if_set_flags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST, 0);
> + if_set_ioctl(ifp, fxp_ioctl);
> + if_set_start(ifp, fxp_start);
>  
> - ifp->if_capabilities = ifp->if_capenable = 0;
> + if_set_capabilities(ifp, 0);
> + if_set_capenable(ifp, 0);
>  
>   /* Enable checksum offload/TSO for 82550 or better chips */
>   if (sc->flags & FXP_FLAG_EXT_RFA) {
> 
> Such a scheme, while initially touching a lot of driver,
> would make it easier to break up ifnet *and* also make it
> easier to hide ABI/API changes from driver vendors (esp.
> when the accessor functions are non-inlined functions and
> not macros or inlines). This is particularly useful for
> Juniper, where we have worked towards network stacks as
> (pre-)loadable modules so as to help with migration and
> validation.
> 
> Thoughts, feedback and suggestion are welcome,

The concept seems fine to me and I like that it might simplify future
API changes.  Have you verified that if_get_*() accessors don't add
significant overhead?

I agree with the concern raised by Luigi about intra-branch
compatability.  My prefered solution to that would be to MFC the adition
of the accessors pretty much instantly and to commit the changes to
individual drivers seperately to allow them to be merged as needed by
driver maintainers.

-- Brooks


pgpSv3ZgguMK4.pgp
Description: PGP signature


Re: Abstracting struct ifnet

2012-02-20 Thread Luigi Rizzo
On Mon, Feb 20, 2012 at 05:16:02PM -0600, Brooks Davis wrote:
> 
> The concept seems fine to me and I like that it might simplify future
> API changes.  Have you verified that if_get_*() accessors don't add
> significant overhead?

the vast majority of these fields are only accessed in the control path,
not on each packet, so there isn't really a performance issue. Besides
they can be trivially implemted as macros or inline functions.

cheers
luigi


___
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: Abstracting struct ifnet

2012-02-20 Thread Adrian Chadd
On 20 February 2012 16:15, Luigi Rizzo  wrote:

>> The concept seems fine to me and I like that it might simplify future
>> API changes.  Have you verified that if_get_*() accessors don't add
>> significant overhead?
>
> the vast majority of these fields are only accessed in the control path,
> not on each packet, so there isn't really a performance issue. Besides
> they can be trivially implemted as macros or inline functions.

I doubt Juniper need _binary_ level compatibility. So we could get
away with inline methods.

This sort of thing just makes source level compatibility a lot easier.


Adrian
___
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: Abstracting struct ifnet

2012-02-20 Thread Adrian Chadd
On 20 February 2012 18:21, Juli Mallett  wrote:
>
> It's not just about Juniper, though, it's about us, and how much this
> buys us.  Using inlines buys us some source compatibility and the
> ability to add some invariants, but is no different to macros in terms
> of KBI within a version of FreeBSD, or between versions.  We can't
> make ifnet opaque with inlines.  Adding a member to ifnet which is
> opaque[*] and which has the fields most likely to change in size,
> order, existence, etc., and leaving a few that are needed in the fast
> path and will be used by macros/inlines is probably where we should
> end up.
>
> *: Obviously ifnet should be a value member of the opaque type, and
> the ifnet should include a pointer to the opaque type, or something
> like that, since you can't make an opaque struct a value member, which
> is probably obvious, but I wanted to be clearish.

Is the target though _binary_ compatibility? Just having a blessed
method of doing accessor method things will buy more source
flexibility. The KBI can stay the same in the default case and IMHO
this kind of thing gives developers more power to do smart invariant
and debugging things.

Being able to say "inform me every time an interface flag changes"
would actually be kind of nice when debugging some of the issues i've
been facing with ath. I've been half tempted to do this -inside- the
ath driver, partially to restore the OS portability it once tried to
achieve.



Adrian
___
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: Abstracting struct ifnet

2012-02-20 Thread Juli Mallett
On Mon, Feb 20, 2012 at 18:34, Adrian Chadd  wrote:
> Is the target though _binary_ compatibility? Just having a blessed
> method of doing accessor method things will buy more source
> flexibility. The KBI can stay the same in the default case and IMHO
> this kind of thing gives developers more power to do smart invariant
> and debugging things.

KBI compatibility requires very little discipline and makes loadable
modules for network drivers much less hellish.  Inlines, macros and
full visibility of ifnet in -current may be useful, but unless there's
a performance reason for doing so, retaining KBI compatibility *and*
the ability to merge ifnet changes to -stable sounds pretty nice to
me.

> Being able to say "inform me every time an interface flag changes"
> would actually be kind of nice when debugging some of the issues i've
> been facing with ath. I've been half tempted to do this -inside- the
> ath driver, partially to restore the OS portability it once tried to
> achieve.

I think that it is rare that this is useful in debugging, and
something of a red herring.  Even invariants are almost a red herring:
really, we shouldn't be using these individual methods to tweak
structure fields, either, we should have a way of describing a network
driver more semantically, such that the invariants are richer and also
not as complicated, and also more comprehensive.

Source compatibility is the biggest win, but a little self-discipline
to win what measure of binary compatibility we can seems perfectly
sensible.

(And at some point, we could even replace ifnet with something that's
less of a strange grab bag assortment that's awkward to explain to new
driver writers, and keep both source and binary compatibility for a
reasonable period in doing so.  Unlikely to happen in the near term,
but wouldn't it be nice?
___
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: [urtw] Random wireless crash / kernel panic

2012-02-20 Thread Adam Twardowski
On Mon, Feb 20, 2012 at 12:32 PM, Bernhard Schmidt  wrote:
> On Monday 20 February 2012 18:03:45 Adam Twardowski wrote:
>> I do still have the kernel and the crash dump.  I'll try that fix tonight
>> to see how it goes.  Unfortunately, the kernel doesn't usually crash, more
>> likely the wifi stops working and I am forced to reboot the machine to get
>> it working again.
>
> Building urtw(4) as module here helps a lot, kldunload/kldload is just so 
> much faster than a reboot. :)
>
> I have a bunch of asorted fixes [1] for urtw(4) which needs some further 
> testing, though I still wasn't able to fix the issue which made me look into 
> this in the first place.. As a test case I force a disconnection from the AP 
> side a few times, which will eventually result in a device timeout and the 
> requirement to reload the module. I believe that one of those might actually 
> address the panic you're seeing, though, it doesn't fix the device timeout.
>
> [1] http://techwires.net/~bschmidt/urtw/
>
> --
> Bernhard

Bernhard,

I just applied your four patches and rebooted.  I also went with a
module like you suggested.  We will see how it goes.  I did not apply
Adrians change above, not sure if it was necessary.
___
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: Abstracting struct ifnet

2012-02-20 Thread Juli Mallett
On Mon, Feb 20, 2012 at 16:37, Adrian Chadd  wrote:
> On 20 February 2012 16:15, Luigi Rizzo  wrote:
>
>>> The concept seems fine to me and I like that it might simplify future
>>> API changes.  Have you verified that if_get_*() accessors don't add
>>> significant overhead?
>>
>> the vast majority of these fields are only accessed in the control path,
>> not on each packet, so there isn't really a performance issue. Besides
>> they can be trivially implemted as macros or inline functions.
>
> I doubt Juniper need _binary_ level compatibility. So we could get
> away with inline methods.
>
> This sort of thing just makes source level compatibility a lot easier.

It's not just about Juniper, though, it's about us, and how much this
buys us.  Using inlines buys us some source compatibility and the
ability to add some invariants, but is no different to macros in terms
of KBI within a version of FreeBSD, or between versions.  We can't
make ifnet opaque with inlines.  Adding a member to ifnet which is
opaque[*] and which has the fields most likely to change in size,
order, existence, etc., and leaving a few that are needed in the fast
path and will be used by macros/inlines is probably where we should
end up.

*: Obviously ifnet should be a value member of the opaque type, and
the ifnet should include a pointer to the opaque type, or something
like that, since you can't make an opaque struct a value member, which
is probably obvious, but I wanted to be clearish.
___
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"