/* ****************************************************************************** * IPLITE_CONFIG.H * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: iplite_config.h,v $ $Revision: 1.49.14.1 $ * $Source: /home/interpeak/CVSRoot/iplite2/config/iplite_config.h,v $ * $Author: svc-cmnet $ $Date: 2013-03-13 07:45:28 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Kenneth Jonsson ****************************************************************************** */ #ifndef IPLITE_CONFIG_H #define IPLITE_CONFIG_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** * Build Configuration for IPLITE. */ /* **************************************************************************** * 2 INCLUDE FILES **************************************************************************** */ #include #include #include #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 3 TYPES **************************************************************************** */ /* *=========================================================================== * Iplite_conf_pkt_pool *=========================================================================== * Packet pool entry. */ typedef struct Iplite_conf_pkt_pool_struct { Ip_u16 count; /* Number of packet of this size */ Ip_u16 mtu; /* The size of the packets in this pool */ } Iplite_conf_pkt_pool; /* *=========================================================================== * Iplite_conf_ifdata *=========================================================================== */ typedef struct Iplite_conf_ifdata_struct { char *ifname; /* Name of the interface to configure */ #ifdef IP_PORT_VXWORKS char *devname; /* MUX device to bind interface to */ #endif char *ip4addr_mask; /* IPv4 "address/network" or "dhcp" or "driver") */ char *ip6addr_mask; } Iplite_conf_ifdata; /* *=========================================================================== * Iplite_conf_gwdata *=========================================================================== */ typedef struct Iplite_conf_gwdata_struct { char *gw4; char *gw6; } Iplite_conf_gwdata; /* **************************************************************************** * 4 CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPCOM_SYSLOG_PRIORITY *=========================================================================== * Default syslog priority. */ #ifdef IP_DEBUG #define IPLITE_SYSLOG_PRIORITY IPCOM_LOG_DEBUG #else #define IPLITE_SYSLOG_PRIORITY IPCOM_LOG_WARNING #endif /* **************************************************************************** * GENERAL CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPLITE_CONF_INQ_MAX *=========================================================================== * Maximum number of buffers in input queue processed by the input daemon. */ #define IPLITE_CONF_INQ_MAX 32 /* *=========================================================================== * IPLITE_CONF_MEM_MAX *=========================================================================== * Maximum number of bytes that IPLITE can alloc using iplite_malloc(). */ #define IPLITE_CONF_MEM_MAX 320000 /* *=========================================================================== * IPLITE_MEM_OPT *=========================================================================== * IPLITE is by default optimized for maximum performance. Set this define * if you want to optmize on size instead. * Note: Currently the difference is minimal. * Note2: Edit iplite_config.c for trimming number of network buffers. * #define IPLITE_MEM_OPT */ /* *=========================================================================== * IPLITE_COMPAT_OLDSOCK *=========================================================================== * Makes IPLITE able to run old socket code using the 16-bit sin_family from * struct sockaddr_in instead of the newer 8-bit version + length mapping * directly against the struct sockaddr. */ #define IPLITE_COMPAT_OLDSOCK /* *=========================================================================== * IPLITE_CONF_TICKS_PER_SEC *=========================================================================== * Number of ticks per second. 5 (or more) should be used if TCP is enabled. * Too many ticks per second degrade preformance. Down to 1 tick per second * can be used if the stack is only configured for UDP. */ #define IPLITE_CONF_TICKS_PER_SEC 5 /* *=========================================================================== * IPLITE_CONF_REASSEMBLY_TIMEOUT *=========================================================================== * Number of seconds IPLITE will keep incomplete datagram fragments in the * reassembly list before discarding them. RFC2460 states default 60 seconds. * */ #define IPLITE_CONF_REASSEMBLY_TIMEOUT 15 /* **************************************************************************** * INTERFACE CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPLITE_CONF_MAX_NETIF *=========================================================================== * Maximum number of interfaces that can be used at any time (the actual number * of available external interfaces will be 2 less since slot 0 is reserved * and one slot is used for the loopback interface. */ #define IPLITE_CONF_MAX_NETIF 8 /* *=========================================================================== * IPLITE_CONF_NETIF_OUTQ_MAX *=========================================================================== * Maximum number of output packets the link layer will queue before * discarding output packets sent from the IPLITE input or tick daemon. */ #define IPLITE_CONF_NETIF_OUTQ_MAX 4 /* *=========================================================================== * IPLITE_CONF_MIN_MTU *=========================================================================== * The smallest MTU that IPLITE expects. Should be 576 in most cases. */ #define IPLITE_CONF_MIN_MTU 576 /* *=========================================================================== * IPLITE_CONF_LOOPBACK_MTU *=========================================================================== * Define the MTU for the loopback interface. */ #define IPLITE_CONF_LOOPBACK_MTU 1500 /* **************************************************************************** * SOCKET CONFIGURATION **************************************************************************** */ /* Maximum number of sockets that can be used at any time (the actual * number of available sockets will be 3 less since 0-2 are reserved). */ #ifdef IP_PORT_OSECK #define IPLITE_CONF_MAX_SOCKETS 32 #else #define IPLITE_CONF_MAX_SOCKETS 256 #endif /* Random port number range. */ #define IPLITE_CONF_SOCK_ANONPORTMIN 49152 #define IPLITE_CONF_SOCK_ANONPORTMAX 65535 /* The default hop limit for IPv4 and IPv6 packets */ #define IPLITE_CONF_SOCK_BASE_HOP_LIMIT 64 /* Default socket buffer sizes. */ #define IPLITE_CONF_SOCK_DEFAULT_SEND_BUF_SIZE 8192 #define IPLITE_CONF_SOCK_DEFAULT_RECV_BUF_SIZE 8192 /* **************************************************************************** * INET6 CONFIGURATION **************************************************************************** */ /* Number of neighbor discovery messages should be resent before giving up. */ #define IPLITE_CONF_INET6_MAX_UNICAST_SOLICIT 3 /* Number of times the node should test the address for uniqueness before * assigning it to the interface (set to 0 to turn of Duplicate Address Detection) */ #define IPLITE_CONF_INET6_DUP_ADDR_DETECT_TRANSMITS 1 /* Number of seconds that a entry in the NDP cache is in reachable state */ #define IPLITE_CONF_INET6_BASE_REACHABLE_TIME 30 /* Number of seconds to wait between retransmits. */ #define IPLITE_CONF_INET6_BASE_RETRANSMIT_TIME 5 /* Number of seconds to wait for a stale ND entry to become reachable * before forcing a probe, packets will be sent using the stale entry * during this time. */ #define IPLITE_CONF_INET6_DELAY_FIRST_PROBE_TIME 5 /* Number of seconds that can pass before an stale entry in the * neighbor cache is deleted. */ #define IPLITE_CONF_INET6_NEIGHBOR_CACHE_TO_LIVE 1200 /* Number of seconds that can pass before an unused entry in the * destination cache is deleted. */ #define IPLITE_CONF_INET6_DST_CACHE_TO_LIVE 300 /* **************************************************************************** * TCP CONFIGURATION **************************************************************************** */ /* Maximum number of pending TCP sessions a listen socket will get by default, i.e. when passing zero as 2:nd argument to ipcom_listen() */ #define IPLITE_CONF_TCP_DEFAULT_BACKLOG_LEN 2 /* **************************************************************************** * FEATURE CONFIGURATION **************************************************************************** * This section defines support for various optional features and should * generally be left untouched unless you know what features you do not * need and want to save memory. */ /* support ARP ioctls (IP_SIOCSARP, IP_SIOCGARP, IP_SIOCDARP) */ #define IPLITE_USE_IOCTL_ARP /* support IP_SIOCGIFCONF */ #define IPLITE_USE_IOCTL_IFCONF /* Define for IPLITE WLAN support */ #ifdef IPPRISM #define IPLITE_USE_WLAN #endif #ifdef IPMARVELL #define IPLITE_USE_WLAN #endif /* **************************************************************************** * ADVANCED CONFIGURATION **************************************************************************** * CAUTION: This section automatically configures specific features in IPLITE * automatically and should be be left unmodified unless you are an expert * IPLITE user. */ #if !defined(IPCOM_USE_INET) && !defined(IPCOM_USE_INET6) #error Must_define__IPCOM_USE_INET__andor__IPCOM_USE_INET6 #endif /* Define if there should be possible to add empty packet header * to support the zero-copy API and targets that use their own * data buffers. */ #ifdef IP_PORT_VXWORKS #define IPLITE_USE_EXTERNAL_PKT_BUF #endif /* Define the number of packet headers that should be added. */ #ifdef IPLITE_USE_EXTERNAL_PKT_BUF #define IPLITE_NUM_PKT_HDR 40 #endif /* Maximum number of packet pools. */ #define IPLITE_CONF_MAX_PKTPOOL 8 /* Trailing Ipcom_pkt cache buffer to protect dynamic buffer end marks * from DMA snooping. */ #if defined(IP_PORT_ATI) #define IPLITE_CONF_CACHE_BUFSIZ 0 #else #define IPLITE_CONF_CACHE_BUFSIZ 64 #endif /* Build IPLITE debug code. */ #ifdef IP_DEBUG #define IPLITE_DEBUG #endif /* IPSSL use old socket structures. */ #if defined(IPSSL) && !defined(IPLITE_COMPAT_OLDSOCK) #define IPLITE_COMPAT_OLDSOCK #endif /* *=========================================================================== * IPLITE_USE_RFC3927 *=========================================================================== * Define to include support for RFC 3927 * "Dynamic Configuration of IPv4 Link-Local Addresses" * The link local IPv4 addresses is the 169.254/16 network. * The feature is currently only supported on Ethernet and IEEE 802.11 * interfaces. */ #if defined(IPCOM_USE_ETHERNET) && !defined(IPCOM_FORWARDER_NAE) #define IPLITE_USE_RFC3927 #endif #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */