Changeset 1706

Show
Ignore:
Timestamp:
09/03/06 06:39:21 (2 years ago)
Author:
mentor
Message:

Set the MORE DATA bit correctly on all multicast packets that have been stored for transmission after a beacon.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ath/if_ath.c

    r1702 r1706  
    39543954         *     beacons, then drain the cabq by dropping all the frames in 
    39553955         *     the cabq so that the current vaps cab traffic can be scheduled. 
     3956         * XXX: Need to handle the last MORE_DATA bit here. 
    39563957         */ 
    39573958        if (ncabq && (avp->av_boff.bo_tim[4] & 1) && sc->sc_cabq->axq_depth) { 
     
    39813982                 * Move everything from the vap's mcast queue  
    39823983                 * to the hardware cab queue. 
    3983                  * XXX MORE_DATA bit? 
    39843984                 */ 
    39853985                ATH_TXQ_LOCK(&avp->av_mcastq); 
     
    39963996#endif 
    39973997                } 
     3998 
     3999                /* Set the MORE_DATA bit for each packet except the last one */ 
     4000                STAILQ_FOREACH(bfmcast, &avp->av_mcastq.axq_q, bf_list) { 
     4001                        if (bfmcast != STAILQ_LAST(&avp->av_mcastq.axq_q, ath_buf, bf_list)) 
     4002                                ((struct ieee80211_frame *)bfmcast->bf_skb->data)->i_fc[1] |= IEEE80211_FC1_MORE_DATA; 
     4003                } 
     4004 
    39984005                /* append the private vap mcast list to  the cabq */ 
    39994006                ATH_TXQ_MOVE_MCASTQ(&avp->av_mcastq, cabq);