1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33#ifndef _IF_PPP_H_
34#define _IF_PPP_H_
35
36#include <linux/types.h>
37#include <linux/compiler.h>
38
39
40
41
42
43#define PPP_MTU 1500
44#define PPP_MAXMRU 65000
45#define PROTO_IPX 0x002b
46#define PROTO_DNA_RT 0x0027
47
48
49
50
51
52
53#define SC_COMP_PROT 0x00000001
54#define SC_COMP_AC 0x00000002
55#define SC_COMP_TCP 0x00000004
56#define SC_NO_TCP_CCID 0x00000008
57#define SC_REJ_COMP_AC 0x00000010
58#define SC_REJ_COMP_TCP 0x00000020
59#define SC_CCP_OPEN 0x00000040
60#define SC_CCP_UP 0x00000080
61#define SC_ENABLE_IP 0x00000100
62#define SC_LOOP_TRAFFIC 0x00000200
63#define SC_MULTILINK 0x00000400
64#define SC_MP_SHORTSEQ 0x00000800
65#define SC_COMP_RUN 0x00001000
66#define SC_DECOMP_RUN 0x00002000
67#define SC_MP_XSHORTSEQ 0x00004000
68#define SC_DEBUG 0x00010000
69#define SC_LOG_INPKT 0x00020000
70#define SC_LOG_OUTPKT 0x00040000
71#define SC_LOG_RAWIN 0x00080000
72#define SC_LOG_FLUSH 0x00100000
73#define SC_SYNC 0x00200000
74#define SC_MUST_COMP 0x00400000
75#define SC_MASK 0x0f600fff
76
77
78#define SC_XMIT_BUSY 0x10000000
79#define SC_RCV_ODDP 0x08000000
80#define SC_RCV_EVNP 0x04000000
81#define SC_RCV_B7_1 0x02000000
82#define SC_RCV_B7_0 0x01000000
83#define SC_DC_FERROR 0x00800000
84#define SC_DC_ERROR 0x00400000
85
86
87
88
89
90struct npioctl {
91 int protocol;
92 enum NPmode mode;
93};
94
95
96struct ppp_option_data {
97 __u8 __user *ptr;
98 __u32 length;
99 int transmit;
100};
101
102struct ifpppstatsreq {
103 struct ifreq b;
104 struct ppp_stats stats;
105};
106
107struct ifpppcstatsreq {
108 struct ifreq b;
109 struct ppp_comp_stats stats;
110};
111
112
113struct pppol2tp_ioc_stats {
114 __u16 tunnel_id;
115 __u16 session_id;
116 __u32 using_ipsec:1;
117 __aligned_u64 tx_packets;
118 __aligned_u64 tx_bytes;
119 __aligned_u64 tx_errors;
120 __aligned_u64 rx_packets;
121 __aligned_u64 rx_bytes;
122 __aligned_u64 rx_seq_discards;
123 __aligned_u64 rx_oos_packets;
124 __aligned_u64 rx_errors;
125};
126
127#define ifr__name b.ifr_ifrn.ifrn_name
128#define stats_ptr b.ifr_ifru.ifru_data
129
130
131
132
133
134#define PPPIOCGFLAGS _IOR('t', 90, int)
135#define PPPIOCSFLAGS _IOW('t', 89, int)
136#define PPPIOCGASYNCMAP _IOR('t', 88, int)
137#define PPPIOCSASYNCMAP _IOW('t', 87, int)
138#define PPPIOCGUNIT _IOR('t', 86, int)
139#define PPPIOCGRASYNCMAP _IOR('t', 85, int)
140#define PPPIOCSRASYNCMAP _IOW('t', 84, int)
141#define PPPIOCGMRU _IOR('t', 83, int)
142#define PPPIOCSMRU _IOW('t', 82, int)
143#define PPPIOCSMAXCID _IOW('t', 81, int)
144#define PPPIOCGXASYNCMAP _IOR('t', 80, ext_accm)
145#define PPPIOCSXASYNCMAP _IOW('t', 79, ext_accm)
146#define PPPIOCXFERUNIT _IO('t', 78)
147#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data)
148#define PPPIOCGNPMODE _IOWR('t', 76, struct npioctl)
149#define PPPIOCSNPMODE _IOW('t', 75, struct npioctl)
150#define PPPIOCSPASS _IOW('t', 71, struct sock_fprog)
151#define PPPIOCSACTIVE _IOW('t', 70, struct sock_fprog)
152#define PPPIOCGDEBUG _IOR('t', 65, int)
153#define PPPIOCSDEBUG _IOW('t', 64, int)
154#define PPPIOCGIDLE _IOR('t', 63, struct ppp_idle)
155#define PPPIOCNEWUNIT _IOWR('t', 62, int)
156#define PPPIOCATTACH _IOW('t', 61, int)
157#define PPPIOCDETACH _IOW('t', 60, int)
158#define PPPIOCSMRRU _IOW('t', 59, int)
159#define PPPIOCCONNECT _IOW('t', 58, int)
160#define PPPIOCDISCONN _IO('t', 57)
161#define PPPIOCATTCHAN _IOW('t', 56, int)
162#define PPPIOCGCHAN _IOR('t', 55, int)
163#define PPPIOCGL2TPSTATS _IOR('t', 54, struct pppol2tp_ioc_stats)
164
165#define SIOCGPPPSTATS (SIOCDEVPRIVATE + 0)
166#define SIOCGPPPVER (SIOCDEVPRIVATE + 1)
167#define SIOCGPPPCSTATS (SIOCDEVPRIVATE + 2)
168
169#if !defined(ifr_mtu)
170#define ifr_mtu ifr_ifru.ifru_metric
171#endif
172
173#endif
174