linux PF_PACKET compatibility

Da Rock freebsd-questions at
Sun Jan 30 14:52:24 UTC 2011

"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 

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:

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.2?! 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 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"' 
-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


More information about the freebsd-questions mailing list