Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Feb 2011 17:22:05 +1000
From:      Da Rock <freebsd-hackers@herveybayaustralia.com.au>
To:        freebsd-hackers@freebsd.org
Subject:   linux PF_PACKET compatibility
Message-ID:  <4D54E39D.1000505@herveybayaustralia.com.au>

next in thread | raw e-mail | index | archive | help
"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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D54E39D.1000505>