Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Dec 2015 22:46:34 -0600
From:      Juan Herrera <mybsdmailing@gmail.com>
To:        freebsd-hackers@freebsd.org
Subject:   BPF Berkeley Packet Filter Question
Message-ID:  <CAAN2wCD7vXDzShb35J6Ok20iU2Z4WpUYU%2BaLf9xOKuG1yDRA=Q@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hello BSD folks,

I am developing a networking application in C and I have a question
regarding BPF (Berkeley Packet Filters), I will give you an idea of the app
first,  I need to send a packet from machine A to machine B (any kind of
packet) so for this I wrote a packet generator application which will send
a packet to machine B, but before sending the packet I need to append some
metadata values at the end of the packet, already done, so in machine B I
have a raw socket listener app ready to receive incoming packets from
machine A, however I want to implement filtering with BPF on machine B, but
as my metadata was appended at the end of the packet (have to be at the
end), I need to read the packet length with(using) Berkeley Packet Filter
to match a specific field to filter one of the bytes at the end of my
packet (metadata appended), in other words I need to know the incoming
packet length to filtered against one of the metadatas fields and be able
to drop the packet before reaching user space applications(drop it in
kernel space).

So my question is, Can I use BPF to read the packet length ?

TIA!



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAAN2wCD7vXDzShb35J6Ok20iU2Z4WpUYU%2BaLf9xOKuG1yDRA=Q>