Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Feb 2011 17:56:31 -0500
From:      Adam Stylinski <kungfujesus06@gmail.com>
To:        freebsd-net@freebsd.org
Subject:   Radiotap, BPF, and related system calls
Message-ID:  <AANLkTimE5qro-UzQfH2Fwt6Pj59uSR8gY9GOfGo8UvEo@mail.gmail.com>

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

I'm somewhat of a novice C programmer endeavoring in a project to write my
own protocol which will sit on top of the 1480 byte 802.3 frames (which are
on top of 802.11 frames) to accomplish remote file transmission.  The
communication will be one way, but one roadblock I'm running into is
discovering the exact system calls I have to make to send raw frames.  I
want to work on the higher level API as opposed to the kernel level (for one
I'd like the 802.11 layer to auto fragment the 802.3 frames for me).  The
exact protocol will require two cards in monitor mode so that raw injection
and blind reception can occur.  Control signals will be transmitted over a
TCP socket via the internet.  I've found documentation that points to the
system independent radiotap specification, and from there I've seen
documentation which talks about initializing the ioctl through a BPF clone
to be utilized by userland applications.  I'm sure that wireshark and other
wireless utilities use this, but there is a boat load of code I've been
looking through to find the precise call which opens up the device ioctl,
initiates the the tap, and gives me simple functions to construct and
transmit my simple frames.  I've found in the headers many references to the
structs themselves, but I'm not sure where to start to initiate
communication through the device.  Any 802.11 experts on this list that
could perhaps give me some specific instruction or point me to a man page /
example code which does this?

Thanks in advance for whatever you can offer me.



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