Home | History | Annotate | Download | only in linux
      1 #ifndef __LINUX_NL80211_H
      2 #define __LINUX_NL80211_H
      3 /*
      4  * 802.11 netlink interface public header
      5  *
      6  * Copyright 2006, 2007 Johannes Berg <johannes (at) sipsolutions.net>
      7  */
      8 
      9 /**
     10  * enum nl80211_commands - supported nl80211 commands
     11  *
     12  * @NL80211_CMD_UNSPEC: unspecified command to catch errors
     13  *
     14  * @NL80211_CMD_GET_WIPHY: request information about a wiphy or dump request
     15  *	to get a list of all present wiphys.
     16  * @NL80211_CMD_SET_WIPHY: set wiphy name, needs %NL80211_ATTR_WIPHY and
     17  *	%NL80211_ATTR_WIPHY_NAME.
     18  * @NL80211_CMD_NEW_WIPHY: Newly created wiphy, response to get request
     19  *	or rename notification. Has attributes %NL80211_ATTR_WIPHY and
     20  *	%NL80211_ATTR_WIPHY_NAME.
     21  * @NL80211_CMD_DEL_WIPHY: Wiphy deleted. Has attributes
     22  *	%NL80211_ATTR_WIPHY and %NL80211_ATTR_WIPHY_NAME.
     23  *
     24  * @NL80211_CMD_GET_INTERFACE: Request an interface's configuration;
     25  *	either a dump request on a %NL80211_ATTR_WIPHY or a specific get
     26  *	on an %NL80211_ATTR_IFINDEX is supported.
     27  * @NL80211_CMD_SET_INTERFACE: Set type of a virtual interface, requires
     28  *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_IFTYPE.
     29  * @NL80211_CMD_NEW_INTERFACE: Newly created virtual interface or response
     30  *	to %NL80211_CMD_GET_INTERFACE. Has %NL80211_ATTR_IFINDEX,
     31  *	%NL80211_ATTR_WIPHY and %NL80211_ATTR_IFTYPE attributes. Can also
     32  *	be sent from userspace to request creation of a new virtual interface,
     33  *	then requires attributes %NL80211_ATTR_WIPHY, %NL80211_ATTR_IFTYPE and
     34  *	%NL80211_ATTR_IFNAME.
     35  * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
     36  *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
     37  *	userspace to request deletion of a virtual interface, then requires
     38  *	attribute %NL80211_ATTR_IFINDEX.
     39  *
     40  * @NL80211_CMD_MAX: highest used command number
     41  * @__NL80211_CMD_AFTER_LAST: internal use
     42  */
     43 enum nl80211_commands {
     44 /* don't change the order or add anything inbetween, this is ABI! */
     45 	NL80211_CMD_UNSPEC,
     46 
     47 	NL80211_CMD_GET_WIPHY,		/* can dump */
     48 	NL80211_CMD_SET_WIPHY,
     49 	NL80211_CMD_NEW_WIPHY,
     50 	NL80211_CMD_DEL_WIPHY,
     51 
     52 	NL80211_CMD_GET_INTERFACE,	/* can dump */
     53 	NL80211_CMD_SET_INTERFACE,
     54 	NL80211_CMD_NEW_INTERFACE,
     55 	NL80211_CMD_DEL_INTERFACE,
     56 
     57 	/* add commands here */
     58 
     59 	/* used to define NL80211_CMD_MAX below */
     60 	__NL80211_CMD_AFTER_LAST,
     61 	NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
     62 };
     63 
     64 
     65 /**
     66  * enum nl80211_attrs - nl80211 netlink attributes
     67  *
     68  * @NL80211_ATTR_UNSPEC: unspecified attribute to catch errors
     69  *
     70  * @NL80211_ATTR_WIPHY: index of wiphy to operate on, cf.
     71  *	/sys/class/ieee80211/<phyname>/index
     72  * @NL80211_ATTR_WIPHY_NAME: wiphy name (used for renaming)
     73  *
     74  * @NL80211_ATTR_IFINDEX: network interface index of the device to operate on
     75  * @NL80211_ATTR_IFNAME: network interface name
     76  * @NL80211_ATTR_IFTYPE: type of virtual interface, see &enum nl80211_iftype
     77  *
     78  * @NL80211_ATTR_MAX: highest attribute number currently defined
     79  * @__NL80211_ATTR_AFTER_LAST: internal use
     80  */
     81 enum nl80211_attrs {
     82 /* don't change the order or add anything inbetween, this is ABI! */
     83 	NL80211_ATTR_UNSPEC,
     84 
     85 	NL80211_ATTR_WIPHY,
     86 	NL80211_ATTR_WIPHY_NAME,
     87 
     88 	NL80211_ATTR_IFINDEX,
     89 	NL80211_ATTR_IFNAME,
     90 	NL80211_ATTR_IFTYPE,
     91 
     92 	/* add attributes here, update the policy in nl80211.c */
     93 
     94 	__NL80211_ATTR_AFTER_LAST,
     95 	NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
     96 };
     97 
     98 /**
     99  * enum nl80211_iftype - (virtual) interface types
    100  *
    101  * @NL80211_IFTYPE_UNSPECIFIED: unspecified type, driver decides
    102  * @NL80211_IFTYPE_ADHOC: independent BSS member
    103  * @NL80211_IFTYPE_STATION: managed BSS member
    104  * @NL80211_IFTYPE_AP: access point
    105  * @NL80211_IFTYPE_AP_VLAN: VLAN interface for access points
    106  * @NL80211_IFTYPE_WDS: wireless distribution interface
    107  * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames
    108  * @NL80211_IFTYPE_MAX: highest interface type number currently defined
    109  * @__NL80211_IFTYPE_AFTER_LAST: internal use
    110  *
    111  * These values are used with the %NL80211_ATTR_IFTYPE
    112  * to set the type of an interface.
    113  *
    114  */
    115 enum nl80211_iftype {
    116 	NL80211_IFTYPE_UNSPECIFIED,
    117 	NL80211_IFTYPE_ADHOC,
    118 	NL80211_IFTYPE_STATION,
    119 	NL80211_IFTYPE_AP,
    120 	NL80211_IFTYPE_AP_VLAN,
    121 	NL80211_IFTYPE_WDS,
    122 	NL80211_IFTYPE_MONITOR,
    123 
    124 	/* keep last */
    125 	__NL80211_IFTYPE_AFTER_LAST,
    126 	NL80211_IFTYPE_MAX = __NL80211_IFTYPE_AFTER_LAST - 1
    127 };
    128 
    129 #endif /* __LINUX_NL80211_H */
    130