[email protected]
[Top] [All Lists]

PERFORCE change 114517 for review

Subject: PERFORCE change 114517 for review
From: Sam Leffler
Date: Wed, 14 Feb 2007 23:01:26 GMT
http://perforce.freebsd.org/chv.cgi?CH=114517

Change 114517 by [email protected]_ebb on 2007/02/14 23:01:14

        Introduce IEEE80211_NONQOS_TID as the index in the tx/rx
        sequence number arrays for non-QoS traffic and define it
        to be the last entry.  This insures we don't collide with
        QoS usage though the spec says you're not allowed to mix
        QoS and non-QoS traffic.
        Obtained from:  Atheros

Affected files ...

.. //depot/projects/wifi/sys/net80211/ieee80211_input.c#85 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#66 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_node.c#81 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_node.h#40 edit
.. //depot/projects/wifi/sys/net80211/ieee80211_output.c#64 edit

Differences ...

==== //depot/projects/wifi/sys/net80211/ieee80211_input.c#85 (text+ko) ====

@@ -232,7 +232,7 @@
                                        ic->ic_wme.wme_hipri_traffic++;
                                tid++;
                        } else
-                               tid = 0;
+                               tid = IEEE80211_NONQOS_TID;
                        rxseq = le16toh(*(u_int16_t *)wh->i_seq);
                        if ((wh->i_fc[1] & IEEE80211_FC1_RETRY) &&
                            SEQ_LEQ(rxseq, ni->ni_rxseqs[tid])) {

==== //depot/projects/wifi/sys/net80211/ieee80211_ioctl.c#66 (text+ko) ====

@@ -590,8 +590,8 @@
                memcpy(si->isi_txseqs, ni->ni_txseqs, sizeof(ni->ni_txseqs));
                memcpy(si->isi_rxseqs, ni->ni_rxseqs, sizeof(ni->ni_rxseqs));
        } else {
-               si->isi_txseqs[0] = ni->ni_txseqs[0];
-               si->isi_rxseqs[0] = ni->ni_rxseqs[0];
+               si->isi_txseqs[0] = ni->ni_txseqs[IEEE80211_NONQOS_TID];
+               si->isi_rxseqs[0] = ni->ni_rxseqs[IEEE80211_NONQOS_TID];
        }
        /* NB: leave all cases in case we relax ni_associd == 0 check */
        if (ieee80211_node_is_authorized(ni))

==== //depot/projects/wifi/sys/net80211/ieee80211_node.c#81 (text+ko) ====

@@ -1584,9 +1584,9 @@
        printf("\tassocid 0x%x txpower %u vlan %u\n",
                ni->ni_associd, ni->ni_txpower, ni->ni_vlan);
        printf("\ttxseq %u rxseq %u fragno %u rxfragstamp %u\n",
-               ni->ni_txseqs[0],
-               ni->ni_rxseqs[0] >> IEEE80211_SEQ_SEQ_SHIFT,
-               ni->ni_rxseqs[0] & IEEE80211_SEQ_FRAG_MASK,
+               ni->ni_txseqs[IEEE80211_NONQOS_TID],
+               ni->ni_rxseqs[IEEE80211_NONQOS_TID] >> IEEE80211_SEQ_SEQ_SHIFT,
+               ni->ni_rxseqs[IEEE80211_NONQOS_TID] & IEEE80211_SEQ_FRAG_MASK,
                ni->ni_rxfragstamp);
        printf("\trstamp %u rssi %d noise %d intval %u capinfo 0x%x\n",
                ni->ni_rstamp, ni->ni_rssi, ni->ni_noise,

==== //depot/projects/wifi/sys/net80211/ieee80211_node.h#40 (text+ko) ====

@@ -119,6 +119,7 @@
        u_int8_t                *ni_rsn_ie;     /* captured RSN ie */
        u_int8_t                *ni_wme_ie;     /* captured WME ie */
        u_int8_t                *ni_ath_ie;     /* captured Atheros ie */
+#define        IEEE80211_NONQOS_TID    16              /* index for non-QoS 
sta */
        u_int16_t               ni_txseqs[17];  /* tx seq per-tid */
        u_int16_t               ni_rxseqs[17];  /* rx seq previous per-tid*/
        u_int32_t               ni_rxfragstamp; /* time stamp of last rx frag */

==== //depot/projects/wifi/sys/net80211/ieee80211_output.c#64 (text+ko) ====

@@ -143,8 +143,8 @@
        *(u_int16_t *)&wh->i_dur[0] = 0;
        /* NB: use non-QoS tid */
        *(u_int16_t *)&wh->i_seq[0] =
-           htole16(ni->ni_txseqs[0] << IEEE80211_SEQ_SEQ_SHIFT);
-       ni->ni_txseqs[0]++;
+           htole16(ni->ni_txseqs[IEEE80211_NONQOS_TID] << 
IEEE80211_SEQ_SEQ_SHIFT);
+       ni->ni_txseqs[IEEE80211_NONQOS_TID]++;
 #undef WH4
 }
 
@@ -807,8 +807,8 @@
                ni->ni_txseqs[tid]++;
        } else {
                *(u_int16_t *)wh->i_seq =
-                   htole16(ni->ni_txseqs[0] << IEEE80211_SEQ_SEQ_SHIFT);
-               ni->ni_txseqs[0]++;
+                   htole16(ni->ni_txseqs[IEEE80211_NONQOS_TID] << 
IEEE80211_SEQ_SEQ_SHIFT);
+               ni->ni_txseqs[IEEE80211_NONQOS_TID]++;
        }
        /* check if xmit fragmentation is required */
        txfrag = (m->m_pkthdr.len > ic->ic_fragthreshold &&
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/p4-projects
To unsubscribe, send any mail to "[email protected]"

<Prev in Thread] Current Thread [Next in Thread>
  • PERFORCE change 114517 for review, Sam Leffler <=