Update net80211 mesh struct ieee80211_meshgann_ie.

* Change all field prefix from pann_ to gann_;
* Added IEEE80211_MESHGANN_BASE_SZ macro to be used in the length field
  of a GANN frame according to 802.11 standard;
* Changed gann_seq field type to uint32_t;
* Added a Gate Announcement interval field according to
  IEEE802.11 2012 standard;
* Added IEEE80211_MESHRT_FLAGS_GATE as flag bit to ieee80211_mesh_route;
* Added IEEE80211_MESHRT_FLAGS_GATE as flag bit to ieee80211req_mesh_route;

Approved by:	adrian (mentor)
This commit is contained in:
Monthadar Al Jaberi 2013-02-07 21:20:28 +00:00
parent 40c44a6bb5
commit e1373e86c4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=246501
2 changed files with 15 additions and 7 deletions

View File

@ -342,6 +342,7 @@ struct ieee80211req_mesh_route {
#define IEEE80211_MESHRT_FLAGS_DISCOVER 0x01
#define IEEE80211_MESHRT_FLAGS_VALID 0x02
#define IEEE80211_MESHRT_FLAGS_PROXY 0x04
#define IEEE80211_MESHRT_FLAGS_GATE 0x08
uint8_t imr_dest[IEEE80211_ADDR_LEN];
uint8_t imr_nexthop[IEEE80211_ADDR_LEN];
uint16_t imr_nhops;

View File

@ -194,14 +194,20 @@ struct ieee80211_meshbeacont_ie {
#endif
/* Gate (GANN) Annoucement */
/*
* NB: these macros used for the length in the IEs does not include 2 bytes
* for _ie and _len fields as is defined by the standard.
*/
#define IEEE80211_MESHGANN_BASE_SZ (15)
struct ieee80211_meshgann_ie {
uint8_t pann_ie; /* IEEE80211_ELEMID_MESHGANN */
uint8_t pann_len;
uint8_t pann_flags;
uint8_t pann_hopcount;
uint8_t pann_ttl;
uint8_t pann_addr[IEEE80211_ADDR_LEN];
uint8_t pann_seq; /* PANN Sequence Number */
uint8_t gann_ie; /* IEEE80211_ELEMID_MESHGANN */
uint8_t gann_len;
uint8_t gann_flags;
uint8_t gann_hopcount;
uint8_t gann_ttl;
uint8_t gann_addr[IEEE80211_ADDR_LEN];
uint32_t gann_seq; /* GANN Sequence Number */
uint16_t gann_interval; /* GANN Interval */
} __packed;
/* Root (MP) Annoucement */
@ -423,6 +429,7 @@ struct ieee80211_mesh_route {
#define IEEE80211_MESHRT_FLAGS_DISCOVER 0x01 /* path discovery */
#define IEEE80211_MESHRT_FLAGS_VALID 0x02 /* path discovery complete */
#define IEEE80211_MESHRT_FLAGS_PROXY 0x04 /* proxy entry */
#define IEEE80211_MESHRT_FLAGS_GATE 0x08 /* mesh gate entry */
uint32_t rt_lifetime; /* route timeout */
uint32_t rt_lastmseq; /* last seq# seen dest */
uint32_t rt_ext_seq; /* proxy seq number */