Skip site navigation (1)Skip section navigation (2)
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>