#ifndef _NET_IF_BOND_VAR_H_
#define _NET_IF_BOND_VAR_H_
#include <sys/types.h>
#include <net/lacp.h>
#define IF_BOND_OP_ADD_INTERFACE 1
#define IF_BOND_OP_REMOVE_INTERFACE 2
#define IF_BOND_OP_GET_STATUS 3
#define IF_BOND_OP_SET_VERBOSE 4
struct if_bond_partner_state {
lacp_system ibps_system;
lacp_system_priority ibps_system_priority;
lacp_key ibps_key;
lacp_port ibps_port;
lacp_port_priority ibps_port_priority;
lacp_actor_partner_state ibps_state;
u_char ibps_reserved1;
};
#define IF_BOND_STATUS_SELECTED_STATE_UNSELECTED 0
#define IF_BOND_STATUS_SELECTED_STATE_SELECTED 1
#define IF_BOND_STATUS_SELECTED_STATE_STANDBY 2
struct if_bond_status {
char ibs_if_name[IFNAMSIZ];
lacp_port_priority ibs_port_priority;
lacp_actor_partner_state ibs_state;
u_char ibs_selected_state;
struct if_bond_partner_state ibs_partner_state;
u_int32_t ibs_reserved[8];
};
#define IF_BOND_STATUS_REQ_VERSION 1
struct if_bond_status_req {
int ibsr_version;
int ibsr_total;
int ibsr_count;
union {
char * ibsru_buffer32;
u_int64_t ibsru_buffer64;
} ibsr_ibsru;
lacp_key ibsr_key;
u_int16_t ibsr_reserved0;
u_int32_t ibsr_reserved[3];
};
#if defined(__LP64__)
#define ibsr_buffer ibsr_ibsru.ibsru_buffer64
#else
#define ibsr_buffer ibsr_ibsru.ibsru_buffer32
#endif
struct if_bond_req {
u_int32_t ibr_op;
union {
char ibru_if_name[IFNAMSIZ];
struct if_bond_status_req ibru_status;
int ibru_int_val;
} ibr_ibru;
};
#ifdef KERNEL_PRIVATE
int bond_family_init(void);
#endif KERNEL_PRIVATE
#endif