Subject: Re: af_packet.c bug?

From: Ben Greear <[email-masked]>
Date: Mon, 28 Mar 2005 12:30:25 -0800

David S. Miller wrote:
> On Mon, 28 Mar 2005 12:08:14 -0800
> Ben Greear <[email-masked]> wrote:
> 
> 
>>I was also wondering why we couldn't hold a reference to the net-device
>>instead of just it's ifindex when dealing with a bound raw socket.
> 
> 
> Because then raw sockets could make unloading of netdevices
> hang forever.  That is, unless you add some netdev notifier
> to af_packet.c that walks all the raw sockets looking for netdev
> references.

 > I guess it also would make things like leaving a dump running
 > while you quickly down/up and interface stop working.
 >

I was thinking of removing the reference only when the NETDEV_UNREGISTER
event was sent.  That will allow sockets to work through UP and DOWN transitions
of the device as it does currently.

We could also save the name of the interface in the socket struct and resolve
the device in a lazy manner.  That way, even if the device is truly gone, the
worst case performance will be like it is today.

It would be nice to have a list of all of these sockets so we could get info
on them similar to the 'netstat -an' output anyway...

Ben

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com