Defines | Functions
rx.c File Reference
#include <linux/jiffies.h>
#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/skbuff.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/rcupdate.h>
#include <linux/export.h>
#include <net/mac80211.h>
#include <net/ieee80211_radiotap.h>
#include "ieee80211_i.h"
#include "driver-ops.h"
#include "led.h"
#include "mesh.h"
#include "wep.h"
#include "wpa.h"
#include "tkip.h"
#include "wme.h"
#include "rt_wmp.h"
Include dependency graph for kernel-3.2/rx.c:

Go to the source code of this file.

Defines

#define CALL_RXH(rxh)
#define CALL_RXH(rxh)
#define HT_RX_REORDER_BUF_TIMEOUT   (HZ / 10)
#define SEQ_MASK   0xfff
#define SEQ_MODULO   0x1000

Functions

static int __ieee80211_data_to_8023 (struct ieee80211_rx_data *rx, bool *port_control)
static void __ieee80211_rx_handle_packet (struct ieee80211_hw *hw, struct sk_buff *skb)
static void ap_sta_ps_end (struct sta_info *sta)
static void ap_sta_ps_start (struct sta_info *sta)
 EXPORT_SYMBOL (ieee80211_sta_ps_transition)
 EXPORT_SYMBOL (ieee80211_rx)
 EXPORT_SYMBOL (ieee80211_rx_irqsafe)
static int ieee80211_802_1x_port_control (struct ieee80211_rx_data *rx)
static void ieee80211_add_rx_radiotap_header (struct ieee80211_local *local, struct sk_buff *skb, struct ieee80211_rate *rate, int rtap_len)
static void ieee80211_deliver_skb (struct ieee80211_rx_data *rx)
static int ieee80211_drop_unencrypted (struct ieee80211_rx_data *rx, __le16 fc)
static int ieee80211_drop_unencrypted_mgmt (struct ieee80211_rx_data *rx)
static bool ieee80211_frame_allowed (struct ieee80211_rx_data *rx, __le16 fc)
static int ieee80211_get_mmie_keyidx (struct sk_buff *skb)
static void ieee80211_invoke_rx_handlers (struct ieee80211_rx_data *rx)
static int ieee80211_is_multicast_robust_mgmt_frame (struct sk_buff *skb)
static int ieee80211_is_unicast_robust_mgmt_frame (struct sk_buff *skb)
static void ieee80211_parse_qos (struct ieee80211_rx_data *rx)
static bool ieee80211_prepare_and_rx_handle (struct ieee80211_rx_data *rx, struct sk_buff *skb, bool consume)
static void ieee80211_process_sa_query_req (struct ieee80211_sub_if_data *sdata, struct ieee80211_mgmt *mgmt, size_t len)
static struct
ieee80211_fragment_entry
ieee80211_reassemble_add (struct ieee80211_sub_if_data *sdata, unsigned int frag, unsigned int seq, int rx_queue, struct sk_buff **skb)
static struct
ieee80211_fragment_entry
ieee80211_reassemble_find (struct ieee80211_sub_if_data *sdata, unsigned int frag, unsigned int seq, int rx_queue, struct ieee80211_hdr *hdr)
static void ieee80211_release_reorder_frame (struct ieee80211_hw *hw, struct tid_ampdu_rx *tid_agg_rx, int index)
static void ieee80211_release_reorder_frames (struct ieee80211_hw *hw, struct tid_ampdu_rx *tid_agg_rx, u16 head_seq_num)
void ieee80211_release_reorder_timeout (struct sta_info *sta, int tid)
void ieee80211_rx (struct ieee80211_hw *hw, struct sk_buff *skb)
static void ieee80211_rx_cooked_monitor (struct ieee80211_rx_data *rx, struct ieee80211_rate *rate)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_action (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_action_return (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_amsdu (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_check (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_check_more_data (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_ctrl (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_data (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_decrypt (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_defragment (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_mgmt (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_mgmt_check (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_passive_scan (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_remove_qos_control (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_sta_process (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_uapsd_and_pspoll (struct ieee80211_rx_data *rx)
static ieee80211_rx_result
debug_noinline 
ieee80211_rx_h_userspace_mgmt (struct ieee80211_rx_data *rx)
static void ieee80211_rx_handlers (struct ieee80211_rx_data *rx)
static void ieee80211_rx_handlers_result (struct ieee80211_rx_data *rx, ieee80211_rx_result res)
void ieee80211_rx_irqsafe (struct ieee80211_hw *hw, struct sk_buff *skb)
static ieee80211_rx_result ieee80211_rx_mesh_check (struct ieee80211_rx_data *rx)
static struct sk_buffieee80211_rx_monitor (struct ieee80211_local *local, struct sk_buff *origskb, struct ieee80211_rate *rate)
static int ieee80211_rx_radiotap_len (struct ieee80211_local *local, struct ieee80211_rx_status *status)
static void ieee80211_rx_reorder_ampdu (struct ieee80211_rx_data *rx)
static bool ieee80211_sta_manage_reorder_buf (struct ieee80211_hw *hw, struct tid_ampdu_rx *tid_agg_rx, struct sk_buff *skb)
int ieee80211_sta_ps_transition (struct ieee80211_sta *sta, bool start)
static void ieee80211_sta_reorder_release (struct ieee80211_hw *hw, struct tid_ampdu_rx *tid_agg_rx)
static void ieee80211_verify_alignment (struct ieee80211_rx_data *rx)
static int prepare_for_handlers (struct ieee80211_rx_data *rx, struct ieee80211_hdr *hdr)
static struct sk_buffremove_monitor_info (struct ieee80211_local *local, struct sk_buff *skb)
static u16 seq_inc (u16 sq)
static int seq_less (u16 sq1, u16 sq2)
static u16 seq_sub (u16 sq1, u16 sq2)
static int should_drop_frame (struct sk_buff *skb, int present_fcs_len)

Define Documentation

#define CALL_RXH (   rxh)
Value:
do {                            \
                res = rxh(rx);          \
                if (res != RX_CONTINUE) \
                        goto rxh_next;  \
        } while (0);
#define CALL_RXH (   rxh)
Value:
do {                            \
                res = rxh(rx);          \
                if (res != RX_CONTINUE) \
                        goto rxh_next;  \
        } while (0);
#define HT_RX_REORDER_BUF_TIMEOUT   (HZ / 10)

Definition at line 620 of file kernel-3.2/rx.c.

#define SEQ_MASK   0xfff

Definition at line 554 of file kernel-3.2/rx.c.

#define SEQ_MODULO   0x1000

Definition at line 553 of file kernel-3.2/rx.c.


Function Documentation

static int __ieee80211_data_to_8023 ( struct ieee80211_rx_data rx,
bool *  port_control 
) [static]

Definition at line 1681 of file kernel-3.2/rx.c.

static void __ieee80211_rx_handle_packet ( struct ieee80211_hw *  hw,
struct sk_buff skb 
) [static]

Definition at line 2867 of file kernel-3.2/rx.c.

static void ap_sta_ps_end ( struct sta_info sta) [static]

Definition at line 1146 of file kernel-3.2/rx.c.

static void ap_sta_ps_start ( struct sta_info sta) [static]

Definition at line 1131 of file kernel-3.2/rx.c.

static int ieee80211_802_1x_port_control ( struct ieee80211_rx_data rx) [static]

Definition at line 1594 of file kernel-3.2/rx.c.

static void ieee80211_add_rx_radiotap_header ( struct ieee80211_local local,
struct sk_buff skb,
struct ieee80211_rate rate,
int  rtap_len 
) [static]

Definition at line 102 of file kernel-3.2/rx.c.

static void ieee80211_deliver_skb ( struct ieee80211_rx_data rx) [static]

Definition at line 1750 of file kernel-3.2/rx.c.

static int ieee80211_drop_unencrypted ( struct ieee80211_rx_data rx,
__le16  fc 
) [static]

Definition at line 1604 of file kernel-3.2/rx.c.

static int ieee80211_drop_unencrypted_mgmt ( struct ieee80211_rx_data rx) [static]

Definition at line 1627 of file kernel-3.2/rx.c.

static bool ieee80211_frame_allowed ( struct ieee80211_rx_data rx,
__le16  fc 
) [static]

Definition at line 1723 of file kernel-3.2/rx.c.

static int ieee80211_get_mmie_keyidx ( struct sk_buff skb) [static]

Definition at line 477 of file kernel-3.2/rx.c.

static void ieee80211_invoke_rx_handlers ( struct ieee80211_rx_data rx) [static]

Definition at line 2681 of file kernel-3.2/rx.c.

static int ieee80211_is_multicast_robust_mgmt_frame ( struct sk_buff skb) [static]

Definition at line 465 of file kernel-3.2/rx.c.

static int ieee80211_is_unicast_robust_mgmt_frame ( struct sk_buff skb) [static]

Definition at line 454 of file kernel-3.2/rx.c.

static void ieee80211_parse_qos ( struct ieee80211_rx_data rx) [static]

Definition at line 348 of file kernel-3.2/rx.c.

static bool ieee80211_prepare_and_rx_handle ( struct ieee80211_rx_data rx,
struct sk_buff skb,
bool  consume 
) [static]

Definition at line 2830 of file kernel-3.2/rx.c.

static void ieee80211_process_sa_query_req ( struct ieee80211_sub_if_data sdata,
struct ieee80211_mgmt *  mgmt,
size_t  len 
) [static]

Definition at line 2139 of file kernel-3.2/rx.c.

static struct ieee80211_fragment_entry* ieee80211_reassemble_add ( struct ieee80211_sub_if_data sdata,
unsigned int  frag,
unsigned int  seq,
int  rx_queue,
struct sk_buff **  skb 
) [static, read]

Definition at line 1372 of file kernel-3.2/rx.c.

static struct ieee80211_fragment_entry* ieee80211_reassemble_find ( struct ieee80211_sub_if_data sdata,
unsigned int  frag,
unsigned int  seq,
int  rx_queue,
struct ieee80211_hdr hdr 
) [static, read]

Definition at line 1411 of file kernel-3.2/rx.c.

static void ieee80211_release_reorder_frame ( struct ieee80211_hw *  hw,
struct tid_ampdu_rx tid_agg_rx,
int  index 
) [static]

Definition at line 572 of file kernel-3.2/rx.c.

static void ieee80211_release_reorder_frames ( struct ieee80211_hw *  hw,
struct tid_ampdu_rx tid_agg_rx,
u16  head_seq_num 
) [static]

Definition at line 596 of file kernel-3.2/rx.c.

void ieee80211_release_reorder_timeout ( struct sta_info sta,
int  tid 
)

Definition at line 2710 of file kernel-3.2/rx.c.

void ieee80211_rx ( struct ieee80211_hw *  hw,
struct sk_buff skb 
)

Definition at line 2976 of file kernel-3.2/rx.c.

static void ieee80211_rx_cooked_monitor ( struct ieee80211_rx_data rx,
struct ieee80211_rate rate 
) [static]

Definition at line 2500 of file kernel-3.2/rx.c.

Definition at line 2212 of file kernel-3.2/rx.c.

Definition at line 2395 of file kernel-3.2/rx.c.

Definition at line 1839 of file kernel-3.2/rx.c.

Definition at line 828 of file kernel-3.2/rx.c.

Definition at line 1099 of file kernel-3.2/rx.c.

Definition at line 2084 of file kernel-3.2/rx.c.

Definition at line 2025 of file kernel-3.2/rx.c.

Definition at line 889 of file kernel-3.2/rx.c.

Definition at line 1454 of file kernel-3.2/rx.c.

Definition at line 2446 of file kernel-3.2/rx.c.

Definition at line 2186 of file kernel-3.2/rx.c.

Definition at line 427 of file kernel-3.2/rx.c.

Definition at line 1575 of file kernel-3.2/rx.c.

Definition at line 1265 of file kernel-3.2/rx.c.

Definition at line 1190 of file kernel-3.2/rx.c.

Definition at line 2366 of file kernel-3.2/rx.c.

static void ieee80211_rx_handlers ( struct ieee80211_rx_data rx) [static]

Definition at line 2620 of file kernel-3.2/rx.c.

static void ieee80211_rx_handlers_result ( struct ieee80211_rx_data rx,
ieee80211_rx_result  res 
) [static]

Definition at line 2585 of file kernel-3.2/rx.c.

void ieee80211_rx_irqsafe ( struct ieee80211_hw *  hw,
struct sk_buff skb 
)

Definition at line 3095 of file kernel-3.2/rx.c.

Definition at line 500 of file kernel-3.2/rx.c.

static struct sk_buff* ieee80211_rx_monitor ( struct ieee80211_local local,
struct sk_buff origskb,
struct ieee80211_rate rate 
) [static, read]

Definition at line 224 of file kernel-3.2/rx.c.

static int ieee80211_rx_radiotap_len ( struct ieee80211_local local,
struct ieee80211_rx_status status 
) [static]

Definition at line 74 of file kernel-3.2/rx.c.

static void ieee80211_rx_reorder_ampdu ( struct ieee80211_rx_data rx) [static]

Definition at line 765 of file kernel-3.2/rx.c.

static bool ieee80211_sta_manage_reorder_buf ( struct ieee80211_hw *  hw,
struct tid_ampdu_rx tid_agg_rx,
struct sk_buff skb 
) [static]

Definition at line 695 of file kernel-3.2/rx.c.

int ieee80211_sta_ps_transition ( struct ieee80211_sta *  sta,
bool  start 
)

Definition at line 1168 of file kernel-3.2/rx.c.

static void ieee80211_sta_reorder_release ( struct ieee80211_hw *  hw,
struct tid_ampdu_rx tid_agg_rx 
) [static]

Definition at line 622 of file kernel-3.2/rx.c.

static void ieee80211_verify_alignment ( struct ieee80211_rx_data rx) [static]

DOC: Packet alignment

Drivers always need to pass packets that are aligned to two-byte boundaries to the stack.

Additionally, should, if possible, align the payload data in a way that guarantees that the contained IP header is aligned to a four-byte boundary. In the case of regular frames, this simply means aligning the payload to a four-byte boundary (because either the IP header is directly contained, or IV/RFC1042 headers that have a length divisible by four are in front of it). If the payload data is not properly aligned and the architecture doesn't support efficient unaligned operations, mac80211 will align the data.

With A-MSDU frames, however, the payload data address must yield two modulo four because there are 14-byte 802.3 headers within the A-MSDU frames that push the IP header further back to a multiple of four again. Thankfully, the specs were sane enough this time around to require padding each A-MSDU subframe to a length that is a multiple of four.

Padding like Atheros hardware adds which is between the 802.11 header and the payload is not supported, the driver is required to move the 802.11 header to be directly in front of the payload in that case.

Definition at line 415 of file kernel-3.2/rx.c.

static int prepare_for_handlers ( struct ieee80211_rx_data rx,
struct ieee80211_hdr hdr 
) [static]

Definition at line 2736 of file kernel-3.2/rx.c.

static struct sk_buff* remove_monitor_info ( struct ieee80211_local local,
struct sk_buff skb 
) [static, read]

Definition at line 39 of file kernel-3.2/rx.c.

static u16 seq_inc ( u16  sq) [inline, static]

Definition at line 561 of file kernel-3.2/rx.c.

static int seq_less ( u16  sq1,
u16  sq2 
) [inline, static]

Definition at line 556 of file kernel-3.2/rx.c.

static u16 seq_sub ( u16  sq1,
u16  sq2 
) [inline, static]

Definition at line 566 of file kernel-3.2/rx.c.

static int should_drop_frame ( struct sk_buff skb,
int  present_fcs_len 
) [inline, static]

Definition at line 56 of file kernel-3.2/rx.c.



ros_rt_wmp
Author(s): Danilo Tardioli, dantard@unizar.es
autogenerated on Fri Jan 3 2014 12:07:58