Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 May 1998 19:38:02 -0700
From:      David Greenman <dg@root.com>
To:        Luigi Rizzo <luigi@labinfo.iet.unipi.it>
Cc:        current@FreeBSD.ORG
Subject:   Re: struct ifnet handling... 
Message-ID:  <199805190238.TAA11949@implode.root.com>
In-Reply-To: Your message of "Mon, 18 May 1998 16:58:54 %2B0200." <199805181458.QAA07273@labinfo.iet.unipi.it> 

next in thread | previous in thread | raw e-mail | index | archive | help
>While trying to optimise interface matches in the firewall code (see
>below), i noticed that there is no if_detach() call. This would be
>consistent with the absence of reference counts for the "struct
>ifnet" . Can i safely assume that this will continue to be true
>in the future ?
>
>The reason i am interested in this: currently, interface names in the
>firewall code are done using strncmp(). However, if interfaces are
>never deallocated, one can
>  1) make sure that two interface with the same name also have the
>     same pointer in if_name (this actually already happens, since the
>     code to initialize it is the same e.g.
>
>	ifp->if_name = "tun" ;
>
>     but i realized that after writing the 10 lines or so to implement
>     it).
>
>  2) when adding ipfw rules, match the string passed as the interface
>     name with some of the if_name fields (possibly returning an error
>     if the name does not match any of the existing ones) and replace
>     the string with a pointer to the same string as used in struct
>     ifnet.
>
>When this is done, matching interface names requires only a pointer
>comparison (and furthermore, a NULL pointer can be used as an
>indication that no interface match is required).
>
>Comments ?

   I think depending on there being no if_detach in the future would be a
mistake. With PCCARD and hot-swap PCI, it seems likely that a mechanism
for removing ifnet's will be necessary at some point.

-DG

David Greenman
Co-founder/Principal Architect, The FreeBSD Project

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



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