Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
uapi
linux
if_pppol2tp.h
Go to the documentation of this file.
1
/***************************************************************************
2
* Linux PPP over L2TP (PPPoL2TP) Socket Implementation (RFC 2661)
3
*
4
* This file supplies definitions required by the PPP over L2TP driver
5
* (l2tp_ppp.c). All version information wrt this file is located in l2tp_ppp.c
6
*
7
* License:
8
* This program is free software; you can redistribute it and/or
9
* modify it under the terms of the GNU General Public License
10
* as published by the Free Software Foundation; either version
11
* 2 of the License, or (at your option) any later version.
12
*
13
*/
14
15
#ifndef _UAPI__LINUX_IF_PPPOL2TP_H
16
#define _UAPI__LINUX_IF_PPPOL2TP_H
17
18
#include <linux/types.h>
19
20
21
/* Structure used to connect() the socket to a particular tunnel UDP
22
* socket over IPv4.
23
*/
24
struct
pppol2tp_addr
{
25
__kernel_pid_t
pid
;
/* pid that owns the fd.
26
* 0 => current */
27
int
fd
;
/* FD of UDP socket to use */
28
29
struct
sockaddr_in
addr
;
/* IP address and port to send to */
30
31
__u16
s_tunnel
,
s_session
;
/* For matching incoming packets */
32
__u16
d_tunnel
,
d_session
;
/* For sending outgoing packets */
33
};
34
35
/* Structure used to connect() the socket to a particular tunnel UDP
36
* socket over IPv6.
37
*/
38
struct
pppol2tpin6_addr
{
39
__kernel_pid_t
pid
;
/* pid that owns the fd.
40
* 0 => current */
41
int
fd
;
/* FD of UDP socket to use */
42
43
__u16
s_tunnel
,
s_session
;
/* For matching incoming packets */
44
__u16
d_tunnel
,
d_session
;
/* For sending outgoing packets */
45
46
struct
sockaddr_in6
addr
;
/* IP address and port to send to */
47
};
48
49
/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
50
* bits. So we need a different sockaddr structure.
51
*/
52
struct
pppol2tpv3_addr
{
53
__kernel_pid_t
pid
;
/* pid that owns the fd.
54
* 0 => current */
55
int
fd
;
/* FD of UDP or IP socket to use */
56
57
struct
sockaddr_in
addr
;
/* IP address and port to send to */
58
59
__u32
s_tunnel
,
s_session
;
/* For matching incoming packets */
60
__u32
d_tunnel
,
d_session
;
/* For sending outgoing packets */
61
};
62
63
struct
pppol2tpv3in6_addr
{
64
__kernel_pid_t
pid
;
/* pid that owns the fd.
65
* 0 => current */
66
int
fd
;
/* FD of UDP or IP socket to use */
67
68
__u32
s_tunnel
,
s_session
;
/* For matching incoming packets */
69
__u32
d_tunnel
,
d_session
;
/* For sending outgoing packets */
70
71
struct
sockaddr_in6
addr
;
/* IP address and port to send to */
72
};
73
74
/* Socket options:
75
* DEBUG - bitmask of debug message categories
76
* SENDSEQ - 0 => don't send packets with sequence numbers
77
* 1 => send packets with sequence numbers
78
* RECVSEQ - 0 => receive packet sequence numbers are optional
79
* 1 => drop receive packets without sequence numbers
80
* LNSMODE - 0 => act as LAC.
81
* 1 => act as LNS.
82
* REORDERTO - reorder timeout (in millisecs). If 0, don't try to reorder.
83
*/
84
enum
{
85
PPPOL2TP_SO_DEBUG
= 1,
86
PPPOL2TP_SO_RECVSEQ
= 2,
87
PPPOL2TP_SO_SENDSEQ
= 3,
88
PPPOL2TP_SO_LNSMODE
= 4,
89
PPPOL2TP_SO_REORDERTO
= 5,
90
};
91
92
/* Debug message categories for the DEBUG socket option */
93
enum
{
94
PPPOL2TP_MSG_DEBUG
= (1 << 0),
/* verbose debug (if
95
* compiled in) */
96
PPPOL2TP_MSG_CONTROL
= (1 << 1),
/* userspace - kernel
97
* interface */
98
PPPOL2TP_MSG_SEQ
= (1 << 2),
/* sequence numbers */
99
PPPOL2TP_MSG_DATA
= (1 << 3),
/* data packets */
100
};
101
102
103
104
#endif
/* _UAPI__LINUX_IF_PPPOL2TP_H */
Generated on Thu Jan 10 2013 14:51:34 for Linux Kernel by
1.8.2