vpp/plugins/vcgn-plugin/vcgn/cnat_v4_pptp_alg.h
Ole Troan ea3e1fc875 Plugins: Clean up the plugin directory so that each plugin has its own
directory and GNU autotools setup.

Change-Id: I6c59d1297389c9413db0c0b9bdf3b759080bf1b8
Signed-off-by: Ole Troan <ot@cisco.com>
2016-06-27 15:04:00 +00:00

151 lines
4.2 KiB
C

/*
*------------------------------------------------------------------
* cnat_v4_pptp_alg.h
*
* Copyright (c) 2009-2013 Cisco and/or its affiliates.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*------------------------------------------------------------------
*/
#ifndef __CNAT_V4_PPTP_ALG_H__
#define __CNAT_V4_PPTP_ALG_H__
/* Debug utils of PPTP */
#define PPTP_DBG(debug, ...) \
if(PREDICT_FALSE(cnat_pptp_debug_flag >= debug)) { \
PLATFORM_DEBUG_PRINT("%s:%s:%d - ", \
__FILE__, __FUNCTION__, __LINE__);\
PLATFORM_DEBUG_PRINT(__VA_ARGS__);\
PLATFORM_DEBUG_PRINT("\n"); \
}
#define PPTP_DUMP_PACKET(ip, len) pptp_hex_dump(ip, len)
#define PPTP_DISABLED 0
#define PPTP_ENABLED 1
#define PPTP_GRE_TIMEOUT 60 /*sec */
#define TCP_PPTP_PORT 1723
#define PPTP_PAC 0
#define PPTP_PNS 1
/* PPTP MSG TYPE */
#define PPTP_MSG_TYPE_CONTROL 1
#define PPTP_MSG_TYPE_MGMT 2
/* PPTP control messages */
/* control connection mgmt */
#define PPTP_START_CC_RQ 1
#define PPTP_START_CC_RP 2
#define PPTP_STOP_CC_RQ 3
#define PPTP_STOP_CC_RP 4
#define PPTP_ECHO_RQ 5
#define PPTP_ECHO_RP 6
/* call mgmt */
#define PPTP_OBOUND_CALL_RQ 7
#define PPTP_OBOUND_CALL_RP 8
#define PPTP_IBOUND_CALL_RQ 9
#define PPTP_IBOUND_CALL_RP 10
#define PPTP_IBOUND_CALL_CN 11
#define PPTP_CALL_CLEAR_RQ 12
#define PPTP_CALL_DISCON_NT 13
/* other */
#define PPTP_WAN_ERR_NT 14
#define PPTP_SET_LINK_INF 15
#define PPTP_MIN_HDR_LEN 8
/* Byte offsets from start of TCP Data(PPTP header) */
#define PPTP_CTRL_MGMT_TYPE_OFFSET 0x02
#define PPTP_CC_TYPE_OFFSET 0x08
#define PPTP_HDR_CALL_ID_OFFSET 0x0c
#define PPTP_HDR_PEER_CALL_ID_OFFSET 0x0e
#define PPTP_HDR_RESULT_CODE_OFFSET_STCCRP 0x0e
#define PPTP_HDR_RESULT_CODE_OFFSET 0x10
/* Offset of control/mgmt msg types
from start of TCP header */
#define TCP_HEADER_SIZE(tcp) \
((tcp->hdr_len>>4) << 2)
#define PPTP_MSG_START_OFFSET(tcp) \
((u8*)tcp + TCP_HEADER_SIZE(tcp))
#define PPTP_CC_MSG_TYPE_OFFSET(tcp) \
(PPTP_MSG_START_OFFSET(tcp) + \
PPTP_CC_TYPE_OFFSET )
#define PPTP_MGMT_MSG_TYPE_OFFSET(tcp) \
( PPTP_MSG_START_OFFSET(tcp) + \
PPTP_CTRL_MGMT_TYPE_OFFSET )
#define PPTP_CALL_ID_OFFSET(tcp) \
( PPTP_MSG_START_OFFSET(tcp) + \
PPTP_HDR_CALL_ID_OFFSET )
#define PPTP_PEER_CALL_ID_OFFSET(tcp) \
( PPTP_MSG_START_OFFSET(tcp) + \
PPTP_HDR_PEER_CALL_ID_OFFSET )
#define PPTP_RESULT_CODE_OFFSET(tcp) \
( PPTP_MSG_START_OFFSET(tcp) + \
PPTP_HDR_RESULT_CODE_OFFSET )
#define PPTP_RESULT_CODE_OFFSET_STCCRP(tcp) \
( PPTP_MSG_START_OFFSET(tcp) + \
PPTP_HDR_RESULT_CODE_OFFSET_STCCRP)
/* values */
#define PPTP_CC_MSG_TYPE(tcp) \
(u16*)PPTP_CC_MSG_TYPE_OFFSET(tcp)
#define PPTP_MGMT_MSG_TYPE(tcp) \
(u16*)PPTP_MGMT_MSG_TYPE_OFFSET(tcp)
#define PPTP_CALL_ID(tcp) \
(u16*)PPTP_CALL_ID_OFFSET(tcp)
#define PPTP_PEER_CALL_ID(tcp) \
(u16*)PPTP_PEER_CALL_ID_OFFSET(tcp)
#define PPTP_RESULT_CODE(tcp) \
*(u8*)PPTP_RESULT_CODE_OFFSET(tcp);
#define PPTP_RESULT_CODE_STCCRP(tcp) \
*(u8*)PPTP_RESULT_CODE_OFFSET_STCCRP(tcp);
/* other code */
#define PPTP_CHAN_SUCCESS 1
/* Data structures */
extern u32 cnat_pptp_debug_flag;
#endif /* __CNAT_V4_PPTP_ALG_H__ */