#
a000d7c2 |
| 11-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
expose IEEE80211_DISCARD, IEEE80211_DISCARD_IE, and IEEE80211_DISCARD_MAC so they can be used within net80211 but outside ieee80211_input.c
MFC after: 2 weeks
|
#
ca700860 |
| 11-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
improve debug msg for ie's that are too short
MFC after: 2 weeks
|
#
801df4a5 |
| 11-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
keep tx/rx seq #'s for non-QoS traffic separate from QoS; stations aren't supposed mix traffic but if they did frames might be mis-handled
Obtained from: Atheros MFC after: 2 weeks
|
#
0adf0a3b |
| 11-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
split check for rate set mismatch on assoc req away from check for pure 11g mode so we can give meaningful diagnostic msgs
MFC after: 2 weeks
|
#
9672f023 |
| 11-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
disallow re-associate with a slot time mismatch
Obtained from: Atheros MFC after: 2 weeks
|
#
f597faba |
| 11-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
move __inline before type to appease gcc 4.x
Obtained from: netbsd
|
#
b265ac32 |
| 11-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
discard deauth+disassoc frames that are not destined for us; these can be received when the interface is in promisc mode
Reviewed by: sephe Obtained from: netbsd
|
#
3c419c1b |
| 07-Mar-2007 |
Sam Leffler <sam@FreeBSD.org> |
When dispatching frames saved on the power save queue to a station exiting power save mode prepend them to the driver's send q instead of appending them. This insures the packets are not misordered
When dispatching frames saved on the power save queue to a station exiting power save mode prepend them to the driver's send q instead of appending them. This insures the packets are not misordered wrt any packets already q'd for the station.
This corrects a problem noticed when using a VoIP phone talking to an ath card in ap mode; the misordered packets caused noise.
Submitted by: "J.R. Oldroyd" <jr@opal.com> MFC after: 2 weeks
show more ...
|
#
f3b179a4 |
| 04-Feb-2007 |
Sam Leffler <sam@FreeBSD.org> |
clear/reclaim challenge text when switching auth mode and operating as an ap
Obtained from: Atheros
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
79edaebf |
| 08-Jan-2007 |
Sam Leffler <sam@FreeBSD.org> |
Correct several issues with rate set negotiation: o add IEEE80211_F_JOIN flag to ieee80211_fix_rate to indicate a station is joining a BSS; this is used to control whether or not we over-write th
Correct several issues with rate set negotiation: o add IEEE80211_F_JOIN flag to ieee80211_fix_rate to indicate a station is joining a BSS; this is used to control whether or not we over-write the basic rate bit in the calculated rate set o fix ieee80211_fix_rate to honor IEEE80211_F_DODEL when IEEE80211_F_DONEGO is not specified (e.g. when joining an ibss network) o on sta join always delete unusable rates from the negotiated rate set, this was being done only ibss networks but is also needed for 11g bss with mixed stations o on sta join delete unusable rates from the bss node's rate set, not the scan table entry's rate set o when calculating a rate set for new neighbors in an ibss caculate a negotiated rate set so drivers are not presented with rates they should not use
Submitted by: Sepherosa Ziehau (w/ modifications) Obtained from: DragonFly MFC after: 1 month
show more ...
|
#
ab96db10 |
| 01-Dec-2006 |
Sam Leffler <sam@FreeBSD.org> |
back out use of LLC_SNAPFRAMELEN now that sizeof(struct llc) isn't padded on arm
|
#
8c86f43d |
| 01-Dec-2006 |
Sam Leffler <sam@FreeBSD.org> |
sizeof(struct llc) includes padding on arm; use LLC_SNAPFRAMELEN for now
Submitted by: jhay MFC after: 2 weeks
|
#
78ba57b9 |
| 17-Sep-2006 |
Andre Oppermann <andre@FreeBSD.org> |
Move ethernet VLAN tags from mtags to its own mbuf packet header field m_pkthdr.ether_vlan. The presence of the M_VLANTAG flag on the mbuf signifies the presence and validity of its content.
Driver
Move ethernet VLAN tags from mtags to its own mbuf packet header field m_pkthdr.ether_vlan. The presence of the M_VLANTAG flag on the mbuf signifies the presence and validity of its content.
Drivers that support hardware VLAN tag stripping fill in the received VLAN tag (containing both vlan and priority information) into the ether_vtag mbuf packet header field:
m->m_pkthdr.ether_vtag = vlan_id; /* ntohs()? */ m->m_flags |= M_VLANTAG;
to mark the packet m with the specified VLAN tag.
On output the driver should check the mbuf for the M_VLANTAG flag to see if a VLAN tag is present and valid:
if (m->m_flags & M_VLANTAG) { ... = m->m_pkthdr.ether_vtag; /* htons()? */ ... pass tag to hardware ... }
VLAN tags are stored in host byte order. Byte swapping may be necessary.
(Note: This driver conversion was mechanic and did not add or remove any byte swapping in the drivers.)
Remove zone_mtag_vlan UMA zone and MTAG_VLAN definition. No more tag memory allocation have to be done.
Reviewed by: thompsa, yar Sponsored by: TCP/IP Optimization Fundraise 2005
show more ...
|
#
06efa2f0 |
| 10-Aug-2006 |
Sam Leffler <sam@FreeBSD.org> |
minor fixups: o add some missing stats to the global stat structure o move accounting work for data frame rx into ieee80211_deliver_data o add per-sta stats for rx ucast/mcast frames o set rcvif in i
minor fixups: o add some missing stats to the global stat structure o move accounting work for data frame rx into ieee80211_deliver_data o add per-sta stats for rx ucast/mcast frames o set rcvif in ieee80211_deliver_data so callers don't need to
MFC after: 2 weeks
show more ...
|
#
5eac3ff7 |
| 16-Jul-2006 |
Sam Leffler <sam@FreeBSD.org> |
correct ie length check; need to include fixed part of ie
MFC after: 2 weeks
|
#
70326a6e |
| 16-Jul-2006 |
Sam Leffler <sam@FreeBSD.org> |
tighten invariant on loops used to parse ie's; this ensures we never touch data outside the packet (previously we might touch 1 byte); it also has the happy side effect of working around broken orino
tighten invariant on loops used to parse ie's; this ensures we never touch data outside the packet (previously we might touch 1 byte); it also has the happy side effect of working around broken orinoco/agere firmware that sends malformed association response frames
Help by: Vladimir Egorin
show more ...
|
#
16d878cc |
| 02-Jun-2006 |
Christian S.J. Peron <csjp@FreeBSD.org> |
Fix the following bpf(4) race condition which can result in a panic:
(1) bpf peer attaches to interface netif0 (2) Packet is received by netif0 (3) ifp->if_bpf pointer is checked and handed off t
Fix the following bpf(4) race condition which can result in a panic:
(1) bpf peer attaches to interface netif0 (2) Packet is received by netif0 (3) ifp->if_bpf pointer is checked and handed off to bpf (4) bpf peer detaches from netif0 resulting in ifp->if_bpf being initialized to NULL. (5) ifp->if_bpf is dereferenced by bpf machinery (6) Kaboom
This race condition likely explains the various different kernel panics reported around sending SIGINT to tcpdump or dhclient processes. But really this race can result in kernel panics anywhere you have frequent bpf attach and detach operations with high packet per second load.
Summary of changes:
- Remove the bpf interface's "driverp" member - When we attach bpf interfaces, we now set the ifp->if_bpf member to the bpf interface structure. Once this is done, ifp->if_bpf should never be NULL. [1] - Introduce bpf_peers_present function, an inline operation which will do a lockless read bpf peer list associated with the interface. It should be noted that the bpf code will pickup the bpf_interface lock before adding or removing bpf peers. This should serialize the access to the bpf descriptor list, removing the race. - Expose the bpf_if structure in bpf.h so that the bpf_peers_present function can use it. This also removes the struct bpf_if; hack that was there. - Adjust all consumers of the raw if_bpf structure to use bpf_peers_present
Now what happens is:
(1) Packet is received by netif0 (2) Check to see if bpf descriptor list is empty (3) Pickup the bpf interface lock (4) Hand packet off to process
From the attach/detach side:
(1) Pickup the bpf interface lock (2) Add/remove from bpf descriptor list
Now that we are storing the bpf interface structure with the ifnet, there is is no need to walk the bpf interface list to locate the correct bpf interface. We now simply look up the interface, and initialize the pointer. This has a nice side effect of changing a bpf interface attach operation from O(N) (where N is the number of bpf interfaces), to O(1).
[1] From now on, we can no longer check ifp->if_bpf to tell us whether or not we have any bpf peers that might be interested in receiving packets.
In collaboration with: sam@ MFC after: 1 month
show more ...
|
Revision tags: release/5.5.0_cvs, release/5.5.0, release/6.1.0_cvs, release/6.1.0 |
|
#
a8eb5364 |
| 07-Mar-2006 |
Sam Leffler <sam@FreeBSD.org> |
use m_dup instead of m_copypacket when doing internal bridging in case packets are modified (e.g. encrypted)
MFC after: 1 week
|
#
66ef3969 |
| 06-Mar-2006 |
Sam Leffler <sam@FreeBSD.org> |
deliver an l2uf frame on sta join to prime the bridge
Obtained from: madwifi MFC after: 1 week
|
#
097131ff |
| 06-Mar-2006 |
Sam Leffler <sam@FreeBSD.org> |
when scanning channels marked passive defer probe request until 802.11 traffic is seen; fixes problems with ap's hiding their ssid
Obtained from: atheros MFC after: 1 week
|
#
e99662a6 |
| 23-Jan-2006 |
Sam Leffler <sam@FreeBSD.org> |
s/w beacon miss facility; need to add knobs to fiddle with the settings
MFC after: 2 weeks
|
#
336ec6a1 |
| 23-Jan-2006 |
Sam Leffler <sam@FreeBSD.org> |
bounds check each ie's length when parsing
Obtained from: madwifi MFC after: 1 week
|
#
d147662c |
| 18-Dec-2005 |
Gleb Smirnoff <glebius@FreeBSD.org> |
- Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in case if memory allocation failed. - Remove fourth argument from VLAN_INPUT_TAG(), that was used incorrectly in almost all drivers. I
- Fix VLAN_INPUT_TAG() macro, so that it doesn't touch mtag in case if memory allocation failed. - Remove fourth argument from VLAN_INPUT_TAG(), that was used incorrectly in almost all drivers. Indicate failure with mbuf value of NULL.
In collaboration with: yongari, ru, sam
show more ...
|
#
e701e041 |
| 12-Dec-2005 |
Sam Leffler <sam@FreeBSD.org> |
Add ieee80211_beacon_miss for processing sta mode beacon miss events in the 802.11 layer: we send a directed probe request frame to the current ap bmiss_max times (w/o answer) before scanning for a n
Add ieee80211_beacon_miss for processing sta mode beacon miss events in the 802.11 layer: we send a directed probe request frame to the current ap bmiss_max times (w/o answer) before scanning for a new ap.
MFC after: 2 weeks
show more ...
|
#
be425a0f |
| 04-Dec-2005 |
Sam Leffler <sam@FreeBSD.org> |
Adhoc mode fixups: o plug memory leak in adhoc mode: on rx the sender may be the current master so simply checking against ic_bss is not enough to identify if the packet comes from an unknown sen
Adhoc mode fixups: o plug memory leak in adhoc mode: on rx the sender may be the current master so simply checking against ic_bss is not enough to identify if the packet comes from an unknown sender; must also check the mac address o split neighbor node creation into two routines and fillin state of nodes faked up on xmit when a beacon or probe response frame is later received; this ensures important state like the rate set and advertised capabilities are correct
Obtained from: netbsd MFC after: 1 week
show more ...
|