1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/****************************************************************************
2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   This header was automatically generated from a Linux kernel header
5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   of the same name, to make information necessary for userspace to
6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   structures, and macros generated from the original header, and thus,
8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   contains no copyrightable information.
9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   To edit the content of this header, modify the corresponding
11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   Any manual change here will be lost the next time this script will
15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***   be run. You've been warned!
16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ***
17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************
18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/
19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef _LINUX_IF_BONDING_H
20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define _LINUX_IF_BONDING_H
21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/if.h>
22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h>
23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/if_ether.h>
24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_ABI_VERSION 2
25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_ENSLAVE_OLD (SIOCDEVPRIVATE)
26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_RELEASE_OLD (SIOCDEVPRIVATE + 1)
27655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_SETHWADDR_OLD (SIOCDEVPRIVATE + 2)
28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_SLAVE_INFO_QUERY_OLD (SIOCDEVPRIVATE + 11)
29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_INFO_QUERY_OLD (SIOCDEVPRIVATE + 12)
30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_CHANGE_ACTIVE_OLD (SIOCDEVPRIVATE + 13)
31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_CHECK_MII_STATUS (SIOCGMIIPHY)
32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_MODE_ROUNDROBIN 0
33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_MODE_ACTIVEBACKUP 1
34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_MODE_XOR 2
35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_MODE_BROADCAST 3
36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_MODE_8023AD 4
37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_MODE_TLB 5
38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_MODE_ALB 6
39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_LINK_UP 0
40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_LINK_FAIL 1
41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_LINK_DOWN 2
42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_LINK_BACK 3
43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_STATE_ACTIVE 0
44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_STATE_BACKUP 1
45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_DEFAULT_MAX_BONDS 1
46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_DEFAULT_TX_QUEUES 16
47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_DEFAULT_RESEND_IGMP 1
48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_XMIT_POLICY_LAYER2 0
49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_XMIT_POLICY_LAYER34 1
50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define BOND_XMIT_POLICY_LAYER23 2
5138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define BOND_XMIT_POLICY_ENCAP23 3
5238062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define BOND_XMIT_POLICY_ENCAP34 4
53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct ifbond {
54d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 bond_mode;
55d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 num_slaves;
56d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 miimon;
57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} ifbond;
58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengtypedef struct ifslave {
59d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s32 slave_id;
60d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  char slave_name[IFNAMSIZ];
61d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 link;
62d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __s8 state;
63d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u32 link_failure_count;
64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng} ifslave;
65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct ad_info {
66d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 aggregator_id;
67d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 ports;
68d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 actor_key;
69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u16 partner_key;
70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  __u8 partner_system[ETH_ALEN];
71655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng};
72655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif
73