0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044 #ifndef _LINUX_IF_BONDING_H
0045 #define _LINUX_IF_BONDING_H
0046
0047 #include <linux/if.h>
0048 #include <linux/types.h>
0049 #include <linux/if_ether.h>
0050
0051
0052 #define BOND_ABI_VERSION 2
0053
0054
0055
0056
0057
0058 #define BOND_ENSLAVE_OLD (SIOCDEVPRIVATE)
0059 #define BOND_RELEASE_OLD (SIOCDEVPRIVATE + 1)
0060 #define BOND_SETHWADDR_OLD (SIOCDEVPRIVATE + 2)
0061 #define BOND_SLAVE_INFO_QUERY_OLD (SIOCDEVPRIVATE + 11)
0062 #define BOND_INFO_QUERY_OLD (SIOCDEVPRIVATE + 12)
0063 #define BOND_CHANGE_ACTIVE_OLD (SIOCDEVPRIVATE + 13)
0064
0065 #define BOND_CHECK_MII_STATUS (SIOCGMIIPHY)
0066
0067 #define BOND_MODE_ROUNDROBIN 0
0068 #define BOND_MODE_ACTIVEBACKUP 1
0069 #define BOND_MODE_XOR 2
0070 #define BOND_MODE_BROADCAST 3
0071 #define BOND_MODE_8023AD 4
0072 #define BOND_MODE_TLB 5
0073 #define BOND_MODE_ALB 6
0074
0075
0076 #define BOND_LINK_UP 0
0077 #define BOND_LINK_FAIL 1
0078 #define BOND_LINK_DOWN 2
0079 #define BOND_LINK_BACK 3
0080
0081
0082 #define BOND_STATE_ACTIVE 0
0083 #define BOND_STATE_BACKUP 1
0084
0085 #define BOND_DEFAULT_MAX_BONDS 1
0086
0087 #define BOND_DEFAULT_TX_QUEUES 16
0088
0089 #define BOND_DEFAULT_RESEND_IGMP 1
0090
0091
0092 #define BOND_XMIT_POLICY_LAYER2 0
0093 #define BOND_XMIT_POLICY_LAYER34 1
0094 #define BOND_XMIT_POLICY_LAYER23 2
0095 #define BOND_XMIT_POLICY_ENCAP23 3
0096 #define BOND_XMIT_POLICY_ENCAP34 4
0097 #define BOND_XMIT_POLICY_VLAN_SRCMAC 5
0098
0099
0100 #define LACP_STATE_LACP_ACTIVITY 0x1
0101 #define LACP_STATE_LACP_TIMEOUT 0x2
0102 #define LACP_STATE_AGGREGATION 0x4
0103 #define LACP_STATE_SYNCHRONIZATION 0x8
0104 #define LACP_STATE_COLLECTING 0x10
0105 #define LACP_STATE_DISTRIBUTING 0x20
0106 #define LACP_STATE_DEFAULTED 0x40
0107 #define LACP_STATE_EXPIRED 0x80
0108
0109 typedef struct ifbond {
0110 __s32 bond_mode;
0111 __s32 num_slaves;
0112 __s32 miimon;
0113 } ifbond;
0114
0115 typedef struct ifslave {
0116 __s32 slave_id;
0117 char slave_name[IFNAMSIZ];
0118 __s8 link;
0119 __s8 state;
0120 __u32 link_failure_count;
0121 } ifslave;
0122
0123 struct ad_info {
0124 __u16 aggregator_id;
0125 __u16 ports;
0126 __u16 actor_key;
0127 __u16 partner_key;
0128 __u8 partner_system[ETH_ALEN];
0129 };
0130
0131
0132 enum {
0133 BOND_XSTATS_UNSPEC,
0134 BOND_XSTATS_3AD,
0135 __BOND_XSTATS_MAX
0136 };
0137 #define BOND_XSTATS_MAX (__BOND_XSTATS_MAX - 1)
0138
0139
0140 enum {
0141 BOND_3AD_STAT_LACPDU_RX,
0142 BOND_3AD_STAT_LACPDU_TX,
0143 BOND_3AD_STAT_LACPDU_UNKNOWN_RX,
0144 BOND_3AD_STAT_LACPDU_ILLEGAL_RX,
0145 BOND_3AD_STAT_MARKER_RX,
0146 BOND_3AD_STAT_MARKER_TX,
0147 BOND_3AD_STAT_MARKER_RESP_RX,
0148 BOND_3AD_STAT_MARKER_RESP_TX,
0149 BOND_3AD_STAT_MARKER_UNKNOWN_RX,
0150 BOND_3AD_STAT_PAD,
0151 __BOND_3AD_STAT_MAX
0152 };
0153 #define BOND_3AD_STAT_MAX (__BOND_3AD_STAT_MAX - 1)
0154
0155 #endif