-
Notifications
You must be signed in to change notification settings - Fork 2
hbock/libairpcap-nl
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
airpcap-nl
----------
airpcap-nl is an implementation of core parts of the Airpcap Windows library
for nl80211 drivers in Linux. It provides a convenience abstraction for
creating and using monitor interfaces for wireless packet captures on
802.11abgn devices.
Recommended Adapters
====================
Any adapter with good mac80211/cfg80211 support will work with this library.
No wext-only drivers will work! You should convert your application to use
lorcon for that purpose.
The adapters I have had most success with have chipsets supported by
ath9k(_htc) and iwlagn. I have had limited success with rt2x00 adapters,
but that is mostly due to recent adapters being relatively unsupported.
Implementation status
=====================
Supported calls (with some caveats):
- AirpcapGetVersion
- AirpcapGetLastError
- AirpcapGetDeviceList
- AirpcapFreeDeviceList
- AirpcapOpen
- AirpcapClose
- AirpcapGetDeviceCapabilities
- AirpcapGetLinkType
- Always returns AIRPCAP_LT_802_11_PLUS_RADIO.
- AirpcapGetDeviceMacFlags
- Always returns AIRPCAP_MF_MONITOR_MODE_ON set,
AIRPCAP_MF_ACK_FRAMES_ON cleared.
- AirpcapGetFcsPresence
- Always returns TRUE.
- AirpcapSetFcsValidation
- Does not support AIRPCAP_VT_ACCEPT_CORRUPT_FRAMES.
- AirpcapGetFcsValidation
- AirpcapGetDecryptionState
- Always returns AIRPCAP_DECRYPTION_OFF.
- AirpcapSetDeviceChannel
- AirpcapGetDeviceChannel
- AirpcapSetDeviceChannelEx
- AirpcapGetDeviceChannelEx
- AirpcapGetDeviceSupportedChannels
- AirpcapConvertFrequencyToChannel
- AirpcapConvertChannelToFrequency
- AirpcapGetMacAddress
- AirpcapSetTxPower
- AirpcapGetTxPower
Stubbed calls:
- AirpcapSetLinkType
- mac80211 does not support anything but AIRPCAP_LT_802_11_PLUS_RADIO
- AirpcapSetDeviceMacFlags
- mac80211 does not support frame acknowledgement in monitor mode AFAIK.
It may be possible to support this with an additional managed interface.
- AirpcapSetFcsPresence
- mac80211 cannot configure the driver either way. Most drivers do always
return frames with FCS.
- AirpcapSetDeviceKeys
- AirpcapGetDeviceKeys
- AirpcapSetDriverKeys
- AirpcapGetDriverKeys
- AirpcapSetDecryptionState
- We do not support hardware decryption.
- AirpcapSetKernelBuffer
- AirpcapGetKernelBufferSize
- AirpcapSetMinToCopy
- AirpcapGetReadEvent
- These calls don't make sense outside of the Airpcap driver model.
- AirpcapSetFilter
- AirpcapRead
- AirpcapGetStats
- These calls are all available in libpcap. Without having access to all
capture handles open for this device, there's no way to implement
these. Equivalent:
- AirpcapSetFilter: pcap_compile/pcap_setfilter
- AirpcapRead: pcap_next, pcap_next_ex
- AirpcapGetStats: pcap_stats
- AirpcapGetLedsNumber
- AirpcapTurnLedOn
- AirpcapTurnLedOff
- We don't have any access to the LEDs in a consistent way, AFAIK. Some
mac80211 drivers may support toggling the LEDs, but it's too much hassle
for a capture interface. We simply return 0 for AirpcapGetLedsNumber.
Stubbed, but will eventually be supported:
- AirpcapSetMacAddress
- Easily implemented.
- AirpcapWrite
- For now, this can be replaced in application code via pcap_inject.
Stubbed, but may eventually get supported:
- AirpcapGetDeviceTimestamp
- This would be incredibly useful, but I have no idea how to get the
current adapter TSFT from mac80211. Many drivers support it and it is
used for radiotap, but there is no exposure in nl80211.
- AirpcapStoreCurConfigAsAdapterDefault
- This could be stored on the filesystem and restored on AirpcapOpen.
About
Implementation of AirPcap library, targetting the NL80211 protocol.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published