1f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PPTP constants and structs */ 2f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#ifndef _NF_CONNTRACK_PPTP_H 3f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define _NF_CONNTRACK_PPTP_H 4f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 59ee0779e994c6916863045297b831212e285da3bYasuyuki Kozakai#include <linux/netfilter/nf_conntrack_common.h> 69ee0779e994c6916863045297b831212e285da3bYasuyuki Kozakai 79ddd0ed050445176a97e11b2b24d6fbc01843da6Jan Engelhardtextern const char *const pptp_msg_name[]; 80d53778e81ac7af266dac8a20cc328328c327112Patrick McHardy 9f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* state of the control session */ 10f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardyenum pptp_ctrlsess_state { 11f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_SESSION_NONE, /* no session present */ 12f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_SESSION_ERROR, /* some session error */ 13f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_SESSION_STOPREQ, /* stop_sess request seen */ 14f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_SESSION_REQUESTED, /* start_sess request seen */ 15f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_SESSION_CONFIRMED, /* session established */ 16f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 17f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 18f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* state of the call inside the control session */ 19f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardyenum pptp_ctrlcall_state { 20f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_CALL_NONE, 21f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_CALL_ERROR, 22f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_CALL_OUT_REQ, 23f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_CALL_OUT_CONF, 24f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_CALL_IN_REQ, 25f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_CALL_IN_REP, 26f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_CALL_IN_CONF, 27f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy PPTP_CALL_CLEAR_REQ, 28f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 29f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 30f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* conntrack private data */ 31f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct nf_ct_pptp_master { 32f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy enum pptp_ctrlsess_state sstate; /* session state */ 33f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy enum pptp_ctrlcall_state cstate; /* call state */ 34f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 pac_call_id; /* call id of PAC */ 35f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 pns_call_id; /* call id of PNS */ 36f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 37f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy /* in pre-2.6.11 this used to be per-expect. Now it is per-conntrack 38f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy * and therefore imposes a fixed limit on the number of maps */ 39f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct nf_ct_gre_keymap *keymap[IP_CT_DIR_MAX]; 40f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 41f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 42f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct nf_nat_pptp { 43f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 pns_call_id; /* NAT'ed PNS call id */ 44f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 pac_call_id; /* NAT'ed PAC call id */ 45f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 46f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 47f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#ifdef __KERNEL__ 48f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 49f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_CONTROL_PORT 1723 50f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 51f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_PACKET_CONTROL 1 52f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_PACKET_MGMT 2 53f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 54f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_MAGIC_COOKIE 0x1a2b3c4d 55f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 56f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct pptp_pkt_hdr { 57f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 packetLength; 58f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetType; 59f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 magicCookie; 60f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 61f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 62f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpControlMessageType values */ 63f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_START_SESSION_REQUEST 1 64f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_START_SESSION_REPLY 2 65f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_STOP_SESSION_REQUEST 3 66f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_STOP_SESSION_REPLY 4 67f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_ECHO_REQUEST 5 68f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_ECHO_REPLY 6 69f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUT_CALL_REQUEST 7 70f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUT_CALL_REPLY 8 71f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_IN_CALL_REQUEST 9 72f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_IN_CALL_REPLY 10 73f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_IN_CALL_CONNECT 11 74f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_CALL_CLEAR_REQUEST 12 75f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_CALL_DISCONNECT_NOTIFY 13 76f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_WAN_ERROR_NOTIFY 14 77f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_SET_LINK_INFO 15 78f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 79f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_MSG_MAX 15 80f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 81f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpGeneralError values */ 82f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_ERROR_CODE_NONE 0 83f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_NOT_CONNECTED 1 84f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_BAD_FORMAT 2 85f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_BAD_VALUE 3 86f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_NO_RESOURCE 4 87f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_BAD_CALLID 5 88f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_REMOVE_DEVICE_ERROR 6 89f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 90f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpControlHeader { 91f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 messageType; 92f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved; 93f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 94f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 95f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* FramingCapability Bitmap Values */ 96f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_FRAME_CAP_ASYNC 0x1 97f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_FRAME_CAP_SYNC 0x2 98f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 99f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* BearerCapability Bitmap Values */ 100f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_BEARER_CAP_ANALOG 0x1 101f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_BEARER_CAP_DIGITAL 0x2 102f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 103f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpStartSessionRequest { 104f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 protocolVersion; 105f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved1; 106f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 framingCapability; 107f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 bearerCapability; 108f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 maxChannels; 109f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 firmwareRevision; 110f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 hostName[64]; 111f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 vendorString[64]; 112f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 113f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 114f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpStartSessionResultCode Values */ 115f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_START_OK 1 116f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_START_GENERAL_ERROR 2 117f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_START_ALREADY_CONNECTED 3 118f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_START_NOT_AUTHORIZED 4 119f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_START_UNKNOWN_PROTOCOL 5 120f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 121f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpStartSessionReply { 122f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 protocolVersion; 123f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 resultCode; 124f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 generalErrorCode; 125f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 framingCapability; 126f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 bearerCapability; 127f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 maxChannels; 128f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 firmwareRevision; 129f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 hostName[64]; 130f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 vendorString[64]; 131f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 132f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 133f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpStopReasons */ 134f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_STOP_NONE 1 135f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_STOP_PROTOCOL 2 136f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_STOP_LOCAL_SHUTDOWN 3 137f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 138f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpStopSessionRequest { 139f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 reason; 140f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 reserved1; 141f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved2; 142f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 143f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 144f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpStopSessionResultCode */ 145f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_STOP_OK 1 146f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_STOP_GENERAL_ERROR 2 147f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 148f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpStopSessionReply { 149f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 resultCode; 150f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 generalErrorCode; 151f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved1; 152f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 153f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 154f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpEchoRequest { 155f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 identNumber; 156f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 157f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 158f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpEchoReplyResultCode */ 159f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_ECHO_OK 1 160f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_ECHO_GENERAL_ERROR 2 161f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 162f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpEchoReply { 163f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 identNumber; 164f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 resultCode; 165f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 generalErrorCode; 166f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved; 167f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 168f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 169f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpFramingType */ 170f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_ASYNC_FRAMING 1 171f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_SYNC_FRAMING 2 172f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_DONT_CARE_FRAMING 3 173f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 174f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpCallBearerType */ 175f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_ANALOG_TYPE 1 176f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_DIGITAL_TYPE 2 177f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_DONT_CARE_BEARER_TYPE 3 178f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 179f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpOutCallRequest { 180f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 callID; 181f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 callSerialNumber; 182f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 minBPS; 183f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 maxBPS; 184f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 bearerType; 185f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 framingType; 186f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetWindow; 187f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetProcDelay; 188f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 phoneNumberLength; 189f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved1; 190f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 phoneNumber[64]; 191f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 subAddress[64]; 192f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 193f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 194f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpCallResultCode */ 195f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUTCALL_CONNECT 1 196f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUTCALL_GENERAL_ERROR 2 197f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUTCALL_NO_CARRIER 3 198f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUTCALL_BUSY 4 199f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUTCALL_NO_DIAL_TONE 5 200f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUTCALL_TIMEOUT 6 201f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_OUTCALL_DONT_ACCEPT 7 202f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 203f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpOutCallReply { 204f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 callID; 205f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 peersCallID; 206f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 resultCode; 207f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 generalErrorCode; 208f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 causeCode; 209f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 connectSpeed; 210f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetWindow; 211f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetProcDelay; 212f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 physChannelID; 213f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 214f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 215f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpInCallRequest { 216f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 callID; 217f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 callSerialNumber; 218f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 callBearerType; 219f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 physChannelID; 220f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 dialedNumberLength; 221f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 dialingNumberLength; 222f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 dialedNumber[64]; 223f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 dialingNumber[64]; 224f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 subAddress[64]; 225f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 226f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 227f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* PptpInCallResultCode */ 228f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_INCALL_ACCEPT 1 229f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_INCALL_GENERAL_ERROR 2 230f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#define PPTP_INCALL_DONT_ACCEPT 3 231f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 232f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpInCallReply { 233f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 callID; 234f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 peersCallID; 235f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 resultCode; 236f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 generalErrorCode; 237f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetWindow; 238f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetProcDelay; 239f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved; 240f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 241f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 242f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpInCallConnected { 243f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 peersCallID; 244f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved; 245f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 connectSpeed; 246f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetWindow; 247f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 packetProcDelay; 248f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 callFramingType; 249f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 250f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 251f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpClearCallRequest { 252f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 callID; 253f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved; 254f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 255f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 256f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpCallDisconnectNotify { 257f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 callID; 258f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 resultCode; 259f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 generalErrorCode; 260f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 causeCode; 261f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved; 262f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u8 callStatistics[128]; 263f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 264f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 265f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpWanErrorNotify { 266f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 peersCallID; 267f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved; 268f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 crcErrors; 269f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 framingErrors; 270f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 hardwareOverRuns; 271f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 bufferOverRuns; 272f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 timeoutErrors; 273f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 alignmentErrors; 274f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 275f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 276f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct PptpSetLinkInfo { 277f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be16 peersCallID; 278f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __u16 reserved; 279f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 sendAccm; 280f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy __be32 recvAccm; 281f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 282f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 283f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardyunion pptp_ctrl_union { 284f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpStartSessionRequest sreq; 285f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpStartSessionReply srep; 286f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpStopSessionRequest streq; 287f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpStopSessionReply strep; 288f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpOutCallRequest ocreq; 289f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpOutCallReply ocack; 290f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpInCallRequest icreq; 291f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpInCallReply icack; 292f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpInCallConnected iccon; 293f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpClearCallRequest clrreq; 294f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpCallDisconnectNotify disc; 295f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpWanErrorNotify wanerr; 296f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpSetLinkInfo setlink; 297f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy}; 298f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 299f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy/* crap needed for nf_conntrack_compat.h */ 300f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct nf_conn; 301f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardystruct nf_conntrack_expect; 302f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 303f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardyextern int 3043db05fea51cdb162cfa8f69e9cfb9e228919d2a9Herbert Xu(*nf_nat_pptp_hook_outbound)(struct sk_buff *skb, 305f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct nf_conn *ct, enum ip_conntrack_info ctinfo, 306051966c0c644a1c96092d4206e00704ade813c9aPatrick McHardy unsigned int protoff, 307f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpControlHeader *ctlh, 308f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy union pptp_ctrl_union *pptpReq); 309f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 310f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardyextern int 3113db05fea51cdb162cfa8f69e9cfb9e228919d2a9Herbert Xu(*nf_nat_pptp_hook_inbound)(struct sk_buff *skb, 312f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct nf_conn *ct, enum ip_conntrack_info ctinfo, 313051966c0c644a1c96092d4206e00704ade813c9aPatrick McHardy unsigned int protoff, 314f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct PptpControlHeader *ctlh, 315f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy union pptp_ctrl_union *pptpReq); 316f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 317f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardyextern void 318f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy(*nf_nat_pptp_hook_exp_gre)(struct nf_conntrack_expect *exp_orig, 319f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct nf_conntrack_expect *exp_reply); 320f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 321f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardyextern void 322f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy(*nf_nat_pptp_hook_expectfn)(struct nf_conn *ct, 323f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy struct nf_conntrack_expect *exp); 324f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy 325f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#endif /* __KERNEL__ */ 326f09943fefe6b702e40893d35b4f10fd1064037fePatrick McHardy#endif /* _NF_CONNTRACK_PPTP_H */ 327