Dr Andrew Scott G7VAV

My photo
 
June 2025
Mo Tu We Th Fr Sa Su
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6


atmlec.h
01: /*
02:  * ATM Lan Emulation Daemon driver interface
03:  *
04:  * Marko Kiiskila <mkiiskila@yahoo.com>
05:  */
06: 
07: #ifndef _ATMLEC_H_
08: #define _ATMLEC_H_
09: 
10: #include <linux/atmapi.h>
11: #include <linux/atmioc.h>
12: #include <linux/atm.h>
13: #include <linux/if_ether.h>
14: #include <linux/types.h>
15: 
16: /* ATM lec daemon control socket */
17: #define ATMLEC_CTRL     _IO('a', ATMIOC_LANE)
18: #define ATMLEC_DATA     _IO('a', ATMIOC_LANE+1)
19: #define ATMLEC_MCAST    _IO('a', ATMIOC_LANE+2)
20: 
21: /* Maximum number of LEC interfaces (tweakable) */
22: #define MAX_LEC_ITF 48
23: 
24: /*
25:  * From the total of MAX_LEC_ITF, last NUM_TR_DEVS are reserved for Token Ring.
26:  * E.g. if MAX_LEC_ITF = 48 and NUM_TR_DEVS = 8, then lec0-lec39 are for
27:  * Ethernet ELANs and lec40-lec47 are for Token Ring ELANS.
28:  */
29: #define NUM_TR_DEVS 8
30: 
31: typedef enum {
32:         l_set_mac_addr,
33:         l_del_mac_addr,
34:         l_svc_setup,
35:         l_addr_delete,
36:         l_topology_change,
37:         l_flush_complete,
38:         l_arp_update,
39:         l_narp_req,             /* LANE2 mandates the use of this */
40:         l_config,
41:         l_flush_tran_id,
42:         l_set_lecid,
43:         l_arp_xmt,
44:         l_rdesc_arp_xmt,
45:         l_associate_req,
46:         l_should_bridge         /* should we bridge this MAC? */
47: } atmlec_msg_type;
48: 
49: #define ATMLEC_MSG_TYPE_MAX l_should_bridge
50: 
51: struct atmlec_config_msg {
52:         unsigned int maximum_unknown_frame_count;
53:         unsigned int max_unknown_frame_time;
54:         unsigned short max_retry_count;
55:         unsigned int aging_time;
56:         unsigned int forward_delay_time;
57:         unsigned int arp_response_time;
58:         unsigned int flush_timeout;
59:         unsigned int path_switching_delay;
60:         unsigned int lane_version;      /* LANE2: 1 for LANEv1, 2 for LANEv2 */
61:         int mtu;
62:         int is_proxy;
63: };
64: 
65: struct atmlec_msg {
66:         atmlec_msg_type type;
67:         int sizeoftlvs;         /* LANE2: if != 0, tlvs follow */
68:         union {
69:                 struct {
70:                         unsigned char mac_addr[ETH_ALEN];
71:                         unsigned char atm_addr[ATM_ESA_LEN];
72:                         unsigned int flag;      /*
73:                                                  * Topology_change flag,
74:                                                  * remoteflag, permanent flag,
75:                                                  * lecid, transaction id
76:                                                  */
77:                         unsigned int targetless_le_arp; /* LANE2 */
78:                         unsigned int no_source_le_narp; /* LANE2 */
79:                 } normal;
80:                 struct atmlec_config_msg config;
81:                 struct {
82:                         __u16 lec_id;                           /* requestor lec_id  */
83:                         __u32 tran_id;                          /* transaction id    */
84:                         unsigned char mac_addr[ETH_ALEN];       /* dst mac addr      */
85:                         unsigned char atm_addr[ATM_ESA_LEN];    /* reqestor ATM addr */
86:                 } proxy;        /*
87:                                  * For mapping LE_ARP requests to responses. Filled by
88:                                  * zeppelin, returned by kernel. Used only when proxying
89:                                  */
90:         } content;
91: } __ATM_API_ALIGN;
92: 
93: struct atmlec_ioc {
94:         int dev_num;
95:         unsigned char atm_addr[ATM_ESA_LEN];
96:         unsigned char receive;  /* 1= receive vcc, 0 = send vcc */
97: };
98: #endif /* _ATMLEC_H_ */
99: 


for client (none)
© Andrew Scott 2006 - 2025,
All Rights Reserved
http://www.andrew-scott.uk/
Andrew Scott
http://www.andrew-scott.co.uk/