brintos

brintos / linux-shallow public Read only

0
0
Text · 2.3 KiB · c68346b Raw
93 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2/*3 * ATM Lan Emulation Daemon driver interface4 *5 * Marko Kiiskila <mkiiskila@yahoo.com>6 */7 8#ifndef _ATMLEC_H_9#define _ATMLEC_H_10 11#include <linux/atmapi.h>12#include <linux/atmioc.h>13#include <linux/atm.h>14#include <linux/if_ether.h>15#include <linux/types.h>16 17/* ATM lec daemon control socket */18#define ATMLEC_CTRL	_IO('a', ATMIOC_LANE)19#define ATMLEC_DATA	_IO('a', ATMIOC_LANE+1)20#define ATMLEC_MCAST	_IO('a', ATMIOC_LANE+2)21 22/* Maximum number of LEC interfaces (tweakable) */23#define MAX_LEC_ITF 4824 25typedef enum {26	l_set_mac_addr,27	l_del_mac_addr,28	l_svc_setup,29	l_addr_delete,30	l_topology_change,31	l_flush_complete,32	l_arp_update,33	l_narp_req,		/* LANE2 mandates the use of this */34	l_config,35	l_flush_tran_id,36	l_set_lecid,37	l_arp_xmt,38	l_rdesc_arp_xmt,39	l_associate_req,40	l_should_bridge		/* should we bridge this MAC? */41} atmlec_msg_type;42 43#define ATMLEC_MSG_TYPE_MAX l_should_bridge44 45struct atmlec_config_msg {46	unsigned int maximum_unknown_frame_count;47	unsigned int max_unknown_frame_time;48	unsigned short max_retry_count;49	unsigned int aging_time;50	unsigned int forward_delay_time;51	unsigned int arp_response_time;52	unsigned int flush_timeout;53	unsigned int path_switching_delay;54	unsigned int lane_version;	/* LANE2: 1 for LANEv1, 2 for LANEv2 */55	int mtu;56	int is_proxy;57};58 59struct atmlec_msg {60	atmlec_msg_type type;61	int sizeoftlvs;		/* LANE2: if != 0, tlvs follow */62	union {63		struct {64			unsigned char mac_addr[ETH_ALEN];65			unsigned char atm_addr[ATM_ESA_LEN];66			unsigned int flag;	/*67						 * Topology_change flag,68						 * remoteflag, permanent flag,69						 * lecid, transaction id70						 */71			unsigned int targetless_le_arp;	/* LANE2 */72			unsigned int no_source_le_narp;	/* LANE2 */73		} normal;74		struct atmlec_config_msg config;75		struct {76			__u16 lec_id;				/* requestor lec_id  */77			__u32 tran_id;				/* transaction id    */78			unsigned char mac_addr[ETH_ALEN];	/* dst mac addr      */79			unsigned char atm_addr[ATM_ESA_LEN];	/* reqestor ATM addr */80		} proxy;	/*81				 * For mapping LE_ARP requests to responses. Filled by82				 * zeppelin, returned by kernel. Used only when proxying83				 */84	} content;85} __ATM_API_ALIGN;86 87struct atmlec_ioc {88	int dev_num;89	unsigned char atm_addr[ATM_ESA_LEN];90	unsigned char receive;	/* 1= receive vcc, 0 = send vcc */91};92#endif /* _ATMLEC_H_ */93