diff options
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/if.h | 213 |
1 files changed, 161 insertions, 52 deletions
diff --git a/include/uapi/linux/if.h b/include/uapi/linux/if.h index d758163b0e43..42ec87994cf6 100644 --- a/include/uapi/linux/if.h +++ b/include/uapi/linux/if.h | |||
| @@ -27,64 +27,173 @@ | |||
| 27 | #define IFALIASZ 256 | 27 | #define IFALIASZ 256 |
| 28 | #include <linux/hdlc/ioctl.h> | 28 | #include <linux/hdlc/ioctl.h> |
| 29 | 29 | ||
| 30 | /* Standard interface flags (netdevice->flags). */ | 30 | /** |
| 31 | #define IFF_UP 0x1 /* interface is up */ | 31 | * enum net_device_flags - &struct net_device flags |
| 32 | #define IFF_BROADCAST 0x2 /* broadcast address valid */ | 32 | * |
| 33 | #define IFF_DEBUG 0x4 /* turn on debugging */ | 33 | * These are the &struct net_device flags, they can be set by drivers, the |
| 34 | #define IFF_LOOPBACK 0x8 /* is a loopback net */ | 34 | * kernel and some can be triggered by userspace. Userspace can query and |
| 35 | #define IFF_POINTOPOINT 0x10 /* interface is has p-p link */ | 35 | * set these flags using userspace utilities but there is also a sysfs |
| 36 | #define IFF_NOTRAILERS 0x20 /* avoid use of trailers */ | 36 | * entry available for all dev flags which can be queried and set. These flags |
| 37 | #define IFF_RUNNING 0x40 /* interface RFC2863 OPER_UP */ | 37 | * are shared for all types of net_devices. The sysfs entries are available |
| 38 | #define IFF_NOARP 0x80 /* no ARP protocol */ | 38 | * via /sys/class/net/<dev>/flags. Flags which can be toggled through sysfs |
| 39 | #define IFF_PROMISC 0x100 /* receive all packets */ | 39 | * are annotated below, note that only a few flags can be toggled and some |
| 40 | #define IFF_ALLMULTI 0x200 /* receive all multicast packets*/ | 40 | * other flags are always always preserved from the original net_device flags |
| 41 | 41 | * even if you try to set them via sysfs. Flags which are always preserved | |
| 42 | #define IFF_MASTER 0x400 /* master of a load balancer */ | 42 | * are kept under the flag grouping @IFF_VOLATILE. Flags which are volatile |
| 43 | #define IFF_SLAVE 0x800 /* slave of a load balancer */ | 43 | * are annotated below as such. |
| 44 | 44 | * | |
| 45 | #define IFF_MULTICAST 0x1000 /* Supports multicast */ | 45 | * You should have a pretty good reason to be extending these flags. |
| 46 | 46 | * | |
| 47 | #define IFF_PORTSEL 0x2000 /* can set media type */ | 47 | * @IFF_UP: interface is up. Can be toggled through sysfs. |
| 48 | #define IFF_AUTOMEDIA 0x4000 /* auto media select active */ | 48 | * @IFF_BROADCAST: broadcast address valid. Volatile. |
| 49 | #define IFF_DYNAMIC 0x8000 /* dialup device with changing addresses*/ | 49 | * @IFF_DEBUG: turn on debugging. Can be toggled through sysfs. |
| 50 | 50 | * @IFF_LOOPBACK: is a loopback net. Volatile. | |
| 51 | #define IFF_LOWER_UP 0x10000 /* driver signals L1 up */ | 51 | * @IFF_POINTOPOINT: interface is has p-p link. Volatile. |
| 52 | #define IFF_DORMANT 0x20000 /* driver signals dormant */ | 52 | * @IFF_NOTRAILERS: avoid use of trailers. Can be toggled through sysfs. |
| 53 | * Volatile. | ||
| 54 | * @IFF_RUNNING: interface RFC2863 OPER_UP. Volatile. | ||
| 55 | * @IFF_NOARP: no ARP protocol. Can be toggled through sysfs. Volatile. | ||
| 56 | * @IFF_PROMISC: receive all packets. Can be toggled through sysfs. | ||
| 57 | * @IFF_ALLMULTI: receive all multicast packets. Can be toggled through | ||
| 58 | * sysfs. | ||
| 59 | * @IFF_MASTER: master of a load balancer. Volatile. | ||
| 60 | * @IFF_SLAVE: slave of a load balancer. Volatile. | ||
| 61 | * @IFF_MULTICAST: Supports multicast. Can be toggled through sysfs. | ||
| 62 | * @IFF_PORTSEL: can set media type. Can be toggled through sysfs. | ||
| 63 | * @IFF_AUTOMEDIA: auto media select active. Can be toggled through sysfs. | ||
| 64 | * @IFF_DYNAMIC: dialup device with changing addresses. Can be toggled | ||
| 65 | * through sysfs. | ||
| 66 | * @IFF_LOWER_UP: driver signals L1 up. Volatile. | ||
| 67 | * @IFF_DORMANT: driver signals dormant. Volatile. | ||
| 68 | * @IFF_ECHO: echo sent packets. Volatile. | ||
| 69 | */ | ||
| 70 | enum net_device_flags { | ||
| 71 | IFF_UP = 1<<0, /* sysfs */ | ||
| 72 | IFF_BROADCAST = 1<<1, /* volatile */ | ||
| 73 | IFF_DEBUG = 1<<2, /* sysfs */ | ||
| 74 | IFF_LOOPBACK = 1<<3, /* volatile */ | ||
| 75 | IFF_POINTOPOINT = 1<<4, /* volatile */ | ||
| 76 | IFF_NOTRAILERS = 1<<5, /* sysfs */ | ||
| 77 | IFF_RUNNING = 1<<6, /* volatile */ | ||
| 78 | IFF_NOARP = 1<<7, /* sysfs */ | ||
| 79 | IFF_PROMISC = 1<<8, /* sysfs */ | ||
| 80 | IFF_ALLMULTI = 1<<9, /* sysfs */ | ||
| 81 | IFF_MASTER = 1<<10, /* volatile */ | ||
| 82 | IFF_SLAVE = 1<<11, /* volatile */ | ||
| 83 | IFF_MULTICAST = 1<<12, /* sysfs */ | ||
| 84 | IFF_PORTSEL = 1<<13, /* sysfs */ | ||
| 85 | IFF_AUTOMEDIA = 1<<14, /* sysfs */ | ||
| 86 | IFF_DYNAMIC = 1<<15, /* sysfs */ | ||
| 87 | IFF_LOWER_UP = 1<<16, /* volatile */ | ||
| 88 | IFF_DORMANT = 1<<17, /* volatile */ | ||
| 89 | IFF_ECHO = 1<<18, /* volatile */ | ||
| 90 | }; | ||
| 53 | 91 | ||
| 54 | #define IFF_ECHO 0x40000 /* echo sent packets */ | 92 | #define IFF_UP IFF_UP |
| 93 | #define IFF_BROADCAST IFF_BROADCAST | ||
| 94 | #define IFF_DEBUG IFF_DEBUG | ||
| 95 | #define IFF_LOOPBACK IFF_LOOPBACK | ||
| 96 | #define IFF_POINTOPOINT IFF_POINTOPOINT | ||
| 97 | #define IFF_NOTRAILERS IFF_NOTRAILERS | ||
| 98 | #define IFF_RUNNING IFF_RUNNING | ||
| 99 | #define IFF_NOARP IFF_NOARP | ||
| 100 | #define IFF_PROMISC IFF_PROMISC | ||
| 101 | #define IFF_ALLMULTI IFF_ALLMULTI | ||
| 102 | #define IFF_MASTER IFF_MASTER | ||
| 103 | #define IFF_SLAVE IFF_SLAVE | ||
| 104 | #define IFF_MULTICAST IFF_MULTICAST | ||
| 105 | #define IFF_PORTSEL IFF_PORTSEL | ||
| 106 | #define IFF_AUTOMEDIA IFF_AUTOMEDIA | ||
| 107 | #define IFF_DYNAMIC IFF_DYNAMIC | ||
| 108 | #define IFF_LOWER_UP IFF_LOWER_UP | ||
| 109 | #define IFF_DORMANT IFF_DORMANT | ||
| 110 | #define IFF_ECHO IFF_ECHO | ||
| 55 | 111 | ||
| 56 | #define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ | 112 | #define IFF_VOLATILE (IFF_LOOPBACK|IFF_POINTOPOINT|IFF_BROADCAST|IFF_ECHO|\ |
| 57 | IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) | 113 | IFF_MASTER|IFF_SLAVE|IFF_RUNNING|IFF_LOWER_UP|IFF_DORMANT) |
| 58 | 114 | ||
| 59 | /* Private (from user) interface flags (netdevice->priv_flags). */ | 115 | /** |
| 60 | #define IFF_802_1Q_VLAN 0x1 /* 802.1Q VLAN device. */ | 116 | * enum net_device_priv_flags - &struct net_device priv_flags |
| 61 | #define IFF_EBRIDGE 0x2 /* Ethernet bridging device. */ | 117 | * |
| 62 | #define IFF_SLAVE_INACTIVE 0x4 /* bonding slave not the curr. active */ | 118 | * These are the &struct net_device, they are only set internally |
| 63 | #define IFF_MASTER_8023AD 0x8 /* bonding master, 802.3ad. */ | 119 | * by drivers and used in the kernel. These flags are invisible to |
| 64 | #define IFF_MASTER_ALB 0x10 /* bonding master, balance-alb. */ | 120 | * userspace, this means that the order of these flags can change |
| 65 | #define IFF_BONDING 0x20 /* bonding master or slave */ | 121 | * during any kernel release. |
| 66 | #define IFF_SLAVE_NEEDARP 0x40 /* need ARPs for validation */ | 122 | * |
| 67 | #define IFF_ISATAP 0x80 /* ISATAP interface (RFC4214) */ | 123 | * You should have a pretty good reason to be extending these flags. |
| 68 | #define IFF_MASTER_ARPMON 0x100 /* bonding master, ARP mon in use */ | 124 | * |
| 69 | #define IFF_WAN_HDLC 0x200 /* WAN HDLC device */ | 125 | * @IFF_802_1Q_VLAN: 802.1Q VLAN device |
| 70 | #define IFF_XMIT_DST_RELEASE 0x400 /* dev_hard_start_xmit() is allowed to | 126 | * @IFF_EBRIDGE: Ethernet bridging device |
| 71 | * release skb->dst | 127 | * @IFF_SLAVE_INACTIVE: bonding slave not the curr. active |
| 72 | */ | 128 | * @IFF_MASTER_8023AD: bonding master, 802.3ad |
| 73 | #define IFF_DONT_BRIDGE 0x800 /* disallow bridging this ether dev */ | 129 | * @IFF_MASTER_ALB: bonding master, balance-alb |
| 74 | #define IFF_DISABLE_NETPOLL 0x1000 /* disable netpoll at run-time */ | 130 | * @IFF_BONDING: bonding master or slave |
| 75 | #define IFF_MACVLAN_PORT 0x2000 /* device used as macvlan port */ | 131 | * @IFF_SLAVE_NEEDARP: need ARPs for validation |
| 76 | #define IFF_BRIDGE_PORT 0x4000 /* device used as bridge port */ | 132 | * @IFF_ISATAP: ISATAP interface (RFC4214) |
| 77 | #define IFF_OVS_DATAPATH 0x8000 /* device used as Open vSwitch | 133 | * @IFF_MASTER_ARPMON: bonding master, ARP mon in use |
| 78 | * datapath port */ | 134 | * @IFF_WAN_HDLC: WAN HDLC device |
| 79 | #define IFF_TX_SKB_SHARING 0x10000 /* The interface supports sharing | 135 | * @IFF_XMIT_DST_RELEASE: dev_hard_start_xmit() is allowed to |
| 80 | * skbs on transmit */ | 136 | * release skb->dst |
| 81 | #define IFF_UNICAST_FLT 0x20000 /* Supports unicast filtering */ | 137 | * @IFF_DONT_BRIDGE: disallow bridging this ether dev |
| 82 | #define IFF_TEAM_PORT 0x40000 /* device used as team port */ | 138 | * @IFF_DISABLE_NETPOLL: disable netpoll at run-time |
| 83 | #define IFF_SUPP_NOFCS 0x80000 /* device supports sending custom FCS */ | 139 | * @IFF_MACVLAN_PORT: device used as macvlan port |
| 84 | #define IFF_LIVE_ADDR_CHANGE 0x100000 /* device supports hardware address | 140 | * @IFF_BRIDGE_PORT: device used as bridge port |
| 85 | * change when it's running */ | 141 | * @IFF_OVS_DATAPATH: device used as Open vSwitch datapath port |
| 86 | #define IFF_MACVLAN 0x200000 /* Macvlan device */ | 142 | * @IFF_TX_SKB_SHARING: The interface supports sharing skbs on transmit |
| 143 | * @IFF_UNICAST_FLT: Supports unicast filtering | ||
| 144 | * @IFF_TEAM_PORT: device used as team port | ||
| 145 | * @IFF_SUPP_NOFCS: device supports sending custom FCS | ||
| 146 | * @IFF_LIVE_ADDR_CHANGE: device supports hardware address | ||
| 147 | * change when it's running | ||
| 148 | * @IFF_MACVLAN: Macvlan device | ||
| 149 | */ | ||
| 150 | enum netdev_priv_flags { | ||
| 151 | IFF_802_1Q_VLAN = 1<<0, | ||
| 152 | IFF_EBRIDGE = 1<<1, | ||
| 153 | IFF_SLAVE_INACTIVE = 1<<2, | ||
| 154 | IFF_MASTER_8023AD = 1<<3, | ||
| 155 | IFF_MASTER_ALB = 1<<4, | ||
| 156 | IFF_BONDING = 1<<5, | ||
| 157 | IFF_SLAVE_NEEDARP = 1<<6, | ||
| 158 | IFF_ISATAP = 1<<7, | ||
| 159 | IFF_MASTER_ARPMON = 1<<8, | ||
| 160 | IFF_WAN_HDLC = 1<<9, | ||
| 161 | IFF_XMIT_DST_RELEASE = 1<<10, | ||
| 162 | IFF_DONT_BRIDGE = 1<<11, | ||
| 163 | IFF_DISABLE_NETPOLL = 1<<12, | ||
| 164 | IFF_MACVLAN_PORT = 1<<13, | ||
| 165 | IFF_BRIDGE_PORT = 1<<14, | ||
| 166 | IFF_OVS_DATAPATH = 1<<15, | ||
| 167 | IFF_TX_SKB_SHARING = 1<<16, | ||
| 168 | IFF_UNICAST_FLT = 1<<17, | ||
| 169 | IFF_TEAM_PORT = 1<<18, | ||
| 170 | IFF_SUPP_NOFCS = 1<<19, | ||
| 171 | IFF_LIVE_ADDR_CHANGE = 1<<20, | ||
| 172 | IFF_MACVLAN = 1<<21, | ||
| 173 | }; | ||
| 87 | 174 | ||
| 175 | #define IFF_802_1Q_VLAN IFF_802_1Q_VLAN | ||
| 176 | #define IFF_EBRIDGE IFF_EBRIDGE | ||
| 177 | #define IFF_SLAVE_INACTIVE IFF_SLAVE_INACTIVE | ||
| 178 | #define IFF_MASTER_8023AD IFF_MASTER_8023AD | ||
| 179 | #define IFF_MASTER_ALB IFF_MASTER_ALB | ||
| 180 | #define IFF_BONDING IFF_BONDING | ||
| 181 | #define IFF_SLAVE_NEEDARP IFF_SLAVE_NEEDARP | ||
| 182 | #define IFF_ISATAP IFF_ISATAP | ||
| 183 | #define IFF_MASTER_ARPMON IFF_MASTER_ARPMON | ||
| 184 | #define IFF_WAN_HDLC IFF_WAN_HDLC | ||
| 185 | #define IFF_XMIT_DST_RELEASE IFF_XMIT_DST_RELEASE | ||
| 186 | #define IFF_DONT_BRIDGE IFF_DONT_BRIDGE | ||
| 187 | #define IFF_DISABLE_NETPOLL IFF_DISABLE_NETPOLL | ||
| 188 | #define IFF_MACVLAN_PORT IFF_MACVLAN_PORT | ||
| 189 | #define IFF_BRIDGE_PORT IFF_BRIDGE_PORT | ||
| 190 | #define IFF_OVS_DATAPATH IFF_OVS_DATAPATH | ||
| 191 | #define IFF_TX_SKB_SHARING IFF_TX_SKB_SHARING | ||
| 192 | #define IFF_UNICAST_FLT IFF_UNICAST_FLT | ||
| 193 | #define IFF_TEAM_PORT IFF_TEAM_PORT | ||
| 194 | #define IFF_SUPP_NOFCS IFF_SUPP_NOFCS | ||
| 195 | #define IFF_LIVE_ADDR_CHANGE IFF_LIVE_ADDR_CHANGE | ||
| 196 | #define IFF_MACVLAN IFF_MACVLAN | ||
| 88 | 197 | ||
| 89 | #define IF_GET_IFACE 0x0001 /* for querying only */ | 198 | #define IF_GET_IFACE 0x0001 /* for querying only */ |
| 90 | #define IF_GET_PROTO 0x0002 | 199 | #define IF_GET_PROTO 0x0002 |
