aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorChun-Yeow Yeoh <yeohchunyeow@gmail.com>2012-06-13 14:06:07 -0400
committerJohannes Berg <johannes.berg@intel.com>2012-06-14 03:08:56 -0400
commita69cc44fe9ebb806c5f3f8bd83fb4a50ca63647b (patch)
tree47ff88c0dacb8144719a4b6939ed49a5549b52b8 /include
parentac1073a61d73b6277794d2efc872eb7e1b706b5c (diff)
mac80211: implement the proactive PREQ generation
Generate the proactive PREQ element as defined in Sec. 13.10.9.3 (Case C) of IEEE Std. 802.11-2012 based on the selection of dot11MeshHWMPRootMode as follow: dot11MeshHWMPRootMode (2) is proactivePREQnoPREP dot11MeshHWMPRootMode (3) is proactivePREQwithPREP The proactive PREQ is generated based on the interval defined by dot11MeshHWMProotInterval. With this change, proactive RANN element is now generated if the dot11MeshHWMPRootMode is set to (4) instead of (1). Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com> [line-break commit log] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/ieee80211.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 98c86ff657bb..6e0601189db9 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -568,6 +568,26 @@ struct ieee80211s_hdr {
568#define MESH_FLAGS_PS_DEEP 0x4 568#define MESH_FLAGS_PS_DEEP 0x4
569 569
570/** 570/**
571 * enum ieee80211_preq_flags - mesh PREQ element flags
572 *
573 * @IEEE80211_PREQ_PROACTIVE_PREP_FLAG: proactive PREP subfield
574 */
575enum ieee80211_preq_flags {
576 IEEE80211_PREQ_PROACTIVE_PREP_FLAG = 1<<2,
577};
578
579/**
580 * enum ieee80211_preq_target_flags - mesh PREQ element per target flags
581 *
582 * @IEEE80211_PREQ_TO_FLAG: target only subfield
583 * @IEEE80211_PREQ_USN_FLAG: unknown target HWMP sequence number subfield
584 */
585enum ieee80211_preq_target_flags {
586 IEEE80211_PREQ_TO_FLAG = 1<<0,
587 IEEE80211_PREQ_USN_FLAG = 1<<2,
588};
589
590/**
571 * struct ieee80211_quiet_ie 591 * struct ieee80211_quiet_ie
572 * 592 *
573 * This structure refers to "Quiet information element" 593 * This structure refers to "Quiet information element"
@@ -1474,6 +1494,28 @@ enum {
1474 IEEE80211_PATH_METRIC_VENDOR = 255, 1494 IEEE80211_PATH_METRIC_VENDOR = 255,
1475}; 1495};
1476 1496
1497/**
1498 * enum ieee80211_root_mode_identifier - root mesh STA mode identifier
1499 *
1500 * These attribute are used by dot11MeshHWMPRootMode to set root mesh STA mode
1501 *
1502 * @IEEE80211_ROOTMODE_NO_ROOT: the mesh STA is not a root mesh STA (default)
1503 * @IEEE80211_ROOTMODE_ROOT: the mesh STA is a root mesh STA if greater than
1504 * this value
1505 * @IEEE80211_PROACTIVE_PREQ_NO_PREP: the mesh STA is a root mesh STA supports
1506 * the proactive PREQ with proactive PREP subfield set to 0
1507 * @IEEE80211_PROACTIVE_PREQ_WITH_PREP: the mesh STA is a root mesh STA
1508 * supports the proactive PREQ with proactive PREP subfield set to 1
1509 * @IEEE80211_PROACTIVE_RANN: the mesh STA is a root mesh STA supports
1510 * the proactive RANN
1511 */
1512enum ieee80211_root_mode_identifier {
1513 IEEE80211_ROOTMODE_NO_ROOT = 0,
1514 IEEE80211_ROOTMODE_ROOT = 1,
1515 IEEE80211_PROACTIVE_PREQ_NO_PREP = 2,
1516 IEEE80211_PROACTIVE_PREQ_WITH_PREP = 3,
1517 IEEE80211_PROACTIVE_RANN = 4,
1518};
1477 1519
1478/* 1520/*
1479 * IEEE 802.11-2007 7.3.2.9 Country information element 1521 * IEEE 802.11-2007 7.3.2.9 Country information element