Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[sfrench/cifs-2.6.git] / include / linux / if_link.h
index 3265f332998a54c9722fd2d6825aa63f60f3aba2..c3f817c3eb451091e5b02fc6c8f22e7af5d1126a 100644 (file)
@@ -1,341 +1,8 @@
 #ifndef _LINUX_IF_LINK_H
 #define _LINUX_IF_LINK_H
 
-#include <linux/types.h>
-#include <linux/netlink.h>
+#include <uapi/linux/if_link.h>
 
-/* This struct should be in sync with struct rtnl_link_stats64 */
-struct rtnl_link_stats {
-       __u32   rx_packets;             /* total packets received       */
-       __u32   tx_packets;             /* total packets transmitted    */
-       __u32   rx_bytes;               /* total bytes received         */
-       __u32   tx_bytes;               /* total bytes transmitted      */
-       __u32   rx_errors;              /* bad packets received         */
-       __u32   tx_errors;              /* packet transmit problems     */
-       __u32   rx_dropped;             /* no space in linux buffers    */
-       __u32   tx_dropped;             /* no space available in linux  */
-       __u32   multicast;              /* multicast packets received   */
-       __u32   collisions;
-
-       /* detailed rx_errors: */
-       __u32   rx_length_errors;
-       __u32   rx_over_errors;         /* receiver ring buff overflow  */
-       __u32   rx_crc_errors;          /* recved pkt with crc error    */
-       __u32   rx_frame_errors;        /* recv'd frame alignment error */
-       __u32   rx_fifo_errors;         /* recv'r fifo overrun          */
-       __u32   rx_missed_errors;       /* receiver missed packet       */
-
-       /* detailed tx_errors */
-       __u32   tx_aborted_errors;
-       __u32   tx_carrier_errors;
-       __u32   tx_fifo_errors;
-       __u32   tx_heartbeat_errors;
-       __u32   tx_window_errors;
-
-       /* for cslip etc */
-       __u32   rx_compressed;
-       __u32   tx_compressed;
-};
-
-/* The main device statistics structure */
-struct rtnl_link_stats64 {
-       __u64   rx_packets;             /* total packets received       */
-       __u64   tx_packets;             /* total packets transmitted    */
-       __u64   rx_bytes;               /* total bytes received         */
-       __u64   tx_bytes;               /* total bytes transmitted      */
-       __u64   rx_errors;              /* bad packets received         */
-       __u64   tx_errors;              /* packet transmit problems     */
-       __u64   rx_dropped;             /* no space in linux buffers    */
-       __u64   tx_dropped;             /* no space available in linux  */
-       __u64   multicast;              /* multicast packets received   */
-       __u64   collisions;
-
-       /* detailed rx_errors: */
-       __u64   rx_length_errors;
-       __u64   rx_over_errors;         /* receiver ring buff overflow  */
-       __u64   rx_crc_errors;          /* recved pkt with crc error    */
-       __u64   rx_frame_errors;        /* recv'd frame alignment error */
-       __u64   rx_fifo_errors;         /* recv'r fifo overrun          */
-       __u64   rx_missed_errors;       /* receiver missed packet       */
-
-       /* detailed tx_errors */
-       __u64   tx_aborted_errors;
-       __u64   tx_carrier_errors;
-       __u64   tx_fifo_errors;
-       __u64   tx_heartbeat_errors;
-       __u64   tx_window_errors;
-
-       /* for cslip etc */
-       __u64   rx_compressed;
-       __u64   tx_compressed;
-};
-
-/* The struct should be in sync with struct ifmap */
-struct rtnl_link_ifmap {
-       __u64   mem_start;
-       __u64   mem_end;
-       __u64   base_addr;
-       __u16   irq;
-       __u8    dma;
-       __u8    port;
-};
-
-/*
- * IFLA_AF_SPEC
- *   Contains nested attributes for address family specific attributes.
- *   Each address family may create a attribute with the address family
- *   number as type and create its own attribute structure in it.
- *
- *   Example:
- *   [IFLA_AF_SPEC] = {
- *       [AF_INET] = {
- *           [IFLA_INET_CONF] = ...,
- *       },
- *       [AF_INET6] = {
- *           [IFLA_INET6_FLAGS] = ...,
- *           [IFLA_INET6_CONF] = ...,
- *       }
- *   }
- */
-
-enum {
-       IFLA_UNSPEC,
-       IFLA_ADDRESS,
-       IFLA_BROADCAST,
-       IFLA_IFNAME,
-       IFLA_MTU,
-       IFLA_LINK,
-       IFLA_QDISC,
-       IFLA_STATS,
-       IFLA_COST,
-#define IFLA_COST IFLA_COST
-       IFLA_PRIORITY,
-#define IFLA_PRIORITY IFLA_PRIORITY
-       IFLA_MASTER,
-#define IFLA_MASTER IFLA_MASTER
-       IFLA_WIRELESS,          /* Wireless Extension event - see wireless.h */
-#define IFLA_WIRELESS IFLA_WIRELESS
-       IFLA_PROTINFO,          /* Protocol specific information for a link */
-#define IFLA_PROTINFO IFLA_PROTINFO
-       IFLA_TXQLEN,
-#define IFLA_TXQLEN IFLA_TXQLEN
-       IFLA_MAP,
-#define IFLA_MAP IFLA_MAP
-       IFLA_WEIGHT,
-#define IFLA_WEIGHT IFLA_WEIGHT
-       IFLA_OPERSTATE,
-       IFLA_LINKMODE,
-       IFLA_LINKINFO,
-#define IFLA_LINKINFO IFLA_LINKINFO
-       IFLA_NET_NS_PID,
-       IFLA_IFALIAS,
-       IFLA_NUM_VF,            /* Number of VFs if device is SR-IOV PF */
-       IFLA_VFINFO_LIST,
-       IFLA_STATS64,
-       IFLA_VF_PORTS,
-       IFLA_PORT_SELF,
-       IFLA_AF_SPEC,
-       IFLA_GROUP,             /* Group the device belongs to */
-       IFLA_NET_NS_FD,
-       IFLA_EXT_MASK,          /* Extended info mask, VFs, etc */
-       IFLA_PROMISCUITY,       /* Promiscuity count: > 0 means acts PROMISC */
-#define IFLA_PROMISCUITY IFLA_PROMISCUITY
-       IFLA_NUM_TX_QUEUES,
-       IFLA_NUM_RX_QUEUES,
-       __IFLA_MAX
-};
-
-
-#define IFLA_MAX (__IFLA_MAX - 1)
-
-/* backwards compatibility for userspace */
-#ifndef __KERNEL__
-#define IFLA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifinfomsg))))
-#define IFLA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifinfomsg))
-#endif
-
-enum {
-       IFLA_INET_UNSPEC,
-       IFLA_INET_CONF,
-       __IFLA_INET_MAX,
-};
-
-#define IFLA_INET_MAX (__IFLA_INET_MAX - 1)
-
-/* ifi_flags.
-
-   IFF_* flags.
-
-   The only change is:
-   IFF_LOOPBACK, IFF_BROADCAST and IFF_POINTOPOINT are
-   more not changeable by user. They describe link media
-   characteristics and set by device driver.
-
-   Comments:
-   - Combination IFF_BROADCAST|IFF_POINTOPOINT is invalid
-   - If neither of these three flags are set;
-     the interface is NBMA.
-
-   - IFF_MULTICAST does not mean anything special:
-   multicasts can be used on all not-NBMA links.
-   IFF_MULTICAST means that this media uses special encapsulation
-   for multicast frames. Apparently, all IFF_POINTOPOINT and
-   IFF_BROADCAST devices are able to use multicasts too.
- */
-
-/* IFLA_LINK.
-   For usual devices it is equal ifi_index.
-   If it is a "virtual interface" (f.e. tunnel), ifi_link
-   can point to real physical interface (f.e. for bandwidth calculations),
-   or maybe 0, what means, that real media is unknown (usual
-   for IPIP tunnels, when route to endpoint is allowed to change)
- */
-
-/* Subtype attributes for IFLA_PROTINFO */
-enum {
-       IFLA_INET6_UNSPEC,
-       IFLA_INET6_FLAGS,       /* link flags                   */
-       IFLA_INET6_CONF,        /* sysctl parameters            */
-       IFLA_INET6_STATS,       /* statistics                   */
-       IFLA_INET6_MCAST,       /* MC things. What of them?     */
-       IFLA_INET6_CACHEINFO,   /* time values and max reasm size */
-       IFLA_INET6_ICMP6STATS,  /* statistics (icmpv6)          */
-       __IFLA_INET6_MAX
-};
-
-#define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
-
-struct ifla_cacheinfo {
-       __u32   max_reasm_len;
-       __u32   tstamp;         /* ipv6InterfaceTable updated timestamp */
-       __u32   reachable_time;
-       __u32   retrans_time;
-};
-
-enum {
-       IFLA_INFO_UNSPEC,
-       IFLA_INFO_KIND,
-       IFLA_INFO_DATA,
-       IFLA_INFO_XSTATS,
-       __IFLA_INFO_MAX,
-};
-
-#define IFLA_INFO_MAX  (__IFLA_INFO_MAX - 1)
-
-/* VLAN section */
-
-enum {
-       IFLA_VLAN_UNSPEC,
-       IFLA_VLAN_ID,
-       IFLA_VLAN_FLAGS,
-       IFLA_VLAN_EGRESS_QOS,
-       IFLA_VLAN_INGRESS_QOS,
-       __IFLA_VLAN_MAX,
-};
-
-#define IFLA_VLAN_MAX  (__IFLA_VLAN_MAX - 1)
-
-struct ifla_vlan_flags {
-       __u32   flags;
-       __u32   mask;
-};
-
-enum {
-       IFLA_VLAN_QOS_UNSPEC,
-       IFLA_VLAN_QOS_MAPPING,
-       __IFLA_VLAN_QOS_MAX
-};
-
-#define IFLA_VLAN_QOS_MAX      (__IFLA_VLAN_QOS_MAX - 1)
-
-struct ifla_vlan_qos_mapping {
-       __u32 from;
-       __u32 to;
-};
-
-/* MACVLAN section */
-enum {
-       IFLA_MACVLAN_UNSPEC,
-       IFLA_MACVLAN_MODE,
-       IFLA_MACVLAN_FLAGS,
-       __IFLA_MACVLAN_MAX,
-};
-
-#define IFLA_MACVLAN_MAX (__IFLA_MACVLAN_MAX - 1)
-
-enum macvlan_mode {
-       MACVLAN_MODE_PRIVATE = 1, /* don't talk to other macvlans */
-       MACVLAN_MODE_VEPA    = 2, /* talk to other ports through ext bridge */
-       MACVLAN_MODE_BRIDGE  = 4, /* talk to bridge ports directly */
-       MACVLAN_MODE_PASSTHRU = 8,/* take over the underlying device */
-};
-
-#define MACVLAN_FLAG_NOPROMISC 1
-
-/* VXLAN section */
-enum {
-       IFLA_VXLAN_UNSPEC,
-       IFLA_VXLAN_ID,
-       IFLA_VXLAN_GROUP,
-       IFLA_VXLAN_LINK,
-       IFLA_VXLAN_LOCAL,
-       IFLA_VXLAN_TTL,
-       IFLA_VXLAN_TOS,
-       IFLA_VXLAN_LEARNING,
-       IFLA_VXLAN_AGEING,
-       IFLA_VXLAN_LIMIT,
-       IFLA_VXLAN_PORT_RANGE,
-       __IFLA_VXLAN_MAX
-};
-#define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
-
-struct ifla_vxlan_port_range {
-       __be16  low;
-       __be16  high;
-};
-
-/* SR-IOV virtual function management section */
-
-enum {
-       IFLA_VF_INFO_UNSPEC,
-       IFLA_VF_INFO,
-       __IFLA_VF_INFO_MAX,
-};
-
-#define IFLA_VF_INFO_MAX (__IFLA_VF_INFO_MAX - 1)
-
-enum {
-       IFLA_VF_UNSPEC,
-       IFLA_VF_MAC,            /* Hardware queue specific attributes */
-       IFLA_VF_VLAN,
-       IFLA_VF_TX_RATE,        /* TX Bandwidth Allocation */
-       IFLA_VF_SPOOFCHK,       /* Spoof Checking on/off switch */
-       __IFLA_VF_MAX,
-};
-
-#define IFLA_VF_MAX (__IFLA_VF_MAX - 1)
-
-struct ifla_vf_mac {
-       __u32 vf;
-       __u8 mac[32]; /* MAX_ADDR_LEN */
-};
-
-struct ifla_vf_vlan {
-       __u32 vf;
-       __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
-       __u32 qos;
-};
-
-struct ifla_vf_tx_rate {
-       __u32 vf;
-       __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
-};
-
-struct ifla_vf_spoofchk {
-       __u32 vf;
-       __u32 setting;
-};
-#ifdef __KERNEL__
 
 /* We don't want this structure exposed to user space */
 struct ifla_vf_info {
@@ -346,96 +13,4 @@ struct ifla_vf_info {
        __u32 tx_rate;
        __u32 spoofchk;
 };
-#endif
-
-/* VF ports management section
- *
- *     Nested layout of set/get msg is:
- *
- *             [IFLA_NUM_VF]
- *             [IFLA_VF_PORTS]
- *                     [IFLA_VF_PORT]
- *                             [IFLA_PORT_*], ...
- *                     [IFLA_VF_PORT]
- *                             [IFLA_PORT_*], ...
- *                     ...
- *             [IFLA_PORT_SELF]
- *                     [IFLA_PORT_*], ...
- */
-
-enum {
-       IFLA_VF_PORT_UNSPEC,
-       IFLA_VF_PORT,                   /* nest */
-       __IFLA_VF_PORT_MAX,
-};
-
-#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
-
-enum {
-       IFLA_PORT_UNSPEC,
-       IFLA_PORT_VF,                   /* __u32 */
-       IFLA_PORT_PROFILE,              /* string */
-       IFLA_PORT_VSI_TYPE,             /* 802.1Qbg (pre-)standard VDP */
-       IFLA_PORT_INSTANCE_UUID,        /* binary UUID */
-       IFLA_PORT_HOST_UUID,            /* binary UUID */
-       IFLA_PORT_REQUEST,              /* __u8 */
-       IFLA_PORT_RESPONSE,             /* __u16, output only */
-       __IFLA_PORT_MAX,
-};
-
-#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
-
-#define PORT_PROFILE_MAX       40
-#define PORT_UUID_MAX          16
-#define PORT_SELF_VF           -1
-
-enum {
-       PORT_REQUEST_PREASSOCIATE = 0,
-       PORT_REQUEST_PREASSOCIATE_RR,
-       PORT_REQUEST_ASSOCIATE,
-       PORT_REQUEST_DISASSOCIATE,
-};
-
-enum {
-       PORT_VDP_RESPONSE_SUCCESS = 0,
-       PORT_VDP_RESPONSE_INVALID_FORMAT,
-       PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
-       PORT_VDP_RESPONSE_UNUSED_VTID,
-       PORT_VDP_RESPONSE_VTID_VIOLATION,
-       PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
-       PORT_VDP_RESPONSE_OUT_OF_SYNC,
-       /* 0x08-0xFF reserved for future VDP use */
-       PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
-       PORT_PROFILE_RESPONSE_INPROGRESS,
-       PORT_PROFILE_RESPONSE_INVALID,
-       PORT_PROFILE_RESPONSE_BADSTATE,
-       PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
-       PORT_PROFILE_RESPONSE_ERROR,
-};
-
-struct ifla_port_vsi {
-       __u8 vsi_mgr_id;
-       __u8 vsi_type_id[3];
-       __u8 vsi_type_version;
-       __u8 pad[3];
-};
-
-
-/* IPoIB section */
-
-enum {
-       IFLA_IPOIB_UNSPEC,
-       IFLA_IPOIB_PKEY,
-       IFLA_IPOIB_MODE,
-       IFLA_IPOIB_UMCAST,
-       __IFLA_IPOIB_MAX
-};
-
-enum {
-       IPOIB_MODE_DATAGRAM  = 0, /* using unreliable datagram QPs */
-       IPOIB_MODE_CONNECTED = 1, /* using connected QPs */
-};
-
-#define IFLA_IPOIB_MAX (__IFLA_IPOIB_MAX - 1)
-
 #endif /* _LINUX_IF_LINK_H */