Atheros hostapd changes

Ted Merrill ted
Wed Oct 10 12:18:53 PDT 2007

Hmmm... i'm subscribed to the digest, but this seems to make it tedious
to reply to e.g. your email... feel free to cc: me when replying in the

> > I've been asked to push back changes that Atheros has made to hostapd and is
> > using internally and passing on to customers.
> That's nice to hear! This type of contributions are very welcome. One
> thing to keep in mind here is that I do expect all the proposed changes
> to be licensed under a compatible license; preferably the same
> dual-GPL/BSD combination that hostapd is licensed under. Please let me
> know if there are any questions about this.

Anything i submit will be public domain, unless it is a modification
of something existing...
i assume you will release under existing hostapd
licensing scheme (i.e. dual GP/BSD).

> > I'll try to push back the changes in separate pieces, beginning with the least 
> > dangerous changes and then working towards the biggest change of all, which 
> > is the addition of a hook for a WPS server.
> > The architecture for the WPS server is that a localhost port is used to pass 
> > information to and from a separate program that implements the server.
> Is this WPS server available as an open source program? Based on another
> message from you, this seems to be referring to the Intel
> implementation. Would that work as-is or are changes needed for it, too?
> I haven't looked into the current state of the Intel implementation, but
> the original design was not very suitable for integration into hostapd
> for number of reasons. One issue can be resolved by following the current
> development tree for hostapd (i.e., I have no plans of adding this type
> of new functionality into old branches). The other main problems were in
> the way the communication to an external process was done (it must not
> block hostapd) and how the EAP integration was done (it must use
> expanded EAP headers properly since that is now supported in hostapd).

Atheros is currently using a modified version of the Intel wsccmd program.
This is a very bloated program and needs to be entirely replaced.
I don't think there is any issue with releasing Atheros' modifications
to wsccmd, although i haven't received approval yet (i just asked this morning)...

There is a file added to the Atheros version of hostapd, 
named eap_wsc.c that contains the following comment at the top...
 * hostapd / Wi-Fi Simple Configuration 7C Proposal
 * Copyright (c) 2004-2005, Jouni Malinen <jkmaline at>
 * Copyright (c) 2005 Intel Corporation. All rights reserved.
 * Contact Information: Harsha Hegde  <harsha.hegde at>
So it would appear that the "Atheros modification" is at least in part
an "Intel modification"; perhaps the Jouni copyright is because
the file was cloned from another hostapd file?
(I'm sorry i don't know how much Atheros has actually contributed here.)
This file defines an "eap method" which is referenced from eap.c
as part of eap_methods[].
Messages back from wsscmd are handled on a poll'd basis via a
registration with eloop_register_read_sock (in another file "wsc_ie.c").
There is a third file UdpLib.c that is just a thin cover for socket calls.
All three files are dual bsd/gpl.
wsccmd is expected to be listening on localhost port 38000 ...
i would have used a unix domain socket myself, but it probably
doesn't matter much.
I don't think that there is anything that will stall hostapd,
so that should not be an issue.

I'd be happy to send you the Atheros version of hostapd-0.4.8 source
code if you'd like, but i think you would rather wait until i port it
to your bleeding edge... in the process of porting, i'll try to
understand what you are saying about expanded eap headers etc.

Atheros has not decided what it will do about replacing wsccmd, if 
anything... it is possible that i may rewrite it if Atheros thinks
it worthwhile.
My previous relevent experience is that i wrote a lean WPS client
code for an Atheros product 
(i'm checking to see if i can release that)...
by the way, the crypto libraries that accompany wps_supplicant
were just what i needed, as was wps_supplicant itself.
The WPS route i took bypassed wpa_supplicant; it would be better to
work through wpa_supplicant for future work.
I hear that someone is working on extending wpa_supplicant to
support WPS but i'm not going to think about that too much this week;
wps_supplicant will be an area i will be addressing after i get
done with hostapd.
The WPS server wifi side code i might write
would be similar to the client code i wrote,
with additional complications of course, and 
In addition a WPS server has to support (ugh) UPNP wired communication.
The UPNP spec is immense, and huge support libraries have been written,
but i would bypass that.
My approach would be to sniff the packets of existing implementations,
compare this with the spec, and come up with a lean implementation tuned
to the minimum requirement.
I'm pretty certain that a moderate amount of code will do the job.
Meanwhile, it would be nice (but of course i can't promise) if this
were done in harmony with, or ideally as part of the hostap source tree.
Clearly i have a lot to learn... feel free to educate me as you
feel inspired.

> > I understand that "git" is being used, and have cloned a git repository... but 
> > what action should i take to push back or to have pulled back the changes i 
> > commit? (Take in account i've never used git before today).
> I use a git repository internally to maintain the official releases and
> make the repository publicly available. You are free to use whatever
> mechanism you want yourself for doing the development, but I would
> prefer to receive proposed changes as separate patch files (i.e., not
> git push or a request to pull from another git repository). You can
> generate patches with git, but you may find tools like quilt to be more
> suitable for this purposes (that's the tool I use to maintain patches
> that I submit to other projects that use git).

stgit seems to work well for me. You might want to check it out.

> > Anyone else working on WPS server hooks (or WPS server integrated into 
> > hostapd)?
> I've heard of multiple WPS implementations that are using hostapd.
> However, I'm currently aware of only one additional project that I would
> categories as something that has reasonable likelyhood of releasing
> anything under an open source license at some point. As far as closed
> implementations are concerned, I would just ignore them. As far as other
> possible open source work on this area is concerned, I would hope that
> people involved with them would comment on the topic if they have plans
> on releasing something in near future.
> I'm not aware of any details for various projects on this area, so I
> cannot provide much more information here. Anyway, as far as getting
> something into the mainline hostapd releases is concerned, posting to
> this mailing list is the best way of moving things forward.

More information about the Hostap mailing list