From owner-freebsd-current Mon May 18 09:42:30 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA10227 for freebsd-current-outgoing; Mon, 18 May 1998 09:42:30 -0700 (PDT) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from labinfo.iet.unipi.it (labinfo.iet.unipi.it [131.114.9.5]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id JAA10208 for ; Mon, 18 May 1998 09:42:26 -0700 (PDT) (envelope-from luigi@labinfo.iet.unipi.it) Received: from localhost (luigi@localhost) by labinfo.iet.unipi.it (8.6.5/8.6.5) id QAA07273; Mon, 18 May 1998 16:58:54 +0200 From: Luigi Rizzo Message-Id: <199805181458.QAA07273@labinfo.iet.unipi.it> Subject: struct ifnet handling... To: current@FreeBSD.ORG Date: Mon, 18 May 1998 16:58:54 +0200 (MET DST) X-Mailer: ELM [version 2.4 PL23] Content-Type: text Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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