Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Feb 2011 19:36:00 +1000
From:      Da Rock <freebsd-hackers@herveybayaustralia.com.au>
To:        Julian Elischer <julian@freebsd.org>
Cc:        freebsd-hackers@freebsd.org, dudu@dudu.ro
Subject:   Re: linux PF_PACKET compatibility
Message-ID:  <4D550300.5090000@herveybayaustralia.com.au>
In-Reply-To: <4D54F0B0.7010503@freebsd.org>
References:  <4D54E39D.1000505@herveybayaustralia.com.au> <4D54F0B0.7010503@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 02/11/11 18:17, Julian Elischer wrote:
> On 2/10/11 11:22 PM, Da Rock 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?
>
> We don't have an exact equivalent.. but we have ways of doing the 
> same  thing.
> one way that is suggested is to use pcap and bpf which I am pretty 
> certain has been enhanced to allow sending as
> well as receiving.
> you can also hook directly to the interface using netgraph(4)
> there are other ways too but those are the two that came to mind 
> immediately.
So I'm going to have to rewrite that interface entirely? Bugger! I just 
can't fathom how this howto could even exist for l2tpns on FreeBSD if it 
isn't even close to buildable... weird!

http://kuapp.com/2010/07/14/how-to-setup-l2tpipsec-vpn-on-freebsd.html

Thanks guys. I'll probably come back with more problems as I slowly 
crack this one... :)
>
>
>>
>> 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"
>>
>




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