xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/atmbr2684.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi #ifndef _LINUX_ATMBR2684_H
2*53ee8cc1Swenshuai.xi #define _LINUX_ATMBR2684_H
3*53ee8cc1Swenshuai.xi 
4*53ee8cc1Swenshuai.xi #include <linux/atm.h>
5*53ee8cc1Swenshuai.xi #include <linux/if.h>		/* For IFNAMSIZ */
6*53ee8cc1Swenshuai.xi 
7*53ee8cc1Swenshuai.xi /*
8*53ee8cc1Swenshuai.xi  * Type of media we're bridging (ethernet, token ring, etc)  Currently only
9*53ee8cc1Swenshuai.xi  * ethernet is supported
10*53ee8cc1Swenshuai.xi  */
11*53ee8cc1Swenshuai.xi #define BR2684_MEDIA_ETHERNET	(0)	/* 802.3 */
12*53ee8cc1Swenshuai.xi #define BR2684_MEDIA_802_4	(1)	/* 802.4 */
13*53ee8cc1Swenshuai.xi #define BR2684_MEDIA_TR		(2)	/* 802.5 - token ring */
14*53ee8cc1Swenshuai.xi #define BR2684_MEDIA_FDDI	(3)
15*53ee8cc1Swenshuai.xi #define BR2684_MEDIA_802_6	(4)	/* 802.6 */
16*53ee8cc1Swenshuai.xi 
17*53ee8cc1Swenshuai.xi 					/* used only at device creation:  */
18*53ee8cc1Swenshuai.xi #define BR2684_FLAG_ROUTED	(1<<16)	/* payload is routed, not bridged */
19*53ee8cc1Swenshuai.xi 
20*53ee8cc1Swenshuai.xi /*
21*53ee8cc1Swenshuai.xi  * Is there FCS inbound on this VC?  This currently isn't supported.
22*53ee8cc1Swenshuai.xi  */
23*53ee8cc1Swenshuai.xi #define BR2684_FCSIN_NO		(0)
24*53ee8cc1Swenshuai.xi #define BR2684_FCSIN_IGNORE	(1)
25*53ee8cc1Swenshuai.xi #define BR2684_FCSIN_VERIFY	(2)
26*53ee8cc1Swenshuai.xi 
27*53ee8cc1Swenshuai.xi /*
28*53ee8cc1Swenshuai.xi  * Is there FCS outbound on this VC?  This currently isn't supported.
29*53ee8cc1Swenshuai.xi  */
30*53ee8cc1Swenshuai.xi #define BR2684_FCSOUT_NO	(0)
31*53ee8cc1Swenshuai.xi #define BR2684_FCSOUT_SENDZERO	(1)
32*53ee8cc1Swenshuai.xi #define BR2684_FCSOUT_GENERATE	(2)
33*53ee8cc1Swenshuai.xi 
34*53ee8cc1Swenshuai.xi /*
35*53ee8cc1Swenshuai.xi  * Does this VC include LLC encapsulation?
36*53ee8cc1Swenshuai.xi  */
37*53ee8cc1Swenshuai.xi #define BR2684_ENCAPS_VC	(0)	/* VC-mux */
38*53ee8cc1Swenshuai.xi #define BR2684_ENCAPS_LLC	(1)
39*53ee8cc1Swenshuai.xi #define BR2684_ENCAPS_AUTODETECT (2)	/* Unsuported */
40*53ee8cc1Swenshuai.xi 
41*53ee8cc1Swenshuai.xi /*
42*53ee8cc1Swenshuai.xi  * Is this VC bridged or routed?
43*53ee8cc1Swenshuai.xi  */
44*53ee8cc1Swenshuai.xi 
45*53ee8cc1Swenshuai.xi #define BR2684_PAYLOAD_ROUTED   (0)
46*53ee8cc1Swenshuai.xi #define BR2684_PAYLOAD_BRIDGED  (1)
47*53ee8cc1Swenshuai.xi 
48*53ee8cc1Swenshuai.xi /*
49*53ee8cc1Swenshuai.xi  * This is for the ATM_NEWBACKENDIF call - these are like socket families:
50*53ee8cc1Swenshuai.xi  * the first element of the structure is the backend number and the rest
51*53ee8cc1Swenshuai.xi  * is per-backend specific
52*53ee8cc1Swenshuai.xi  */
53*53ee8cc1Swenshuai.xi struct atm_newif_br2684 {
54*53ee8cc1Swenshuai.xi 	atm_backend_t backend_num;	/* ATM_BACKEND_BR2684 */
55*53ee8cc1Swenshuai.xi 	int media;		/* BR2684_MEDIA_*, flags in upper bits */
56*53ee8cc1Swenshuai.xi 	char ifname[IFNAMSIZ];
57*53ee8cc1Swenshuai.xi 	int mtu;
58*53ee8cc1Swenshuai.xi };
59*53ee8cc1Swenshuai.xi 
60*53ee8cc1Swenshuai.xi /*
61*53ee8cc1Swenshuai.xi  * This structure is used to specify a br2684 interface - either by a
62*53ee8cc1Swenshuai.xi  * positive integer (returned by ATM_NEWBACKENDIF) or the interfaces name
63*53ee8cc1Swenshuai.xi  */
64*53ee8cc1Swenshuai.xi #define BR2684_FIND_BYNOTHING	(0)
65*53ee8cc1Swenshuai.xi #define BR2684_FIND_BYNUM	(1)
66*53ee8cc1Swenshuai.xi #define BR2684_FIND_BYIFNAME	(2)
67*53ee8cc1Swenshuai.xi struct br2684_if_spec {
68*53ee8cc1Swenshuai.xi 	int method;		/* BR2684_FIND_* */
69*53ee8cc1Swenshuai.xi 	union {
70*53ee8cc1Swenshuai.xi 		char ifname[IFNAMSIZ];
71*53ee8cc1Swenshuai.xi 		int devnum;
72*53ee8cc1Swenshuai.xi 	} spec;
73*53ee8cc1Swenshuai.xi };
74*53ee8cc1Swenshuai.xi 
75*53ee8cc1Swenshuai.xi /*
76*53ee8cc1Swenshuai.xi  * This is for the ATM_SETBACKEND call - these are like socket families:
77*53ee8cc1Swenshuai.xi  * the first element of the structure is the backend number and the rest
78*53ee8cc1Swenshuai.xi  * is per-backend specific
79*53ee8cc1Swenshuai.xi  */
80*53ee8cc1Swenshuai.xi struct atm_backend_br2684 {
81*53ee8cc1Swenshuai.xi 	atm_backend_t backend_num;	/* ATM_BACKEND_BR2684 */
82*53ee8cc1Swenshuai.xi 	struct br2684_if_spec ifspec;
83*53ee8cc1Swenshuai.xi 	int fcs_in;		/* BR2684_FCSIN_* */
84*53ee8cc1Swenshuai.xi 	int fcs_out;		/* BR2684_FCSOUT_* */
85*53ee8cc1Swenshuai.xi 	int fcs_auto;		/* 1: fcs_{in,out} disabled if no FCS rx'ed */
86*53ee8cc1Swenshuai.xi 	int encaps;		/* BR2684_ENCAPS_* */
87*53ee8cc1Swenshuai.xi 	int has_vpiid;		/* 1: use vpn_id - Unsupported */
88*53ee8cc1Swenshuai.xi 	__u8 vpn_id[7];
89*53ee8cc1Swenshuai.xi 	int send_padding;	/* unsupported */
90*53ee8cc1Swenshuai.xi 	int min_size;		/* we will pad smaller packets than this */
91*53ee8cc1Swenshuai.xi };
92*53ee8cc1Swenshuai.xi 
93*53ee8cc1Swenshuai.xi /*
94*53ee8cc1Swenshuai.xi  * The BR2684_SETFILT ioctl is an experimental mechanism for folks
95*53ee8cc1Swenshuai.xi  * terminating a large number of IP-only vcc's.  When netfilter allows
96*53ee8cc1Swenshuai.xi  * efficient per-if in/out filters, this support will be removed
97*53ee8cc1Swenshuai.xi  */
98*53ee8cc1Swenshuai.xi struct br2684_filter {
99*53ee8cc1Swenshuai.xi 	__be32 prefix;		/* network byte order */
100*53ee8cc1Swenshuai.xi 	__be32 netmask;		/* 0 = disable filter */
101*53ee8cc1Swenshuai.xi };
102*53ee8cc1Swenshuai.xi 
103*53ee8cc1Swenshuai.xi struct br2684_filter_set {
104*53ee8cc1Swenshuai.xi 	struct br2684_if_spec ifspec;
105*53ee8cc1Swenshuai.xi 	struct br2684_filter filter;
106*53ee8cc1Swenshuai.xi };
107*53ee8cc1Swenshuai.xi 
108*53ee8cc1Swenshuai.xi enum br2684_payload {
109*53ee8cc1Swenshuai.xi 	p_routed = BR2684_PAYLOAD_ROUTED,
110*53ee8cc1Swenshuai.xi 	p_bridged = BR2684_PAYLOAD_BRIDGED,
111*53ee8cc1Swenshuai.xi };
112*53ee8cc1Swenshuai.xi 
113*53ee8cc1Swenshuai.xi #define BR2684_SETFILT	_IOW( 'a', ATMIOC_BACKEND + 0, \
114*53ee8cc1Swenshuai.xi 				struct br2684_filter_set)
115*53ee8cc1Swenshuai.xi 
116*53ee8cc1Swenshuai.xi #endif /* _LINUX_ATMBR2684_H */
117