Subject: BPF interface changes
To: Jason R Thorpe <thorpej@netbsd.org>
From: John Hawkinson <jhawk@MIT.EDU>
List: source-changes
Date: 12/19/2000 18:39:57
Perhaps this is a stupid inquiry, but please bear with me. Sorry that
it is a week after the change, I was way behind on source-changes
during IETF.

| Module Name:	syssrc
| Committed By:	thorpej
| Date:		Tue Dec 12 17:55:22 UTC 2000
| 
| Modified Files:
| 	  syssrc/sys/net: bpf.c bpf.h
| 
| Log Message:
| Use <net/dlt.h> to get the DLT_* constants.  Also change bpfattach()
| and bpf_change_type() to take just a pointer to the ifnet, rather than
| a pointer to the ifnet and a pointer to a member of the ifnet (the bpf
| pointer).
| 
| We'll let this ride on the Dec 12 1.5N version bump.

I'm kind of confused why this was done. It seems to me that:

    The DLT_* constants should be maintained in tandem with the bpf
    distributed by tcpdump.org, and splitting them out like that, when	
    they've not done so seems likely to cause gratuitous merge problems.
    Is there a real benefit to us to do this?

    Changing the bpfattach() arguments buys us extremely little. It doesn't
    give us a performance win or anything. But it does make our bpfattach()
    gratuitously different from all other bpfattach()s, which makes it more
    annoying for people to port drivers between NetBSD and other operating
    systems. It means that it's more annoying to backport drivers from
    -current to 1.5.1 (or 1.4.x). In short, it seems to add some red tape
    and not actually give us anything.

Are these analyses incorrect? Or rather, do they fall short of the mark
and are there other factors I should be considering in my evaluation?

Thanks.

--jhawk
  (who feels like such a winer right now)