Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 May 2004 11:20:27 +1000
From:      Phillip Crumpler <flip@ecr.mu.oz.au>
To:        freebsd-net@freebsd.org
Subject:   802.1x, HOSTAP, station association notifications
Message-ID:  <40AC07DB.10509@ecr.mu.oz.au>

next in thread | raw e-mail | index | archive | help
Hi folks!

As part of a university project I'm building a IEEE 802.1x authenticator 
for use with wireless networks. The project is based upon a FreeBSD 
machine using a Prism based NIC in HOSTAP mode. The role of the 
authenticator is to selectively allow hosts use of the access point. 
Part of the authenticator (the PAE) is built as a netgraph module and 
the remainder (the EAPOL protocol state machines etc.) as user processes.

The IEEE 802.1x protocol was largely framed with wired networks in mind 
but for use with 802.11 an 802.1x 'port' is represented by an asociation 
of a station with an access point. This means that the 802.1x 
implementation needs to know about associations and disassociations and 
I'm trying to find a way to do this.

I need a neat and tidy way of notifying either a netgraph node or a user 
process about associations. Monitor/RFMON mode seems to be mutually 
exclusive with HOSTAP mode so that idea is out. The file 
sys/net80211/ieee80211_input.c in eee80211_recv_mgmt() has this directly 
after it processes an association request:

    /* give driver a chance to setup state like ni_txrate */
    if (ic->ic_newassoc)
        (*ic->ic_newassoc)(ic, ni, newassoc);

The only driver that seems to use this is ath.

There seems to be no similar function pointer in struct ieee80211com for 
disassociation events.

I'd like to be able to do this without modifying any FreeBSD files if 
possible, otherwise I could just add another member into struct 
ieee80211com and add newassoc and disassoc functions into if_wi.c.

Can anyone shed some light on how I could achieve this?

cheers,

Phillip Crumpler
flip@ecr.mu.oz.au



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