/* 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 ****************************************************************************** */ #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 #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 **************************************************************************** */