PF_PACKET

Rob robsgreen325
Fri Apr 8 09:05:50 PDT 2005


A few questions about PF_PACKET sockets...

It looks to me like the madwifi driver hostapd interface code
(driver_madwifi.c) uses a special configuration. It appears that
hostapd listens specifically for EAPOL frames using packet sockets
bound to "ath0" and sometimes "br0" when a bridge is present. When
bridging, ath0 is used for RX and br0 for TX of EAPOL. frames. Is this
correct?

Does having multiple sockets in the design work around the fact that
madwifi has only one net_device "ath0" and when bridging is
configured, the typical flow of frames to packet sockets is
interrupted? Otherwise, the packet socket would have to listen for all
packets (ETH_P_ALL) and sort out EAPOL which is not efficient. Is this
true?

If ath0 is part of the bridge why not just listen to the br0
interface? Why does hostapd have to bind to both ath0 and br0 devices
to get EAPOL frames?

Is there something that guarantees that EAPOL frames make it only to
the packet socket in user land and no further. What keeps the EAPOL
frames from being both posted to the socket and bridged under the
existing configuration?

Is this problem avoided in the hostap-driver and other similar drivers
because they implement multiple/virtual network devices? ie: "wlan0ap"
only posts 802.11 mgmt and EAPOL frames while "wlan0" is guaranteed to
be the data path.

Any feedback would be appreciated.

Thanks,
Rob




More information about the Hostap mailing list