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>