"slow path" in network code || IPv6 panic on inteface removal

Andrey V. Elsukov ae at FreeBSD.org
Sun Jan 26 23:35:47 UTC 2014


Hello, Alexander,

probably it would be better, it you split your patch into two.
The one, that implements this:

> What exactly is proposed:
> - Another one netisr queue for handling different types of packets
> - metainfo is stored in mbuf_tag attached to packet
> - ifnet departure handler taking care of packets queued from/to killed
> ifnet
> - API to register/unregister/dispath given type of traffic

And second, that shows usage example:

> #5 T2 calls nd6_ifptomac() which reads interface MAC from ifp->if_addr
> 
> #6 User inspects core generated by previous call
> 
> Using new API, we can avoid #6 by making the following code changes:
> * LLE timer does not drop/reacquire LLE lock
> * we require nd6_ns_output callers to lock LLE if it is provided
> * nd6_ns_output() uses "slow" path instead of sending mbuf to
> ip6_output() immediately if LLE is not NULL.

-- 
WBR, Andrey V. Elsukov


More information about the freebsd-hackers mailing list