1
2
3
4
5
6
7#ifndef _LINUX_L2TP_H_
8#define _LINUX_L2TP_H_
9
10#include <linux/types.h>
11#include <linux/socket.h>
12#ifdef __KERNEL__
13#include <linux/in.h>
14#include <linux/in6.h>
15#else
16#include <netinet/in.h>
17#endif
18
19#define IPPROTO_L2TP 115
20
21
22
23
24
25
26
27#define __SOCK_SIZE__ 16
28struct sockaddr_l2tpip {
29
30 __kernel_sa_family_t l2tp_family;
31 __be16 l2tp_unused;
32 struct in_addr l2tp_addr;
33
34 __u32 l2tp_conn_id;
35
36
37 unsigned char __pad[sizeof(struct sockaddr) -
38 sizeof(__kernel_sa_family_t) -
39 sizeof(__be16) - sizeof(struct in_addr) -
40 sizeof(__u32)];
41};
42
43
44
45
46
47
48
49struct sockaddr_l2tpip6 {
50
51 __kernel_sa_family_t l2tp_family;
52 __be16 l2tp_unused;
53 __be32 l2tp_flowinfo;
54 struct in6_addr l2tp_addr;
55 __u32 l2tp_scope_id;
56 __u32 l2tp_conn_id;
57};
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78enum {
79 L2TP_CMD_NOOP,
80 L2TP_CMD_TUNNEL_CREATE,
81 L2TP_CMD_TUNNEL_DELETE,
82 L2TP_CMD_TUNNEL_MODIFY,
83 L2TP_CMD_TUNNEL_GET,
84 L2TP_CMD_SESSION_CREATE,
85 L2TP_CMD_SESSION_DELETE,
86 L2TP_CMD_SESSION_MODIFY,
87 L2TP_CMD_SESSION_GET,
88 __L2TP_CMD_MAX,
89};
90
91#define L2TP_CMD_MAX (__L2TP_CMD_MAX - 1)
92
93
94
95
96enum {
97 L2TP_ATTR_NONE,
98 L2TP_ATTR_PW_TYPE,
99 L2TP_ATTR_ENCAP_TYPE,
100 L2TP_ATTR_OFFSET,
101 L2TP_ATTR_DATA_SEQ,
102 L2TP_ATTR_L2SPEC_TYPE,
103 L2TP_ATTR_L2SPEC_LEN,
104 L2TP_ATTR_PROTO_VERSION,
105 L2TP_ATTR_IFNAME,
106 L2TP_ATTR_CONN_ID,
107 L2TP_ATTR_PEER_CONN_ID,
108 L2TP_ATTR_SESSION_ID,
109 L2TP_ATTR_PEER_SESSION_ID,
110 L2TP_ATTR_UDP_CSUM,
111 L2TP_ATTR_VLAN_ID,
112 L2TP_ATTR_COOKIE,
113 L2TP_ATTR_PEER_COOKIE,
114 L2TP_ATTR_DEBUG,
115 L2TP_ATTR_RECV_SEQ,
116 L2TP_ATTR_SEND_SEQ,
117 L2TP_ATTR_LNS_MODE,
118 L2TP_ATTR_USING_IPSEC,
119 L2TP_ATTR_RECV_TIMEOUT,
120 L2TP_ATTR_FD,
121 L2TP_ATTR_IP_SADDR,
122 L2TP_ATTR_IP_DADDR,
123 L2TP_ATTR_UDP_SPORT,
124 L2TP_ATTR_UDP_DPORT,
125 L2TP_ATTR_MTU,
126 L2TP_ATTR_MRU,
127 L2TP_ATTR_STATS,
128 L2TP_ATTR_IP6_SADDR,
129 L2TP_ATTR_IP6_DADDR,
130 __L2TP_ATTR_MAX,
131};
132
133#define L2TP_ATTR_MAX (__L2TP_ATTR_MAX - 1)
134
135
136enum {
137 L2TP_ATTR_STATS_NONE,
138 L2TP_ATTR_TX_PACKETS,
139 L2TP_ATTR_TX_BYTES,
140 L2TP_ATTR_TX_ERRORS,
141 L2TP_ATTR_RX_PACKETS,
142 L2TP_ATTR_RX_BYTES,
143 L2TP_ATTR_RX_SEQ_DISCARDS,
144 L2TP_ATTR_RX_OOS_PACKETS,
145 L2TP_ATTR_RX_ERRORS,
146 __L2TP_ATTR_STATS_MAX,
147};
148
149#define L2TP_ATTR_STATS_MAX (__L2TP_ATTR_STATS_MAX - 1)
150
151enum l2tp_pwtype {
152 L2TP_PWTYPE_NONE = 0x0000,
153 L2TP_PWTYPE_ETH_VLAN = 0x0004,
154 L2TP_PWTYPE_ETH = 0x0005,
155 L2TP_PWTYPE_PPP = 0x0007,
156 L2TP_PWTYPE_PPP_AC = 0x0008,
157 L2TP_PWTYPE_IP = 0x000b,
158 __L2TP_PWTYPE_MAX
159};
160
161enum l2tp_l2spec_type {
162 L2TP_L2SPECTYPE_NONE,
163 L2TP_L2SPECTYPE_DEFAULT,
164};
165
166enum l2tp_encap_type {
167 L2TP_ENCAPTYPE_UDP,
168 L2TP_ENCAPTYPE_IP,
169};
170
171enum l2tp_seqmode {
172 L2TP_SEQ_NONE = 0,
173 L2TP_SEQ_IP = 1,
174 L2TP_SEQ_ALL = 2,
175};
176
177
178
179
180#define L2TP_GENL_NAME "l2tp"
181#define L2TP_GENL_VERSION 0x1
182
183#endif
184