Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
mesh.c File Reference
#include <linux/slab.h>
#include <asm/unaligned.h>
#include "ieee80211_i.h"
#include "mesh.h"

Go to the source code of this file.

Macros

#define TMR_RUNNING_HK   0
 
#define TMR_RUNNING_MP   1
 
#define TMR_RUNNING_MPR   2
 

Functions

bool mesh_action_is_path_sel (struct ieee80211_mgmt *mgmt)
 
void ieee80211s_init (void)
 
void ieee80211s_stop (void)
 
bool mesh_matches_local (struct ieee80211_sub_if_data *sdata, struct ieee802_11_elems *ie)
 
bool mesh_peer_accepts_plinks (struct ieee802_11_elems *ie)
 
u32 mesh_accept_plinks_update (struct ieee80211_sub_if_data *sdata)
 
int mesh_rmc_init (struct ieee80211_sub_if_data *sdata)
 
void mesh_rmc_free (struct ieee80211_sub_if_data *sdata)
 
int mesh_rmc_check (u8 *sa, struct ieee80211s_hdr *mesh_hdr, struct ieee80211_sub_if_data *sdata)
 
int mesh_add_meshconf_ie (struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
 
int mesh_add_meshid_ie (struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
 
int mesh_add_vendor_ies (struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
 
int mesh_add_rsn_ie (struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
 
int mesh_add_ds_params_ie (struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
 
int mesh_add_ht_cap_ie (struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
 
int mesh_add_ht_oper_ie (struct sk_buff *skb, struct ieee80211_sub_if_data *sdata)
 
void ieee80211_mesh_root_setup (struct ieee80211_if_mesh *ifmsh)
 
int ieee80211_fill_mesh_addresses (struct ieee80211_hdr *hdr, __le16 *fc, const u8 *meshda, const u8 *meshsa)
 
int ieee80211_new_mesh_header (struct ieee80211s_hdr *meshhdr, struct ieee80211_sub_if_data *sdata, char *addr4or5, char *addr6)
 
void ieee80211_start_mesh (struct ieee80211_sub_if_data *sdata)
 
void ieee80211_stop_mesh (struct ieee80211_sub_if_data *sdata)
 
void ieee80211_mesh_rx_queued_mgmt (struct ieee80211_sub_if_data *sdata, struct sk_buff *skb)
 
void ieee80211_mesh_work (struct ieee80211_sub_if_data *sdata)
 
void ieee80211_mesh_notify_scan_completed (struct ieee80211_local *local)
 
void ieee80211_mesh_init_sdata (struct ieee80211_sub_if_data *sdata)
 

Variables

int mesh_allocated
 

Macro Definition Documentation

#define TMR_RUNNING_HK   0

Definition at line 16 of file mesh.c.

#define TMR_RUNNING_MP   1

Definition at line 17 of file mesh.c.

#define TMR_RUNNING_MPR   2

Definition at line 18 of file mesh.c.

Function Documentation

int ieee80211_fill_mesh_addresses ( struct ieee80211_hdr hdr,
__le16 fc,
const u8 meshda,
const u8 meshsa 
)

ieee80211_fill_mesh_addresses - fill addresses of a locally originated mesh frame : 802.11 frame header : frame control field : destination address in the mesh : source address address in the mesh. Same as TA, as frame is locally originated.

Return the length of the 802.11 (does not include a mesh control header)

Definition at line 473 of file mesh.c.

void ieee80211_mesh_init_sdata ( struct ieee80211_sub_if_data sdata)

Definition at line 787 of file mesh.c.

void ieee80211_mesh_notify_scan_completed ( struct ieee80211_local local)

Definition at line 776 of file mesh.c.

void ieee80211_mesh_root_setup ( struct ieee80211_if_mesh ifmsh)

Definition at line 452 of file mesh.c.

void ieee80211_mesh_rx_queued_mgmt ( struct ieee80211_sub_if_data sdata,
struct sk_buff skb 
)

Definition at line 728 of file mesh.c.

void ieee80211_mesh_work ( struct ieee80211_sub_if_data sdata)

Definition at line 751 of file mesh.c.

int ieee80211_new_mesh_header ( struct ieee80211s_hdr meshhdr,
struct ieee80211_sub_if_data sdata,
char addr4or5,
char addr6 
)

ieee80211_new_mesh_header - create a new mesh header : uninitialized mesh header : mesh interface to be used : 1st address in the ae header, which may correspond to address 4 (if addr6 is NULL) or address 5 (if addr6 is present). It may be NULL. : 2nd address in the ae header, which corresponds to addr6 of the mesh frame

Return the header length.

Definition at line 506 of file mesh.c.

void ieee80211_start_mesh ( struct ieee80211_sub_if_data sdata)

Definition at line 589 of file mesh.c.

void ieee80211_stop_mesh ( struct ieee80211_sub_if_data sdata)

Definition at line 623 of file mesh.c.

void ieee80211s_init ( void  )

Definition at line 34 of file mesh.c.

void ieee80211s_stop ( void  )

Definition at line 42 of file mesh.c.

u32 mesh_accept_plinks_update ( struct ieee80211_sub_if_data sdata)

mesh_accept_plinks_update - update accepting_plink in local mesh beacons

: mesh interface in which mesh beacons are going to be updated

Returns: beacon changed flag if the beacon content changed.

Definition at line 142 of file mesh.c.

bool mesh_action_is_path_sel ( struct ieee80211_mgmt mgmt)

Definition at line 30 of file mesh.c.

int mesh_add_ds_params_ie ( struct sk_buff skb,
struct ieee80211_sub_if_data sdata 
)

Definition at line 353 of file mesh.c.

int mesh_add_ht_cap_ie ( struct sk_buff skb,
struct ieee80211_sub_if_data sdata 
)

Definition at line 375 of file mesh.c.

int mesh_add_ht_oper_ie ( struct sk_buff skb,
struct ieee80211_sub_if_data sdata 
)

Definition at line 396 of file mesh.c.

int mesh_add_meshconf_ie ( struct sk_buff skb,
struct ieee80211_sub_if_data sdata 
)

Definition at line 243 of file mesh.c.

int mesh_add_meshid_ie ( struct sk_buff skb,
struct ieee80211_sub_if_data sdata 
)

Definition at line 283 of file mesh.c.

int mesh_add_rsn_ie ( struct sk_buff skb,
struct ieee80211_sub_if_data sdata 
)

Definition at line 325 of file mesh.c.

int mesh_add_vendor_ies ( struct sk_buff skb,
struct ieee80211_sub_if_data sdata 
)

Definition at line 301 of file mesh.c.

bool mesh_matches_local ( struct ieee80211_sub_if_data sdata,
struct ieee802_11_elems ie 
)

mesh_matches_local - check if the config of a mesh point matches ours

: local mesh subif : information elements of a management frame from the mesh peer

This function checks if the mesh configuration of a mesh point matches the local mesh configuration, i.e. if both nodes belong to the same mesh network.

Definition at line 73 of file mesh.c.

bool mesh_peer_accepts_plinks ( struct ieee802_11_elems ie)

mesh_peer_accepts_plinks - check if an mp is willing to establish peer links

: information elements of a management frame from the mesh peer

Definition at line 129 of file mesh.c.

int mesh_rmc_check ( u8 sa,
struct ieee80211s_hdr mesh_hdr,
struct ieee80211_sub_if_data sdata 
)

mesh_rmc_check - Check frame in recent multicast cache and add if absent.

See Also
: source address : mesh_header

Returns: 0 if the frame is not in the cache, nonzero otherwise.

Checks using the source address and the mesh sequence number if we have received this frame lately. If the frame is not in the cache, it is added to it.

Definition at line 207 of file mesh.c.

void mesh_rmc_free ( struct ieee80211_sub_if_data sdata)

Definition at line 176 of file mesh.c.

int mesh_rmc_init ( struct ieee80211_sub_if_data sdata)

Definition at line 163 of file mesh.c.

Variable Documentation

int mesh_allocated

Definition at line 20 of file mesh.c.