1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef _ATMLEC_H_ 7 #define _ATMLEC_H_ 8 #include <linux/atmapi.h> 9 #include <linux/atmioc.h> 10 #include <linux/atm.h> 11 #include <linux/if_ether.h> 12 #include <linux/types.h> 13 #define ATMLEC_CTRL _IO('a', ATMIOC_LANE) 14 #define ATMLEC_DATA _IO('a', ATMIOC_LANE+1) 15 #define ATMLEC_MCAST _IO('a', ATMIOC_LANE+2) 16 #define MAX_LEC_ITF 48 17 typedef enum { 18 l_set_mac_addr, 19 l_del_mac_addr, 20 l_svc_setup, 21 l_addr_delete, 22 l_topology_change, 23 l_flush_complete, 24 l_arp_update, 25 l_narp_req, 26 l_config, 27 l_flush_tran_id, 28 l_set_lecid, 29 l_arp_xmt, 30 l_rdesc_arp_xmt, 31 l_associate_req, 32 l_should_bridge 33 } atmlec_msg_type; 34 #define ATMLEC_MSG_TYPE_MAX l_should_bridge 35 struct atmlec_config_msg { 36 unsigned int maximum_unknown_frame_count; 37 unsigned int max_unknown_frame_time; 38 unsigned short max_retry_count; 39 unsigned int aging_time; 40 unsigned int forward_delay_time; 41 unsigned int arp_response_time; 42 unsigned int flush_timeout; 43 unsigned int path_switching_delay; 44 unsigned int lane_version; 45 int mtu; 46 int is_proxy; 47 }; 48 struct atmlec_msg { 49 atmlec_msg_type type; 50 int sizeoftlvs; 51 union { 52 struct { 53 unsigned char mac_addr[ETH_ALEN]; 54 unsigned char atm_addr[ATM_ESA_LEN]; 55 unsigned int flag; 56 unsigned int targetless_le_arp; 57 unsigned int no_source_le_narp; 58 } normal; 59 struct atmlec_config_msg config; 60 struct { 61 __u16 lec_id; 62 __u32 tran_id; 63 unsigned char mac_addr[ETH_ALEN]; 64 unsigned char atm_addr[ATM_ESA_LEN]; 65 } proxy; 66 } content; 67 } __ATM_API_ALIGN; 68 struct atmlec_ioc { 69 int dev_num; 70 unsigned char atm_addr[ATM_ESA_LEN]; 71 unsigned char receive; 72 }; 73 #endif 74