#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"
Go to the source code of this file.
| #define ADJUST | ( | _f, | |
| _s | |||
| ) |
do { \ if (flags & MONITOR_FLAG_##_f) \ local->fif_##_s += offset; \ } while (0)
| u32 __ieee80211_recalc_idle | ( | struct ieee80211_local * | local | ) |
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.
struct net_device_ops ieee80211_dataif_ops [static] |
{
.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] |
{
.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] |
{
.notifier_call = netdev_notify,
}
Definition at line 1580 of file kernel-3.5/iface.c.