Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
rc80211_minstrel_ht.c File Reference
#include <linux/netdevice.h>
#include <linux/types.h>
#include <linux/skbuff.h>
#include <linux/debugfs.h>
#include <linux/random.h>
#include <linux/ieee80211.h>
#include <net/mac80211.h>
#include "rate.h"
#include "rc80211_minstrel.h"
#include "rc80211_minstrel_ht.h"

Go to the source code of this file.

Macros

#define AVG_PKT_SIZE   1200
 
#define SAMPLE_COLUMNS   10
 
#define EWMA_LEVEL   75
 
#define MCS_NBITS   (AVG_PKT_SIZE << 3)
 
#define MCS_NSYMS(bps)   ((MCS_NBITS + (bps) - 1) / (bps))
 
#define MCS_SYMBOL_TIME(sgi, syms)
 
#define MCS_DURATION(streams, sgi, bps)   MCS_SYMBOL_TIME(sgi, MCS_NSYMS((streams) * (bps)))
 
#define GROUP_IDX(_streams, _sgi, _ht40)
 
#define MCS_GROUP(_streams, _sgi, _ht40)
 

Functions

int __init rc80211_minstrel_ht_init (void)
 
void rc80211_minstrel_ht_exit (void)
 

Variables

struct mcs_group minstrel_mcs_groups []
 

Macro Definition Documentation

#define AVG_PKT_SIZE   1200

Definition at line 19 of file rc80211_minstrel_ht.c.

#define EWMA_LEVEL   75

Definition at line 21 of file rc80211_minstrel_ht.c.

#define GROUP_IDX (   _streams,
  _sgi,
  _ht40 
)
Value:
MINSTREL_MAX_STREAMS * 2 * _ht40 + \
MINSTREL_MAX_STREAMS * _sgi + \
_streams - 1

Definition at line 42 of file rc80211_minstrel_ht.c.

#define MCS_DURATION (   streams,
  sgi,
  bps 
)    MCS_SYMBOL_TIME(sgi, MCS_NSYMS((streams) * (bps)))

Definition at line 37 of file rc80211_minstrel_ht.c.

#define MCS_GROUP (   _streams,
  _sgi,
  _ht40 
)
Value:
[GROUP_IDX(_streams, _sgi, _ht40)] = { \
.streams = _streams, \
.flags = \
(_sgi ? IEEE80211_TX_RC_SHORT_GI : 0) | \
.duration = { \
MCS_DURATION(_streams, _sgi, _ht40 ? 54 : 26), \
MCS_DURATION(_streams, _sgi, _ht40 ? 108 : 52), \
MCS_DURATION(_streams, _sgi, _ht40 ? 162 : 78), \
MCS_DURATION(_streams, _sgi, _ht40 ? 216 : 104), \
MCS_DURATION(_streams, _sgi, _ht40 ? 324 : 156), \
MCS_DURATION(_streams, _sgi, _ht40 ? 432 : 208), \
MCS_DURATION(_streams, _sgi, _ht40 ? 486 : 234), \
MCS_DURATION(_streams, _sgi, _ht40 ? 540 : 260) \
} \
}

Definition at line 48 of file rc80211_minstrel_ht.c.

#define MCS_NBITS   (AVG_PKT_SIZE << 3)

Definition at line 24 of file rc80211_minstrel_ht.c.

#define MCS_NSYMS (   bps)    ((MCS_NBITS + (bps) - 1) / (bps))

Definition at line 27 of file rc80211_minstrel_ht.c.

#define MCS_SYMBOL_TIME (   sgi,
  syms 
)
Value:
(sgi ? \
((syms) * 18 + 4) / 5 : /* syms * 3.6 us */ \
(syms) << 2 /* syms * 4 us */ \
)

Definition at line 30 of file rc80211_minstrel_ht.c.

#define SAMPLE_COLUMNS   10

Definition at line 20 of file rc80211_minstrel_ht.c.

Function Documentation

void rc80211_minstrel_ht_exit ( void  )

Definition at line 904 of file rc80211_minstrel_ht.c.

int __init rc80211_minstrel_ht_init ( void  )

Definition at line 897 of file rc80211_minstrel_ht.c.

Variable Documentation

struct mcs_group minstrel_mcs_groups[]
Initial value:
= {
MCS_GROUP(1, 0, 0),
MCS_GROUP(2, 0, 0),
MCS_GROUP(3, 0, 0),
MCS_GROUP(1, 1, 0),
MCS_GROUP(2, 1, 0),
MCS_GROUP(3, 1, 0),
MCS_GROUP(1, 0, 1),
MCS_GROUP(2, 0, 1),
MCS_GROUP(3, 0, 1),
MCS_GROUP(1, 1, 1),
MCS_GROUP(2, 1, 1),
MCS_GROUP(3, 1, 1),
}

Definition at line 74 of file rc80211_minstrel_ht.c.