Date: Fri, 11 Feb 2011 10:03:46 +0200 From: Vlad Galu <dudu@dudu.ro> To: Da Rock <freebsd-hackers@herveybayaustralia.com.au> Cc: freebsd-hackers@freebsd.org Subject: Re: linux PF_PACKET compatibility Message-ID: <AANLkTi=8NVeFvfsBn=cB4fNVPcGB-N5O-x-=F_chOKFU@mail.gmail.com> In-Reply-To: <4D54E39D.1000505@herveybayaustralia.com.au> References: <4D54E39D.1000505@herveybayaustralia.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Feb 11, 2011 at 9:22 AM, Da Rock < freebsd-hackers@herveybayaustralia.com.au> wrote: > "In recent versions of the Linux kernel (post-2.0 releases) a new protocol > family has been introduced, named PF_PACKET. This family allows an > application to send and receive packets dealing directly with the network > card driver, thus avoiding the usual protocol stack-handling (e.g., IP/TCP > or IP/UDP processing). That is, any packet sent through the socket will be > directly passed to the Ethernet interface, and any packet received through > the interface will be directly passed to the application." > > I've been chasing the answer to a FreeBSD version of this (approx. anyway), > but I needed to find out what exactly PF_PACKET was first. Finally found > this answer here: http://www.linuxjournal.com/article/4659 > > I looked up man socket and I can see possibilities (in my mind anyway), but > I thought I'd be best to check if the gurus here might have a better idea. > My reason for this is I'm attempting to build l2tpns (which supposedly > builds on 7.3?! with no trouble), and I'm chasing the errors which appear to > be linuxisms mostly. > > So in man socket simply looking at the list of protocol families I'd say > network driver level would be similar to PF_LINK link layer interface? Is > there another man page I should be looking at as well? > > FWIW my gmake output is this: > > gcc -Wall -Wformat-security -Wno-format-zero-length -g -O3 -I. > -I/usr/include -I/usr/local/include -DLIBDIR='"/lib/l2tpns"' > -DETCDIR='"/etc/l2tpns"' -DSTATISTICS -DSTAT_CALLS -DRINGBUFFER -DHAVE_EPOLL > -DBGP -c -o arp.o arp.c > arp.c: In function 'sendarp': > arp.c:34: error: storage size of 'sll' isn't known > arp.c:59: error: 'PF_PACKET' undeclared (first use in this function) > arp.c:59: error: (Each undeclared identifier is reported only once > arp.c:59: error: for each function it appears in.) > arp.c:62: error: 'AF_PACKET' undeclared (first use in this function) > arp.c:34: warning: unused variable 'sll' > gmake: *** [arp.o] Error 1 > > I posted this over at -questions@ but it was suggested to try here instead > (or -net@). I figured this would be the best place to start... :) > > Cheers > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > Take a look at bpf(4). I believe you could bypass the TCP/IP stack with netgraph(4), as well, although with possibly more overhead. -- Good, fast & cheap. Pick any two.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTi=8NVeFvfsBn=cB4fNVPcGB-N5O-x-=F_chOKFU>