aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211/ieee80211_ioctl.c
diff options
context:
space:
mode:
authorSam Leffler <sam@FreeBSD.org>2009-04-26 23:11:22 +0000
committerSam Leffler <sam@FreeBSD.org>2009-04-26 23:11:22 +0000
commitf2a6a13c3b215ee8d0e59208fdaae028c197a4c0 (patch)
treea0bf2cdf5a730707c3ac044fc4085f0c36bacc05 /sys/net80211/ieee80211_ioctl.c
parent0510acbded03f2ab85e87635515dc96498cc65be (diff)
downloadsrc-f2a6a13c3b215ee8d0e59208fdaae028c197a4c0.tar.gz
src-f2a6a13c3b215ee8d0e59208fdaae028c197a4c0.zip
add IEEE80211_FEXT_4ADDR to indicate ieee80211_encap should do 4-address
encapsulation when relaying frames; this reduces the cost of the test and enables use for situations other than "sta vap + dwds"
Notes
Notes: svn path=/head/; revision=191555
Diffstat (limited to 'sys/net80211/ieee80211_ioctl.c')
-rw-r--r--sys/net80211/ieee80211_ioctl.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index 4e018cb03717..b28dffa344fa 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -3048,8 +3048,13 @@ ieee80211_ioctl_set80211(struct ieee80211vap *vap, u_long cmd, struct ieee80211r
vap->iv_opmode != IEEE80211_M_STA)
return EINVAL;
vap->iv_flags |= IEEE80211_F_DWDS;
- } else
+ if (vap->iv_opmode == IEEE80211_M_STA)
+ vap->iv_flags_ext |= IEEE80211_FEXT_4ADDR;
+ } else {
vap->iv_flags &= ~IEEE80211_F_DWDS;
+ if (vap->iv_opmode == IEEE80211_M_STA)
+ vap->iv_flags_ext &= ~IEEE80211_FEXT_4ADDR;
+ }
break;
case IEEE80211_IOC_INACTIVITY:
if (ireq->i_val)