blob: 301d3e2ba1f9af8aabd9590825a71b8854835c27 [file] [log] [blame]
Gao Fengab10dcc2016-08-09 12:38:24 +08001#ifndef _NET_PPTP_H
2#define _NET_PPTP_H
3
4#define PPP_LCP_ECHOREQ 0x09
5#define PPP_LCP_ECHOREP 0x0A
6#define SC_RCV_BITS (SC_RCV_B7_1|SC_RCV_B7_0|SC_RCV_ODDP|SC_RCV_EVNP)
7
8#define MISSING_WINDOW 20
9#define WRAPPED(curseq, lastseq)\
10 ((((curseq) & 0xffffff00) == 0) &&\
11 (((lastseq) & 0xffffff00) == 0xffffff00))
12
13#define PPTP_GRE_PROTO 0x880B
14#define PPTP_GRE_VER 0x1
15
16#define PPTP_GRE_FLAG_C 0x80
17#define PPTP_GRE_FLAG_R 0x40
18#define PPTP_GRE_FLAG_K 0x20
19#define PPTP_GRE_FLAG_S 0x10
20#define PPTP_GRE_FLAG_A 0x80
21
22#define PPTP_GRE_IS_C(f) ((f)&PPTP_GRE_FLAG_C)
23#define PPTP_GRE_IS_R(f) ((f)&PPTP_GRE_FLAG_R)
24#define PPTP_GRE_IS_K(f) ((f)&PPTP_GRE_FLAG_K)
25#define PPTP_GRE_IS_S(f) ((f)&PPTP_GRE_FLAG_S)
26#define PPTP_GRE_IS_A(f) ((f)&PPTP_GRE_FLAG_A)
27
28#define PPTP_HEADER_OVERHEAD (2+sizeof(struct pptp_gre_header))
29struct pptp_gre_header {
30 u8 flags;
31 u8 ver;
32 __be16 protocol;
33 __be16 payload_len;
34 __be16 call_id;
35 __be32 seq;
36 __be32 ack;
37} __packed;
38
39
40#endif