History log of /openbsd-current/sys/dev/ic/if_wi_hostap.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.52 19-Feb-2018 mpi

Remove almost unused `flags' argument of suser().

The account flag `ASU' will no longer be set but that makes suser()
mpsafe since it no longer mess with a per-process field.

No objection from millert@, ok tedu@, bluhm@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.51 24-Nov-2015 mpi

You only need <net/if_dl.h> if you're using LLADDR() or a sockaddr_dl.


# 1.50 24-Nov-2015 mpi

No need to include <net/if_arp.h>

This header is only needed because <netinet/if_ether.h> declares a
structure that needs it. But it turns out that <net/if.h> already
includes it as workaround.

A proper solution would be to stop declarting "struct ether_arp"
there. But no driver should need this header.


# 1.49 24-Nov-2015 mpi

The only network driver needing <net/if_types.h> is upl(4) for IFT_OTHER.


# 1.48 04-Nov-2015 dlg

use if_enqueue() rather than doing a poor inline version of it.

ok mpi@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.47 18-Nov-2014 tedu

move arc4random prototype to systm.h. more appropriate for most code
to include that than rdnvar.h. ok deraadt dlg


# 1.46 14-Sep-2014 jsg

remove uneeded proc.h includes
ok mpi@ kspillner@


# 1.45 13-Sep-2014 doug

Replace all queue *_END macro calls except CIRCLEQ_END with NULL.

CIRCLEQ_* is deprecated and not called in the tree. The other queue types
have *_END macros which were added for symmetry with CIRCLEQ_END. They are
defined as NULL. There's no reason to keep the other *_END macro calls.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.44 22-Jul-2014 mpi

Fewer <netinet/in_systm.h>


# 1.43 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.42 07-Aug-2013 bluhm

Most network drivers include netinet/in_var.h, but apparently they
don't have to. Just remove these include lines.
Compiled on amd64 i386 sparc64; OK henning@ mikeb@


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.41 15-Oct-2008 blambert

Second pass of simple timeout_add -> timeout_add_sec conversions
This should take care of the simpler ones (i.e., timeout values of
integer multiples of hz).

ok krw@, art@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE
# 1.40 09-Oct-2007 gilles

MALLOC -> malloc

ok krw@


# 1.39 06-Oct-2007 krw

Oops. Forgot to do FREE -> free when I did MALLOC -> malloc.


# 1.38 03-Oct-2007 krw

MALLOC+bzero -> malloc+M_ZERO.

In ip_esp.c all allocated memory is now zero'd in the
"malloc(sizeof(*tc) + alen ..." case. The +alen memory was not
initialized by the bzero() call. Noticed by chl@.

"Looks good" art@ "seems ok" chl@


Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.37 26-Nov-2006 deraadt

avoid extra inclusions; ok jsg


Revision tags: OPENBSD_4_0_BASE
# 1.36 01-Jul-2006 reyk

always report the channel as type 802.11b (IEEE802_CHAN_B) in the
net80211 node wrappers.


# 1.35 27-Jun-2006 reyk

add some more net80211 compatibility glue:
- support scanning and node listing ("ifconfig -M"). this will replace
wicontrol -L in station mode and wicontrol -l in hostap mode.
- allow to print the BSSID

tested by quite a few people
ok jsg@


# 1.34 20-Apr-2006 miod

Fix various printf() issues: too many arguments, not enough arguments, argument
order reversed, wrong modifiers. ok deraadt@ marco@ mickey@


Revision tags: OPENBSD_3_9_BASE
# 1.33 03-Dec-2005 brad

splimp -> splnet

ok marco@


# 1.32 31-Oct-2005 jsg

Move from arpcom to ieee80211com in wi softc. This will be
required for net80211 support.
Updated version of a diff from dlg@
similiar diff ok fgsch@, ok dlg@


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.31 04-Jan-2005 millert

If we get a vendor private tlv when we are expecting a challenge,
just ignore the vendor private one and continue. Fixes a problem
with hostap and some 802.11g cards. Adapted from a diff by drahn@


# 1.30 23-Nov-2004 fgsch

replace old net/if_ieee80211.h header with the net80211 ones, kernel part.
millert@ mcbride@ jsg@


Revision tags: OPENBSD_3_5_BASE OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B
# 1.29 15-Mar-2004 millert

Changes to wihap_auth_req():
If the station sends a bogus challenge when authorizing, send back
a response to that effect instead of just returning.

Simplify sequence number handling--there's no need to update the sequence
value by hand since we just need to increment it for the response packet.


# 1.28 02-Mar-2004 millert

Make HostAP work Prism cards with newer firmware (1.7.0 and higher).
Accept probe packets that Lucent cards send when the associated AP
disapears; this speeds up reassocication with those cards. Don't
advertise HostAP as being available for firmware 1.4.2. I added a
note about this in the man pages a while ago but forgot to update
the driver itself. OK mickey@


# 1.27 21-Sep-2003 fgsch

sync with netbsd defines. no functional changes.
ok markus deraadt


Revision tags: OPENBSD_3_4_BASE
# 1.26 15-Aug-2003 tedu

change arguments to suser. suser now takes the process, and a flags
argument. old cred only calls user suser_ucred. this will allow future
work to more flexibly implement the idea of a root process. looks like
something i saw in freebsd, but a little different.
use of suser_ucred vs suser in file system code should be looked at again,
for the moment semantics remain unchanged.
review and input from art@ testing and further review miod@


Revision tags: UBC_SYNC_A
# 1.25 16-May-2003 millert

Use 16bit alignment in addr_cmp() (not 32bit) so this has a chance
of working on sparc64.


Revision tags: OPENBSD_3_3_BASE
# 1.24 15-Feb-2003 millert

branches: 1.24.4;
Increase xfer rates buffer from 8 to 12 bytes. This allows 802.11g
stations such as the airport extreme to associate. Tested by
Ben Lovett.


# 1.23 21-Jan-2003 millert

Use a 2-level timeout for hostap. Instead of of sending a station
a deauth/disassoc packet when the inactivity timer fires, just set
a flag, re-queue it and set the master wihap timer if needed. What
this does is to effectively bundle (and serialize) deauth/disassoc
packets so if a large number need to be sent at once we don't stomp
all over the card. We also only do at most 10 stations at a time.
The sta_list has been changed from a doubly linked list to a tailq.
Inactive stations are kept at the head of the queue, new ones are
added to the tail.

Idea and OK by mickey@, prompted by an issue found by
merith AT vantronix DOT net


# 1.22 21-Jan-2003 millert

Stub out hostap bits #ifdef SMALL_KERNEL to free up space on the
floppies; OK mickey@ deraadt@


# 1.21 14-Jan-2003 millert

In wihap_shutdown() use a broadcast for disassoc and deauth packets
instead of sending a separate packet to each station.
Based on a patch from merith AT vantronix DOT net


Revision tags: OPENBSD_3_2_BASE UBC_SYNC_B
# 1.20 13-Aug-2002 millert

change WI_PORTTYPE_AP -> WI_PORTTYPE_HOSTAP to match FreeBSD and NetBSD.
The reason for this is that it is possible in the future to have
wi(4) be a real AP using the AP tertiary firmware.
mickey@ OK


# 1.19 25-Jun-2002 millert

Handle REASREQ packets earlier when processing an association
request. We need to eat the MAC address of the packet before we
go looking at the SSID and such. Doing do is sufficient to make
Cisco cards associate with HostAP. From FreeBSD (jhay).


# 1.18 23-Jun-2002 millert

If we receive a packet with our BSSID from an unassociated station,
tell the station to disassociate itself. This fixes a problem when
the HostAP reboots but stations still think they are associated.
With this change the station will re-associate properly.

Change wihap_sta_disassoc() to take an array of u_int8_t (ether
addr) instead of a struct wihap_sta_info * to make the above change
possible. This is also consistent with wihap_sta_deauth().


# 1.17 21-Jun-2002 millert

Add some missing casts of sc->wi_txbuf -> caddr_t


# 1.16 09-Jun-2002 todd

branches: 1.16.2;
a step towards consistancy; in general:
'struct arpcom foo' -> 'struct arpcom sc_arpcom'
ok itojun@


# 1.15 26-Apr-2002 millert

Implement shared key support for hostap mode; from Thomas Skibo
Also do a little KNF while I'm in here.


# 1.14 23-Apr-2002 millert

Clear flags indicating whether or not wi or hostap is active as
early as possible. Also move the timeout_del() in wi_stop() to
before we disable wi(4) so it doesn't fire at the wrong time.
Joint effort between mickey@ and myself.


# 1.13 15-Apr-2002 millert

Remove bogus casts to int in printf that causes a warning on 64bit arches.


Revision tags: OPENBSD_3_1_BASE
# 1.12 11-Apr-2002 millert

o Check supported speeds before examing capabilties
o If capinfo doesn't match, save it anyway for debugging porpoises
o Add more info for capinfo failures in debug mode


# 1.11 08-Apr-2002 mickey

two missing splx()s


# 1.10 08-Apr-2002 mickey

make hostap work on other-endian machines; tested by drahn@


# 1.9 07-Apr-2002 millert

Don't reset COR in wi_reset(), break it out into its own function and
only call it from wi_attach() and wi_pcmcia_activate() (ie: just once).
It would be nicer to have the COR reset be part of the bus-specific
code but we need to know whether or not we have a Lucent card since
old Lucent firmware revs get messed up on a COR soft reset.

Even with the COR reset we still need to avoid initializing Symbol
cards more than once. However, we *do* want to do a reset after
returning from suspend. Therefore, rename wi_gone to wi_flags and
store both the attach and init status in it. wi_reset() now checks
wi_flags to see if the card should be initialized in the Symbol case.

Info on initializing Symbol cards once from NetBSD.


# 1.8 01-Apr-2002 mickey

freem mbuf on input pkt check failure


# 1.7 01-Apr-2002 mickey

killed a char accidentally


# 1.6 01-Apr-2002 mickey

need to splsoftclock here too, i think i've got 'em all now


# 1.5 30-Mar-2002 mickey

kill lots of space and insert some more for knf


# 1.4 29-Mar-2002 millert

i_nwid is not a NUL-terminated string, it is length bounded.


# 1.3 28-Mar-2002 mickey

put the protos and spls in place


# 1.2 28-Mar-2002 mickey

missing timeout add and del; some minor api change


# 1.1 28-Mar-2002 mickey

basic host-ap implementation, more work is needed; from Thomas Skibo <skibo@pacbell.net>; millert@ ok


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.51 24-Nov-2015 mpi

You only need <net/if_dl.h> if you're using LLADDR() or a sockaddr_dl.


# 1.50 24-Nov-2015 mpi

No need to include <net/if_arp.h>

This header is only needed because <netinet/if_ether.h> declares a
structure that needs it. But it turns out that <net/if.h> already
includes it as workaround.

A proper solution would be to stop declarting "struct ether_arp"
there. But no driver should need this header.


# 1.49 24-Nov-2015 mpi

The only network driver needing <net/if_types.h> is upl(4) for IFT_OTHER.


# 1.48 04-Nov-2015 dlg

use if_enqueue() rather than doing a poor inline version of it.

ok mpi@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.47 18-Nov-2014 tedu

move arc4random prototype to systm.h. more appropriate for most code
to include that than rdnvar.h. ok deraadt dlg


# 1.46 14-Sep-2014 jsg

remove uneeded proc.h includes
ok mpi@ kspillner@


# 1.45 13-Sep-2014 doug

Replace all queue *_END macro calls except CIRCLEQ_END with NULL.

CIRCLEQ_* is deprecated and not called in the tree. The other queue types
have *_END macros which were added for symmetry with CIRCLEQ_END. They are
defined as NULL. There's no reason to keep the other *_END macro calls.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.44 22-Jul-2014 mpi

Fewer <netinet/in_systm.h>


# 1.43 12-Jul-2014 tedu

add a size argument to free. will be used soon, but for now default to 0.
after discussions with beck deraadt kettenis.


Revision tags: OPENBSD_5_5_BASE
# 1.42 07-Aug-2013 bluhm

Most network drivers include netinet/in_var.h, but apparently they
don't have to. Just remove these include lines.
Compiled on amd64 i386 sparc64; OK henning@ mikeb@


Revision tags: OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.41 15-Oct-2008 blambert

Second pass of simple timeout_add -> timeout_add_sec conversions
This should take care of the simpler ones (i.e., timeout values of
integer multiples of hz).

ok krw@, art@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE
# 1.40 09-Oct-2007 gilles

MALLOC -> malloc

ok krw@


# 1.39 06-Oct-2007 krw

Oops. Forgot to do FREE -> free when I did MALLOC -> malloc.


# 1.38 03-Oct-2007 krw

MALLOC+bzero -> malloc+M_ZERO.

In ip_esp.c all allocated memory is now zero'd in the
"malloc(sizeof(*tc) + alen ..." case. The +alen memory was not
initialized by the bzero() call. Noticed by chl@.

"Looks good" art@ "seems ok" chl@


Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.37 26-Nov-2006 deraadt

avoid extra inclusions; ok jsg


Revision tags: OPENBSD_4_0_BASE
# 1.36 01-Jul-2006 reyk

always report the channel as type 802.11b (IEEE802_CHAN_B) in the
net80211 node wrappers.


# 1.35 27-Jun-2006 reyk

add some more net80211 compatibility glue:
- support scanning and node listing ("ifconfig -M"). this will replace
wicontrol -L in station mode and wicontrol -l in hostap mode.
- allow to print the BSSID

tested by quite a few people
ok jsg@


# 1.34 20-Apr-2006 miod

Fix various printf() issues: too many arguments, not enough arguments, argument
order reversed, wrong modifiers. ok deraadt@ marco@ mickey@


Revision tags: OPENBSD_3_9_BASE
# 1.33 03-Dec-2005 brad

splimp -> splnet

ok marco@


# 1.32 31-Oct-2005 jsg

Move from arpcom to ieee80211com in wi softc. This will be
required for net80211 support.
Updated version of a diff from dlg@
similiar diff ok fgsch@, ok dlg@


Revision tags: OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.31 04-Jan-2005 millert

If we get a vendor private tlv when we are expecting a challenge,
just ignore the vendor private one and continue. Fixes a problem
with hostap and some 802.11g cards. Adapted from a diff by drahn@


# 1.30 23-Nov-2004 fgsch

replace old net/if_ieee80211.h header with the net80211 ones, kernel part.
millert@ mcbride@ jsg@


Revision tags: OPENBSD_3_5_BASE OPENBSD_3_6_BASE SMP_SYNC_A SMP_SYNC_B
# 1.29 15-Mar-2004 millert

Changes to wihap_auth_req():
If the station sends a bogus challenge when authorizing, send back
a response to that effect instead of just returning.

Simplify sequence number handling--there's no need to update the sequence
value by hand since we just need to increment it for the response packet.


# 1.28 02-Mar-2004 millert

Make HostAP work Prism cards with newer firmware (1.7.0 and higher).
Accept probe packets that Lucent cards send when the associated AP
disapears; this speeds up reassocication with those cards. Don't
advertise HostAP as being available for firmware 1.4.2. I added a
note about this in the man pages a while ago but forgot to update
the driver itself. OK mickey@


# 1.27 21-Sep-2003 fgsch

sync with netbsd defines. no functional changes.
ok markus deraadt


Revision tags: OPENBSD_3_4_BASE
# 1.26 15-Aug-2003 tedu

change arguments to suser. suser now takes the process, and a flags
argument. old cred only calls user suser_ucred. this will allow future
work to more flexibly implement the idea of a root process. looks like
something i saw in freebsd, but a little different.
use of suser_ucred vs suser in file system code should be looked at again,
for the moment semantics remain unchanged.
review and input from art@ testing and further review miod@


Revision tags: UBC_SYNC_A
# 1.25 16-May-2003 millert

Use 16bit alignment in addr_cmp() (not 32bit) so this has a chance
of working on sparc64.


Revision tags: OPENBSD_3_3_BASE
# 1.24 15-Feb-2003 millert

branches: 1.24.4;
Increase xfer rates buffer from 8 to 12 bytes. This allows 802.11g
stations such as the airport extreme to associate. Tested by
Ben Lovett.


# 1.23 21-Jan-2003 millert

Use a 2-level timeout for hostap. Instead of of sending a station
a deauth/disassoc packet when the inactivity timer fires, just set
a flag, re-queue it and set the master wihap timer if needed. What
this does is to effectively bundle (and serialize) deauth/disassoc
packets so if a large number need to be sent at once we don't stomp
all over the card. We also only do at most 10 stations at a time.
The sta_list has been changed from a doubly linked list to a tailq.
Inactive stations are kept at the head of the queue, new ones are
added to the tail.

Idea and OK by mickey@, prompted by an issue found by
merith AT vantronix DOT net


# 1.22 21-Jan-2003 millert

Stub out hostap bits #ifdef SMALL_KERNEL to free up space on the
floppies; OK mickey@ deraadt@


# 1.21 14-Jan-2003 millert

In wihap_shutdown() use a broadcast for disassoc and deauth packets
instead of sending a separate packet to each station.
Based on a patch from merith AT vantronix DOT net


Revision tags: OPENBSD_3_2_BASE UBC_SYNC_B
# 1.20 13-Aug-2002 millert

change WI_PORTTYPE_AP -> WI_PORTTYPE_HOSTAP to match FreeBSD and NetBSD.
The reason for this is that it is possible in the future to have
wi(4) be a real AP using the AP tertiary firmware.
mickey@ OK


# 1.19 25-Jun-2002 millert

Handle REASREQ packets earlier when processing an association
request. We need to eat the MAC address of the packet before we
go looking at the SSID and such. Doing do is sufficient to make
Cisco cards associate with HostAP. From FreeBSD (jhay).


# 1.18 23-Jun-2002 millert

If we receive a packet with our BSSID from an unassociated station,
tell the station to disassociate itself. This fixes a problem when
the HostAP reboots but stations still think they are associated.
With this change the station will re-associate properly.

Change wihap_sta_disassoc() to take an array of u_int8_t (ether
addr) instead of a struct wihap_sta_info * to make the above change
possible. This is also consistent with wihap_sta_deauth().


# 1.17 21-Jun-2002 millert

Add some missing casts of sc->wi_txbuf -> caddr_t


# 1.16 09-Jun-2002 todd

branches: 1.16.2;
a step towards consistancy; in general:
'struct arpcom foo' -> 'struct arpcom sc_arpcom'
ok itojun@


# 1.15 26-Apr-2002 millert

Implement shared key support for hostap mode; from Thomas Skibo
Also do a little KNF while I'm in here.


# 1.14 23-Apr-2002 millert

Clear flags indicating whether or not wi or hostap is active as
early as possible. Also move the timeout_del() in wi_stop() to
before we disable wi(4) so it doesn't fire at the wrong time.
Joint effort between mickey@ and myself.


# 1.13 15-Apr-2002 millert

Remove bogus casts to int in printf that causes a warning on 64bit arches.


Revision tags: OPENBSD_3_1_BASE
# 1.12 11-Apr-2002 millert

o Check supported speeds before examing capabilties
o If capinfo doesn't match, save it anyway for debugging porpoises
o Add more info for capinfo failures in debug mode


# 1.11 08-Apr-2002 mickey

two missing splx()s


# 1.10 08-Apr-2002 mickey

make hostap work on other-endian machines; tested by drahn@


# 1.9 07-Apr-2002 millert

Don't reset COR in wi_reset(), break it out into its own function and
only call it from wi_attach() and wi_pcmcia_activate() (ie: just once).
It would be nicer to have the COR reset be part of the bus-specific
code but we need to know whether or not we have a Lucent card since
old Lucent firmware revs get messed up on a COR soft reset.

Even with the COR reset we still need to avoid initializing Symbol
cards more than once. However, we *do* want to do a reset after
returning from suspend. Therefore, rename wi_gone to wi_flags and
store both the attach and init status in it. wi_reset() now checks
wi_flags to see if the card should be initialized in the Symbol case.

Info on initializing Symbol cards once from NetBSD.


# 1.8 01-Apr-2002 mickey

freem mbuf on input pkt check failure


# 1.7 01-Apr-2002 mickey

killed a char accidentally


# 1.6 01-Apr-2002 mickey

need to splsoftclock here too, i think i've got 'em all now


# 1.5 30-Mar-2002 mickey

kill lots of space and insert some more for knf


# 1.4 29-Mar-2002 millert

i_nwid is not a NUL-terminated string, it is length bounded.


# 1.3 28-Mar-2002 mickey

put the protos and spls in place


# 1.2 28-Mar-2002 mickey

missing timeout add and del; some minor api change


# 1.1 28-Mar-2002 mickey

basic host-ap implementation, more work is needed; from Thomas Skibo <skibo@pacbell.net>; millert@ ok