Blame view

include/linux/atmlec.h 2.5 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
  /*
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
2
   * ATM Lan Emulation Daemon driver interface
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
3
   *
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
4
   * Marko Kiiskila <mkiiskila@yahoo.com>
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5
6
7
8
9
10
11
12
13
   */
  
  #ifndef _ATMLEC_H_
  #define _ATMLEC_H_
  
  #include <linux/atmapi.h>
  #include <linux/atmioc.h>
  #include <linux/atm.h>
  #include <linux/if_ether.h>
9adfbfb61   Arnd Bergmann   make most exporte...
14
  #include <linux/types.h>
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
15

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
16
  /* ATM lec daemon control socket */
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
17
18
19
  #define ATMLEC_CTRL	_IO('a', ATMIOC_LANE)
  #define ATMLEC_DATA	_IO('a', ATMIOC_LANE+1)
  #define ATMLEC_MCAST	_IO('a', ATMIOC_LANE+2)
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
20
21
22
  
  /* Maximum number of LEC interfaces (tweakable) */
  #define MAX_LEC_ITF 48
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
23
24
  /*
   * From the total of MAX_LEC_ITF, last NUM_TR_DEVS are reserved for Token Ring.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
25
26
27
28
   * E.g. if MAX_LEC_ITF = 48 and NUM_TR_DEVS = 8, then lec0-lec39 are for
   * Ethernet ELANs and lec40-lec47 are for Token Ring ELANS.
   */
  #define NUM_TR_DEVS 8
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  typedef enum {
  	l_set_mac_addr,
  	l_del_mac_addr,
  	l_svc_setup,
  	l_addr_delete,
  	l_topology_change,
  	l_flush_complete,
  	l_arp_update,
  	l_narp_req,		/* LANE2 mandates the use of this */
  	l_config,
  	l_flush_tran_id,
  	l_set_lecid,
  	l_arp_xmt,
  	l_rdesc_arp_xmt,
  	l_associate_req,
  	l_should_bridge		/* should we bridge this MAC? */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
45
46
47
48
49
  } atmlec_msg_type;
  
  #define ATMLEC_MSG_TYPE_MAX l_should_bridge
  
  struct atmlec_config_msg {
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
50
51
52
53
54
55
56
57
58
59
60
  	unsigned int maximum_unknown_frame_count;
  	unsigned int max_unknown_frame_time;
  	unsigned short max_retry_count;
  	unsigned int aging_time;
  	unsigned int forward_delay_time;
  	unsigned int arp_response_time;
  	unsigned int flush_timeout;
  	unsigned int path_switching_delay;
  	unsigned int lane_version;	/* LANE2: 1 for LANEv1, 2 for LANEv2 */
  	int mtu;
  	int is_proxy;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
61
  };
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
62

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
63
  struct atmlec_msg {
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  	atmlec_msg_type type;
  	int sizeoftlvs;		/* LANE2: if != 0, tlvs follow */
  	union {
  		struct {
  			unsigned char mac_addr[ETH_ALEN];
  			unsigned char atm_addr[ATM_ESA_LEN];
  			unsigned int flag;	/*
  						 * Topology_change flag,
  						 * remoteflag, permanent flag,
  						 * lecid, transaction id
  						 */
  			unsigned int targetless_le_arp;	/* LANE2 */
  			unsigned int no_source_le_narp;	/* LANE2 */
  		} normal;
  		struct atmlec_config_msg config;
  		struct {
9adfbfb61   Arnd Bergmann   make most exporte...
80
81
  			__u16 lec_id;				/* requestor lec_id  */
  			__u32 tran_id;				/* transaction id    */
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
82
83
84
85
86
87
88
  			unsigned char mac_addr[ETH_ALEN];	/* dst mac addr      */
  			unsigned char atm_addr[ATM_ESA_LEN];	/* reqestor ATM addr */
  		} proxy;	/*
  				 * For mapping LE_ARP requests to responses. Filled by
  				 * zeppelin, returned by kernel. Used only when proxying
  				 */
  	} content;
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
89
90
91
  } __ATM_API_ALIGN;
  
  struct atmlec_ioc {
1c9d3e72a   Chas Williams   [ATM]: [lec] head...
92
93
94
  	int dev_num;
  	unsigned char atm_addr[ATM_ESA_LEN];
  	unsigned char receive;	/* 1= receive vcc, 0 = send vcc */
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
95
96
  };
  #endif /* _ATMLEC_H_ */