Date: Mon, 18 May 1998 16:58:54 +0200 (MET DST) From: Luigi Rizzo <luigi@labinfo.iet.unipi.it> To: current@FreeBSD.ORG Subject: struct ifnet handling... Message-ID: <199805181458.QAA07273@labinfo.iet.unipi.it>
next 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 ?
cheers
luigi
-----------------------------+--------------------------------------
Luigi Rizzo | Dip. di Ingegneria dell'Informazione
email: luigi@iet.unipi.it | Universita' di Pisa
tel: +39-50-568533 | via Diotisalvi 2, 56126 PISA (Italy)
fax: +39-50-568522 | http://www.iet.unipi.it/~luigi/
_____________________________|______________________________________
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?199805181458.QAA07273>
