Ticket #1032: shpreamble-r1823.2.diff

File shpreamble-r1823.2.diff, 3.8 kB (added by jirif, 2 years ago)

the patch #2

  • net80211/ieee80211_ioctl.h

    old new  
    598598        IEEE80211_PARAM_MARKDFS         = 58,   /* mark a dfs interference channel when found */ 
    599599        IEEE80211_PARAM_REGCLASS        = 59,   /* enable regclass ids in country IE */ 
    600600        IEEE80211_PARAM_DROPUNENC_EAPOL = 60,   /* drop unencrypted eapol frames */ 
     601        IEEE80211_PARAM_SHPREAMBLE      = 61,   /* Short Preamble */ 
    601602}; 
    602603 
    603604#define SIOCG80211STATS                 (SIOCDEVPRIVATE+2) 
  • net80211/ieee80211_node.c

    old new  
    18451845                "%s%s%s%s%s%s%s", 
    18461846                newassoc ? "" : "re", 
    18471847                IEEE80211_NODE_AID(ni), 
    1848                 ic->ic_flags & IEEE80211_F_SHPREAMBLE ? "short" : "long", 
     1848                (ic->ic_flags & IEEE80211_F_SHPREAMBLE) && 
     1849                (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE) ? "short" : "long", 
    18491850                ic->ic_flags & IEEE80211_F_SHSLOT ? "short" : "long", 
    18501851                ic->ic_flags & IEEE80211_F_USEPROT ? ", protection" : "", 
    18511852                ni->ni_flags & IEEE80211_NODE_QOS ? ", QoS" : "", 
  • net80211/ieee80211_wireless.c

    old new  
    23692369                        ic->ic_flags &= ~IEEE80211_F_DOTH; 
    23702370                retv = ENETRESET;       /* XXX: need something this drastic? */ 
    23712371                break; 
     2372        case IEEE80211_PARAM_SHPREAMBLE: 
     2373                if (value) { 
     2374                        ic->ic_caps |= IEEE80211_C_SHPREAMBLE; 
     2375                        ic->ic_flags |= IEEE80211_F_SHPREAMBLE; 
     2376                        ic->ic_flags &= ~IEEE80211_F_USEBARKER; 
     2377                } else { 
     2378                        ic->ic_caps &= ~IEEE80211_C_SHPREAMBLE; 
     2379                        ic->ic_flags &= ~IEEE80211_F_SHPREAMBLE; 
     2380                        ic->ic_flags |= IEEE80211_F_USEBARKER; 
     2381                }        
     2382                retv = ENETRESET;       /* requires restart */ 
     2383                break; 
    23722384        case IEEE80211_PARAM_PWRTARGET: 
    23732385                ic->ic_curchanmaxpwr = value; 
    23742386                break; 
     
    27652777        case IEEE80211_PARAM_DOTH: 
    27662778                param[0] = (ic->ic_flags & IEEE80211_F_DOTH) != 0; 
    27672779                break; 
     2780        case IEEE80211_PARAM_SHPREAMBLE: 
     2781                param[0] = (ic->ic_caps & IEEE80211_C_SHPREAMBLE) != 0; 
     2782                break; 
    27682783        case IEEE80211_PARAM_PWRTARGET: 
    27692784                param[0] = ic->ic_curchanmaxpwr; 
    27702785                break; 
     
    50795094          IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "dropunenceapol" }, 
    50805095        { IEEE80211_PARAM_DROPUNENC_EAPOL, 
    50815096          0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "get_dropunencea" }, 
     5097        { IEEE80211_PARAM_SHPREAMBLE, 
     5098          IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "shpreamble" }, 
     5099        { IEEE80211_PARAM_SHPREAMBLE, 
     5100          0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "get_shpreamble" }, 
    50825101        /* 
    50835102         * NB: these should be roamrssi* etc, but iwpriv usurps all 
    50845103         *     strings that start with roam! 
  • net80211/ieee80211_input.c

    old new  
    34693469                 * XXX may need different/additional driver callbacks? 
    34703470                 */ 
    34713471                if (IEEE80211_IS_CHAN_A(ic->ic_curchan) || 
    3472                     (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE)) { 
     3472                    ((ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE) && 
     3473                    (ic->ic_caps & IEEE80211_C_SHPREAMBLE))) { 
    34733474                        ic->ic_flags |= IEEE80211_F_SHPREAMBLE; 
    34743475                        ic->ic_flags &= ~IEEE80211_F_USEBARKER; 
    34753476                } else { 
     
    34943495                IEEE80211_NOTE_MAC(vap, IEEE80211_MSG_ASSOC, wh->i_addr2, 
    34953496                        "%sassoc success: %s preamble, %s slot time%s%s%s%s%s%s%s", 
    34963497                        ISREASSOC(subtype) ? "re" : "", 
    3497                         ic->ic_flags&IEEE80211_F_SHPREAMBLE ? "short" : "long", 
     3498                        (ic->ic_flags&IEEE80211_F_SHPREAMBLE) && 
     3499                        (ni->ni_capinfo & IEEE80211_CAPINFO_SHORT_PREAMBLE) ? "short" : "long", 
    34983500                        ic->ic_flags&IEEE80211_F_SHSLOT ? "short" : "long", 
    34993501                        ic->ic_flags&IEEE80211_F_USEPROT ? ", protection" : "", 
    35003502                        ni->ni_flags & IEEE80211_NODE_QOS ? ", QoS" : "",