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>