180 lines
5.3 KiB
C
180 lines
5.3 KiB
C
/* ipmip.h - ipmip.h */
|
|
/*
|
|
******************************************************************************
|
|
* HEADER FILE
|
|
*
|
|
* Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipmip.h,v $ $Revision: 1.21 $
|
|
* $Source: /home/interpeak/CVSRoot/ipmip/include/ipmip.h,v $
|
|
* $Author: jhorteli $ $Date: 2011-01-21 15:31:27 $
|
|
* $State: Exp $ $Locker: $
|
|
*
|
|
* INTERPEAK_COPYRIGHT_STRING
|
|
* Design and implementation by Joel Hortelius <joel.hortelius@interpeak.se>
|
|
******************************************************************************
|
|
*/
|
|
#ifndef IPMIP_H
|
|
#define IPMIP_H
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 1 DESCRIPTION
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
DESCRIPTION
|
|
|
|
Base IPMIP defines. Flags, syslog and types used globally in the MIP
|
|
system.
|
|
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 2 CONFIGURATION
|
|
****************************************************************************
|
|
*/
|
|
|
|
#include "ipmip_config.h"
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 3 INCLUDE FILES
|
|
****************************************************************************
|
|
*/
|
|
#include <ipcom_clib2.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 4 DEFINES
|
|
****************************************************************************
|
|
*/
|
|
#define IPMIP_UNUSED_PARAMETER(x) ((void)(x))
|
|
#define IPMIP_BITS_ARESET(f, b) (((f) & (b)) == (b))
|
|
|
|
#define IPMIP_RELEASE 60701
|
|
|
|
#define IPMIP_SMI_WIND_RIVER 731
|
|
#define IPMIP_SMI_CISCO 9
|
|
|
|
enum
|
|
{
|
|
IPMIP_TUNNELTYPE_IPIP,
|
|
IPMIP_TUNNELTYPE_GRE,
|
|
IPMIP_TUNNELTYPE_MINENC,
|
|
IPMIP_TUNNELTYPE_IP6IP6,
|
|
IPMIP_TUNNELTYPE_GRE6,
|
|
IPMIP_TUNNELTYPE_MAX
|
|
};
|
|
#define IPMIP_TUNNELTYPE_NONE IPMIP_TUNNELTYPE_MAX
|
|
|
|
#define IPMIP_TUNNELTYPE_TO_MASK(t) (1 << (t))
|
|
#define IPMIP_TUNNELMASK_TO_TYPE(m) ipmip_util_tunnelmask_to_type(m)
|
|
|
|
#define IPMIP_TUNNELMASK_INET_IPIP IPMIP_TUNNELTYPE_TO_MASK(IPMIP_TUNNELTYPE_IPIP)
|
|
#define IPMIP_TUNNELMASK_INET_GRE IPMIP_TUNNELTYPE_TO_MASK(IPMIP_TUNNELTYPE_GRE)
|
|
#define IPMIP_TUNNELMASK_INET_MINENC IPMIP_TUNNELTYPE_TO_MASK(IPMIP_TUNNELTYPE_MINENC)
|
|
#define IPMIP_TUNNELMASK_INET6_IP6IP6 IPMIP_TUNNELTYPE_TO_MASK(IPMIP_TUNNELTYPE_IP6IP6)
|
|
#define IPMIP_TUNNELMASK_INET6_GRE6 IPMIP_TUNNELTYPE_TO_MASK(IPMIP_TUNNELTYPE_GRE6)
|
|
|
|
#define IPMIP_TUNNELMASK_GRE (IPMIP_TUNNELMASK_INET_GRE|IPMIP_TUNNELMASK_INET6_GRE6)
|
|
#define IPMIP_TUNNELMASK_IP (IPMIP_TUNNELMASK_INET_IPIP|IPMIP_TUNNELMASK_INET6_IP6IP6)
|
|
#define IPMIP_TUNNELMASK_INET (IPMIP_TUNNELMASK_INET_IPIP|IPMIP_TUNNELMASK_INET_GRE|IPMIP_TUNNELMASK_INET_MINENC)
|
|
#define IPMIP_TUNNELMASK_INET6 (IPMIP_TUNNELMASK_INET6_IP6IP6|IPMIP_TUNNELMASK_INET6_GRE6)
|
|
|
|
#define IPMIP_TUNNELTYPE_IS_INET(t) ((IPMIP_TUNNELTYPE_TO_MASK(t) & IPMIP_TUNNELMASK_INET) != 0)
|
|
#define IPMIP_TUNNELTYPE_IS_INET6(t) ((IPMIP_TUNNELTYPE_TO_MASK(t) & IPMIP_TUNNELMASK_INET6) != 0)
|
|
#define IPMIP_TUNNELTYPE_IS_IP(t) ((IPMIP_TUNNELTYPE_TO_MASK(t) & IPMIP_TUNNELMASK_IP) != 0)
|
|
#define IPMIP_TUNNELTYPE_IS_GRE(t) ((IPMIP_TUNNELTYPE_TO_MASK(t) & IPMIP_TUNNELMASK_GRE) != 0)
|
|
|
|
#define IPMIP_TUNNELMASK_ALL (~0)
|
|
|
|
enum
|
|
{
|
|
IPMIP_CALLBACK_CONFIG_READ,
|
|
IPMIP_CALLBACK_CONFIG_FREE,
|
|
IPMIP_CALLBACK_CONFIG_DUMP
|
|
};
|
|
|
|
enum
|
|
{
|
|
IPMIP_CALLBACK_DISABLE,
|
|
IPMIP_CALLBACK_ENABLE,
|
|
IPMIP_CALLBACK_UPDATE
|
|
};
|
|
|
|
|
|
enum
|
|
{
|
|
IPMIP_CALLBACK_RET_SUCCESS = 0,
|
|
IPMIP_CALLBACK_RET_FAILED = 1,
|
|
IPMIP_CALLBACK_RET_PENDING = (1 << 1)
|
|
};
|
|
|
|
#define IPMIP_CALLBACK_RET_CODE(ret) ((ret) & (IPMIP_CALLBACK_RET_FAILED|IPMIP_CALLBACK_RET_SUCCESS))
|
|
#define IPMIP_CALLBACK_RET_CODE_PENDING(ret) (((ret) & (IPMIP_CALLBACK_RET_PENDING)) != 0)
|
|
|
|
#define IPMIP_EXTENSION_ERROR_RETRANSMIT (1)
|
|
|
|
enum
|
|
{
|
|
IPMIP_LINK_DOWN = 0,
|
|
IPMIP_LINK_UP = 1,
|
|
IPMIP_LINK_MAX
|
|
};
|
|
|
|
#define IPMIP_LINK_RECV IPMIP_LINK_DOWN
|
|
#define IPMIP_LINK_SEND IPMIP_LINK_UP
|
|
|
|
#if defined(IP_LITTLE_ENDIAN)
|
|
#define IPMIP_BSWAP64(x) ((Ip_u64) ( (((Ip_u64)IP_SWAP32(IP_U64_GETLO(x))) << 32) | ((Ip_u64)IP_SWAP32(IP_U64_GETHI(x)))) )
|
|
#else
|
|
#define IPMIP_BSWAP64(x) (x)
|
|
#endif
|
|
|
|
#define IPMIP_ONCE(once, func, arg) ipcom_once(once, func, arg)
|
|
|
|
|
|
#define ipmip_timeval_copy(tpr,tp1) \
|
|
do \
|
|
{ \
|
|
(tpr)->tv_sec = (tp1)->tv_sec; \
|
|
(tpr)->tv_usec = (tp1)->tv_usec; \
|
|
} \
|
|
while((0))
|
|
|
|
#define ipmip_timeval_add_sec(tpr,sec) \
|
|
do \
|
|
{ \
|
|
(tpr)->tv_sec += (sec); \
|
|
} \
|
|
while((0))
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 5 TYPES
|
|
****************************************************************************
|
|
*/
|
|
|
|
/*
|
|
****************************************************************************
|
|
* 6 FUNCTIONS
|
|
****************************************************************************
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/*
|
|
****************************************************************************
|
|
* END OF FILE
|
|
****************************************************************************
|
|
*/
|