Subject: Re: PF for netbsd
To: Manuel Bouyer <bouyer@antioche.lip6.fr>
From: Bill Studenmund <wrstuden@netbsd.org>
List: tech-net
Date: 07/05/2003 17:40:49
On Thu, 3 Jul 2003, Manuel Bouyer wrote:

> On Thu, Jul 03, 2003 at 08:54:22PM +0900, itojun@iijlab.net wrote:
> > >Also, it seems tagname2tag() & friend is back into pf code, is it
> > >intentionnal ?
> >
> > 	see conversation w/ darrenr.  anyways it's back in uipc_mbuf2.c.
>
> I didn't see this, I musr have missed it.
>
> >
> > >Also there should probably be no
> > >#if NPF > 0
> > >in non-pf code (ipsec and altq).
> > >
> > >And really, I'd prefer to have the struct and functions names for the
> > >m_tag stuff with another prefix than pf. It makes the code much more readable
> > >when each subsystem's name is properly prefixed, and really confusing when
> > >the same prefix is used for different subsystems.
> >
> > 	"tag" is already used for m_tag, so i guess "pftag" is the best name
> > 	i can think of.
>
> It's not 'tag' which makes me unconfortable, it's 'pf'. This has nothing
> to do with the PF code once moved to uipc_mbuf2.c.
> It's used by both packets classifiers (pf, ipf, other classifiers) and
> tag consumers (altq, ipsec).
> As far as I can tell, m_tag related functions are all prefixed with m_tag,
> not tag. And a m_tag prefix for these functions looks fine to
> me (m_tag_name2tag(), m_tag_tag2name(), etc), as they're really related to
> m_tag too.

May I suggest calling it "pctag" for packet classifier tag? From what I've
read, I think that Itojun has two meanings for "pf" in mind, one being
specifically the PF packet classifying and filtering code and the other
being a service that things like altq and IPsec can use so that they too
don't have to also classify a packet. At the present time, the PF packet
code is serving for both, but that can change.

By calling the packet classification service a different name from the PF
code (even if the PF code is the only implementation for the moment) will
more clearly differentiate the two.

I realize that at the moment, the pc routines may just contain something
like:

#ifdef PF
	return pf_foo();
#else
#ifdef IPF
	return ipf_foo();
#endif
#endif

But even that would be a step in the right direction.

Take care,

Bill