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