1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 2ab10dccbSGao Feng #ifndef _NET_PPTP_H 3ab10dccbSGao Feng #define _NET_PPTP_H 4ab10dccbSGao Feng 5*949d6b40SJakub Kicinski #include <linux/types.h> 6*949d6b40SJakub Kicinski #include <net/gre.h> 7*949d6b40SJakub Kicinski 8ab10dccbSGao Feng #define PPP_LCP_ECHOREQ 0x09 9ab10dccbSGao Feng #define PPP_LCP_ECHOREP 0x0A 10ab10dccbSGao Feng #define SC_RCV_BITS (SC_RCV_B7_1|SC_RCV_B7_0|SC_RCV_ODDP|SC_RCV_EVNP) 11ab10dccbSGao Feng 12ab10dccbSGao Feng #define MISSING_WINDOW 20 13ab10dccbSGao Feng #define WRAPPED(curseq, lastseq)\ 14ab10dccbSGao Feng ((((curseq) & 0xffffff00) == 0) &&\ 15ab10dccbSGao Feng (((lastseq) & 0xffffff00) == 0xffffff00)) 16ab10dccbSGao Feng 17ab10dccbSGao Feng #define PPTP_HEADER_OVERHEAD (2+sizeof(struct pptp_gre_header)) 18ab10dccbSGao Feng struct pptp_gre_header { 1903459345SGao Feng struct gre_base_hdr gre_hd; 20ab10dccbSGao Feng __be16 payload_len; 21ab10dccbSGao Feng __be16 call_id; 22ab10dccbSGao Feng __be32 seq; 23ab10dccbSGao Feng __be32 ack; 24ab10dccbSGao Feng } __packed; 25ab10dccbSGao Feng 26ab10dccbSGao Feng 27ab10dccbSGao Feng #endif 28