atmlec.h
01:
02:
03:
04: <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:
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:
22: #define MAX_LEC_ITF 48
23:
24:
25:
26:
27:
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,
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
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;
61: int mtu;
62: int is_proxy;
63: };
64:
65: struct atmlec_msg {
66: atmlec_msg_type type;
67: int sizeoftlvs;
68: union {
69: struct {
70: unsigned char mac_addr[ETH_ALEN];
71: unsigned char atm_addr[ATM_ESA_LEN];
72: unsigned int flag;
73:
74:
75:
76:
77: unsigned int targetless_le_arp;
78: unsigned int no_source_le_narp;
79: } normal;
80: struct atmlec_config_msg config;
81: struct {
82: __u16 lec_id;
83: __u32 tran_id;
84: unsigned char mac_addr[ETH_ALEN];
85: unsigned char atm_addr[ATM_ESA_LEN];
86: } proxy;
87:
88:
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;
97: };
98: #endif
99:
© Andrew Scott 2006 -
2025,
All Rights Reserved