diff options
author | 2005-02-25 12:18:27 +0000 | |
---|---|---|
committer | 2005-02-25 12:18:27 +0000 | |
commit | 22fed057412dd033c768cd22daa7c289fe8b5213 (patch) | |
tree | e188a5e8c7d7f25f5acb73b2019a085229293056 | |
parent | sync (diff) | |
download | wireguard-openbsd-22fed057412dd033c768cd22daa7c289fe8b5213.tar.xz wireguard-openbsd-22fed057412dd033c768cd22daa7c289fe8b5213.zip |
Add support for software WEP.
Pointers from and ok damien@
-rw-r--r-- | sys/dev/ic/rtw.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/dev/ic/rtw.c b/sys/dev/ic/rtw.c index 7fd4c8ab7e2..891b696c209 100644 --- a/sys/dev/ic/rtw.c +++ b/sys/dev/ic/rtw.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rtw.c,v 1.19 2005/02/22 09:16:51 jsg Exp $ */ +/* $OpenBSD: rtw.c,v 1.20 2005/02/25 12:18:27 jsg Exp $ */ /* $NetBSD: rtw.c,v 1.29 2004/12/27 19:49:16 dyoung Exp $ */ /*- * Copyright (c) 2004, 2005 David Young. All rights reserved. @@ -2881,6 +2881,13 @@ rtw_dequeue(struct ifnet *ifp, struct rtw_txsoft_blk **tsbp, ifp->if_oerrors++; return -1; } + + /* XXX should do WEP in hardware */ + if (sc->sc_ic.ic_flags & IEEE80211_F_WEPON) { + if ((m0 = ieee80211_wep_crypt(ifp, m0, 1)) == NULL) + return -1; + } + DPRINTF(sc, RTW_DEBUG_XMIT, ("%s: leave\n", __func__)); *mp = m0; return 0; @@ -3061,11 +3068,8 @@ rtw_start(struct ifnet *ifp) break; } - if ((wh->i_fc[1] & IEEE80211_FC1_WEP) != 0) - ctl0 |= LSHIFT(sc->sc_txkey, RTW_TXCTL0_KEYID_MASK); - if (ieee80211_compute_duration(wh, m0->m_pkthdr.len, - ic->ic_flags, ic->ic_fragthreshold, + ic->ic_flags & ~IEEE80211_F_WEPON, ic->ic_fragthreshold, rate, &ts->ts_d0, &ts->ts_dn, &npkt, (sc->sc_if.if_flags & (IFF_DEBUG|IFF_LINK2)) == (IFF_DEBUG|IFF_LINK2)) == -1) { |