Defines | Functions | Variables
iface.c File Reference
#include <linux/slab.h>
#include <linux/kernel.h>
#include <linux/if_arp.h>
#include <linux/netdevice.h>
#include <linux/rtnetlink.h>
#include <net/mac80211.h>
#include <net/ieee80211_radiotap.h>
#include "ieee80211_i.h"
#include "sta_info.h"
#include "debugfs_netdev.h"
#include "mesh.h"
#include "led.h"
#include "driver-ops.h"
#include "wme.h"
#include "rate.h"
Include dependency graph for kernel-3.5/iface.c:

Go to the source code of this file.

Defines

#define ADJUST(_f, _s)

Functions

u32 __ieee80211_recalc_idle (struct ieee80211_local *local)
static int identical_mac_addr_allowed (int type1, int type2)
static int ieee80211_add_virtual_monitor (struct ieee80211_local *local)
void ieee80211_adjust_monitor_flags (struct ieee80211_sub_if_data *sdata, const int offset)
static void ieee80211_assign_perm_addr (struct ieee80211_local *local, struct net_device *dev, enum nl80211_iftype type)
static int ieee80211_change_mac (struct net_device *dev, void *addr)
static int ieee80211_change_mtu (struct net_device *dev, int new_mtu)
static int ieee80211_check_concurrent_iface (struct ieee80211_sub_if_data *sdata, enum nl80211_iftype iftype)
static int ieee80211_check_queues (struct ieee80211_sub_if_data *sdata)
static void ieee80211_clean_sdata (struct ieee80211_sub_if_data *sdata)
static void ieee80211_del_virtual_monitor (struct ieee80211_local *local)
static int ieee80211_do_open (struct net_device *dev, bool coming_up)
static void ieee80211_do_stop (struct ieee80211_sub_if_data *sdata, bool going_down)
static u32 ieee80211_idle_off (struct ieee80211_local *local, const char *reason)
static u32 ieee80211_idle_on (struct ieee80211_local *local)
int ieee80211_if_add (struct ieee80211_local *local, const char *name, struct net_device **new_dev, enum nl80211_iftype type, struct vif_params *params)
int ieee80211_if_change_type (struct ieee80211_sub_if_data *sdata, enum nl80211_iftype type)
void ieee80211_if_remove (struct ieee80211_sub_if_data *sdata)
static void ieee80211_if_setup (struct net_device *dev)
void ieee80211_iface_exit (void)
int ieee80211_iface_init (void)
static void ieee80211_iface_work (struct work_struct *work)
static u16 ieee80211_monitor_select_queue (struct net_device *dev, struct sk_buff *skb)
static u16 ieee80211_netdev_select_queue (struct net_device *dev, struct sk_buff *skb)
static int ieee80211_open (struct net_device *dev)
void ieee80211_recalc_idle (struct ieee80211_local *local)
void ieee80211_remove_interfaces (struct ieee80211_local *local)
static int ieee80211_runtime_change_iftype (struct ieee80211_sub_if_data *sdata, enum nl80211_iftype type)
static void ieee80211_set_default_queues (struct ieee80211_sub_if_data *sdata)
static void ieee80211_set_multicast_list (struct net_device *dev)
static void ieee80211_setup_sdata (struct ieee80211_sub_if_data *sdata, enum nl80211_iftype type)
static int ieee80211_stop (struct net_device *dev)
static void ieee80211_teardown_sdata (struct net_device *dev)
static int netdev_notify (struct notifier_block *nb, unsigned long state, void *ndev)

Variables

static struct net_device_ops ieee80211_dataif_ops
static struct net_device_ops ieee80211_monitorif_ops
static struct notifier_block mac80211_netdev_notifier

Define Documentation

#define ADJUST (   _f,
  _s 
)
Value:
do {                                    \
        if (flags & MONITOR_FLAG_##_f)                          \
                local->fif_##_s += offset;                      \
        } while (0)

Function Documentation

Definition at line 1453 of file kernel-3.5/iface.c.

static int identical_mac_addr_allowed ( int  type1,
int  type2 
) [inline, static]

Definition at line 84 of file kernel-3.5/iface.c.

static int ieee80211_add_virtual_monitor ( struct ieee80211_local local) [static]

Definition at line 217 of file kernel-3.5/iface.c.

void ieee80211_adjust_monitor_flags ( struct ieee80211_sub_if_data sdata,
const int  offset 
)

Definition at line 181 of file kernel-3.5/iface.c.

static void ieee80211_assign_perm_addr ( struct ieee80211_local local,
struct net_device *  dev,
enum nl80211_iftype  type 
) [static]

Definition at line 1174 of file kernel-3.5/iface.c.

static int ieee80211_change_mac ( struct net_device *  dev,
void *  addr 
) [static]

Definition at line 67 of file kernel-3.5/iface.c.

static int ieee80211_change_mtu ( struct net_device *  dev,
int  new_mtu 
) [static]

DOC: Interface list locking

The interface list in each struct ieee80211_local is protected three-fold:

(1) modifications may only be done under the RTNL (2) modifications and readers are protected against each other by the iflist_mtx. (3) modifications are done in an RCU manner so atomic readers can traverse the list in RCU-safe blocks.

As a consequence, reads (traversals) of the list can be protected by either the RTNL, the iflist_mtx or RCU.

Definition at line 46 of file kernel-3.5/iface.c.

static int ieee80211_check_concurrent_iface ( struct ieee80211_sub_if_data sdata,
enum nl80211_iftype  iftype 
) [static]

Definition at line 98 of file kernel-3.5/iface.c.

static int ieee80211_check_queues ( struct ieee80211_sub_if_data sdata) [static]

Definition at line 152 of file kernel-3.5/iface.c.

static void ieee80211_clean_sdata ( struct ieee80211_sub_if_data sdata) [static]

Definition at line 1048 of file kernel-3.5/iface.c.

static void ieee80211_del_virtual_monitor ( struct ieee80211_local local) [static]

Definition at line 258 of file kernel-3.5/iface.c.

static int ieee80211_do_open ( struct net_device *  dev,
bool  coming_up 
) [static]

Definition at line 283 of file kernel-3.5/iface.c.

static void ieee80211_do_stop ( struct ieee80211_sub_if_data sdata,
bool  going_down 
) [static]

Definition at line 511 of file kernel-3.5/iface.c.

static u32 ieee80211_idle_off ( struct ieee80211_local local,
const char *  reason 
) [static]

Definition at line 1424 of file kernel-3.5/iface.c.

static u32 ieee80211_idle_on ( struct ieee80211_local local) [static]

Definition at line 1438 of file kernel-3.5/iface.c.

int ieee80211_if_add ( struct ieee80211_local local,
const char *  name,
struct net_device **  new_dev,
enum nl80211_iftype  type,
struct vif_params *  params 
)

Definition at line 1286 of file kernel-3.5/iface.c.

int ieee80211_if_change_type ( struct ieee80211_sub_if_data sdata,
enum nl80211_iftype  type 
)

Definition at line 1138 of file kernel-3.5/iface.c.

void ieee80211_if_remove ( struct ieee80211_sub_if_data sdata)

Definition at line 1385 of file kernel-3.5/iface.c.

static void ieee80211_if_setup ( struct net_device *  dev) [static]

Definition at line 840 of file kernel-3.5/iface.c.

void ieee80211_iface_exit ( void  )

Definition at line 1589 of file kernel-3.5/iface.c.

int ieee80211_iface_init ( void  )

Definition at line 1584 of file kernel-3.5/iface.c.

static void ieee80211_iface_work ( struct work_struct *  work) [static]

Definition at line 848 of file kernel-3.5/iface.c.

static u16 ieee80211_monitor_select_queue ( struct net_device *  dev,
struct sk_buff skb 
) [static]

Definition at line 809 of file kernel-3.5/iface.c.

static u16 ieee80211_netdev_select_queue ( struct net_device *  dev,
struct sk_buff skb 
) [static]

Definition at line 792 of file kernel-3.5/iface.c.

static int ieee80211_open ( struct net_device *  dev) [static]

Definition at line 495 of file kernel-3.5/iface.c.

void ieee80211_recalc_idle ( struct ieee80211_local local)

Definition at line 1545 of file kernel-3.5/iface.c.

void ieee80211_remove_interfaces ( struct ieee80211_local local)

Definition at line 1404 of file kernel-3.5/iface.c.

static int ieee80211_runtime_change_iftype ( struct ieee80211_sub_if_data sdata,
enum nl80211_iftype  type 
) [static]

Definition at line 1060 of file kernel-3.5/iface.c.

static void ieee80211_set_default_queues ( struct ieee80211_sub_if_data sdata) [static]

Definition at line 201 of file kernel-3.5/iface.c.

static void ieee80211_set_multicast_list ( struct net_device *  dev) [static]

Definition at line 733 of file kernel-3.5/iface.c.

static void ieee80211_setup_sdata ( struct ieee80211_sub_if_data sdata,
enum nl80211_iftype  type 
) [static]

Definition at line 982 of file kernel-3.5/iface.c.

static int ieee80211_stop ( struct net_device *  dev) [static]

Definition at line 724 of file kernel-3.5/iface.c.

static void ieee80211_teardown_sdata ( struct net_device *  dev) [static]

Definition at line 769 of file kernel-3.5/iface.c.

static int netdev_notify ( struct notifier_block *  nb,
unsigned long  state,
void *  ndev 
) [static]

Definition at line 1556 of file kernel-3.5/iface.c.


Variable Documentation

struct net_device_ops ieee80211_dataif_ops [static]
Initial value:
 {
        .ndo_open               = ieee80211_open,
        .ndo_stop               = ieee80211_stop,
        .ndo_uninit             = ieee80211_teardown_sdata,
        .ndo_start_xmit         = ieee80211_subif_start_xmit,
        .ndo_set_rx_mode        = ieee80211_set_multicast_list,
        .ndo_change_mtu         = ieee80211_change_mtu,
        .ndo_set_mac_address    = ieee80211_change_mac,
        .ndo_select_queue       = ieee80211_netdev_select_queue,
}

Definition at line 798 of file kernel-3.5/iface.c.

struct net_device_ops ieee80211_monitorif_ops [static]
Initial value:
 {
        .ndo_open               = ieee80211_open,
        .ndo_stop               = ieee80211_stop,
        .ndo_uninit             = ieee80211_teardown_sdata,
        .ndo_start_xmit         = ieee80211_monitor_start_xmit,
        .ndo_set_rx_mode        = ieee80211_set_multicast_list,
        .ndo_change_mtu         = ieee80211_change_mtu,
        .ndo_set_mac_address    = eth_mac_addr,
        .ndo_select_queue       = ieee80211_monitor_select_queue,
}

Definition at line 829 of file kernel-3.5/iface.c.

struct notifier_block mac80211_netdev_notifier [static]
Initial value:
 {
        .notifier_call = netdev_notify,
}

Definition at line 1580 of file kernel-3.5/iface.c.



ros_rt_wmp
Author(s): Danilo Tardioli, dantard@unizar.es
autogenerated on Mon Oct 6 2014 08:27:12