title: Accessing wireless interface (802.11) at MAC layer (Linux)
body: <p>I spent the last days reading through man pages, documentations and anything else google brought up, but I suppose I'm even more confused now than I was at the beginning.</p>
  
  <p>Here is what I want to do: I want to send and receive data packets with my own layer 3-x protocol(s) via a wireless interface (802.11) on Linux systems with C/C++. 
  So far, so good. I do not require beacons, association or any AP/SSID related stuff. However, for data transmissions I'd like the MAC layer to behave "as usual", meaning unicast packets are ACK'd, retransmissions, backoff etc. I'd also like to enjoy the extended QoS capabilites (802.11e with 4 queues and different access categories). Promiscuous mode on the other hand is not a concern, I require only broadcast packets and packets sent to the specific station.</p>
  
  <p>What would be the right way to go about it? Most of the documentation out there on raw socket access seems to be focused on network sniffing and that does not help. I've been playing around with the <strong>monitor mode</strong> for some time now, but from what I've read so far, received packets are not ACK'd in monitor mode etc.
  Without monitor mode, what would be the alternative? Using <strong>ad hoc mode</strong> and unix raw sockets? Or do I have to fiddle around with the drivers?</p>
  
  <p>I'm not looking for a complete solution, just some good ideas, where to start. I read through the man pages for socket(2), socket(7) and packet(7) but that did not help concerning the behaviour of the MAC layer in different modes.</p>
  
  <p>Thanks in advance.</p>