patches for if_iwi and wlan for WEP mode
Bernhard Schmidt
bschmidt at freebsd.org
Mon Mar 5 22:41:02 UTC 2012
On Monday 05 March 2012 18:42:12 Mitsuru IWASAKI wrote:
> Hi,
>
> I've fixed iwi(4) so that Intel(R) PRO/Wireless 2915ABG work
> in WEP mode, which seems to be broken since 8.0-RELEASE.
>
> The patches against HEAD at:
> http://people.freebsd.org/~iwasaki/iwi/iwi-20120305.diff
>
> I'm not sure that changes on ieee80211 layer are right fixes,
> but all of mbufs were discarded in ieee80211_start() in WEP mode.
>
> ----
> void
> ieee80211_start(struct ifnet *ifp)
> {
> [snip]
> if (ni->ni_associd == 0 &&
> (ni->ni_flags & IEEE80211_NODE_ASSOCID)) {
> IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_OUTPUT,
> eh->ether_dhost, NULL,
> "sta not associated (type 0x%04x)",
> htons(eh->ether_type));
> vap->iv_stats.is_tx_notassoc++;
> ifp->if_oerrors++;
> m_freem(m);
> ieee80211_free_node(ni);
> continue;
> }
> ----
>
> My patches set IEEE80211_NODE_ASSOCID bit only if ni->ni_associd
> is set. Any suggestions on this part are welcome.
Are you sure the net80211 part is correct? It looks to me as if you
are just masking the real issue. The IEEE80211_NODE_ASSOCID flag is
ment to be used to verify that an associd has actually been set, not
doing so will break other things I guess. iwi(4) is a bit tricky in
that regard, as it sets the associd itself, check iwi_checkforqos().
I'd verify that function is actually called and if so if the parameters
are correct. I fumbled around there once, might have wrong WEP..
> I'm going to commit the changes coming weekend.
What's the reason behing adding if_qflush()/if_transmit()?
--
Bernhard
More information about the freebsd-current
mailing list