/* ****************************************************************************** * IPNET_CONFIG.H * * Document no: @(#) $Name: VXWORKS_ITER40_2019102207 $ $RCSfile: ipnet_config.h,v $ $Revision: 1.195.10.10 $ * $Source: /home/interpeak/CVSRoot/ipnet2/config/ipnet_config.h,v $ * $Author: jren $ $Date: 2016-11-18 02:20:46 $ * $State: Exp $ $Locker: $ * * INTERPEAK_COPYRIGHT_STRING * Design and implementation by Kenneth Jonsson ****************************************************************************** */ #ifndef IPNET_CONFIG_H #define IPNET_CONFIG_H /* **************************************************************************** * 1 DESCRIPTION **************************************************************************** * * Configuration for IPNET. Parameters that are macros can only be changed * before compiling, variables can be changed before compiling and linking. */ /* **************************************************************************** * 2 INCLUDE FILES **************************************************************************** */ #include #include #include #ifdef __cplusplus extern "C" { #endif /* **************************************************************************** * 3 TYPES **************************************************************************** */ /* Forward delcaration */ struct Ipnet_netif_struct; /* Packet pool entry */ typedef struct Ipnet_conf_pkt_pool_struct { int count; /* Number of packet of this size */ int mtu; /* The size of the packets in this pool */ int mprio; /* The minimum priority needed to be allowed to allocate this pkt */ } Ipnet_conf_pkt_pool; /* Link layer initialization function */ typedef struct Ipnet_conf_link_layer_init_struct { int type; /* Type of link layer (IP_IFT_xxx) */ int (*init_func)(struct Ipnet_netif_struct *netif); } Ipnet_conf_link_layer_init; /* Descriptor for a packet pool buffer slab */ struct Ipnet_pkt_pool_slab_desc { Ip_size_t mtu; /* The maximum MTU this buffer can hold */ Ip_u32 flags; /* The IPCOM_SLAB_F_xxx flags for this buffer */ Ip_size_t size; /* The actual length of this buffer */ void **pslab; /* Pointer to where the memory cache should be stored */ }; /* * 16-bit length field + 40 bytes of IPv6 header */ #define IPNET_PKT_POOL_MAX_MTU (65535 + 40) /* **************************************************************************** * 4 CONFIGURATION **************************************************************************** */ #ifdef IP_PORT_OSE5 #define IPNET_MSP_DISTRIBUTION #endif /* *=========================================================================== * IPCOM_SYSLOG_PRIORITY *=========================================================================== * Default syslog priority. */ #ifdef IP_DEBUG #define IPNET_SYSLOG_PRIORITY IPCOM_LOG_DEBUG /* (see ipcom_syslog.h) */ #else #define IPNET_SYSLOG_PRIORITY IPCOM_LOG_WARNING #endif /* *=========================================================================== * IPNET DEBUG/ASSERT *=========================================================================== * Define IPNET_ASSERT and/or IPNET_DEBUG to debug IPNET. */ #ifdef IP_ASSERT #define IPNET_ASSERT #endif #ifdef IP_DEBUG #define IPNET_DEBUG #endif /* **************************************************************************** * GENERAL CONFIGURATION **************************************************************************** */ /* * IMPORTANT: Do not edit this file in case you are using the LKM port * All the options below are configurable through the * Linux kernel configuration tool (make menuconfig) * */ #ifndef IP_PORT_LKM /* *=========================================================================== * IPNET_MEMORY_LIMIT *=========================================================================== * Defines the maximum amount of memory that the stack is allowed to use. * The limit must be large enough to allow enough packet buffers, packet * headers, sockets, timers to support the workload the system has. * Most memory will be used to packet buffers. Each socket can queue up to * (send buffer size + receive buffer size) buffer octets. Each device * will need up to TX + RX descriptors of MTU sized packets. * This parameter must be set through the IPNET_MEMORY_LIMIT kernel * parameter on VxWorks. */ #ifndef IPNET_MEMORY_LIMIT #define IPNET_MEMORY_LIMIT (1024 * 1024 * 16) #endif /* *=========================================================================== * IPNET_DST_CACHE_LIMIT *=========================================================================== * Defines maximum amount of destination cache number the stack is allowed to use. * Set to 0 if do not limit(default), but it will still be limited by memory size. */ #ifndef IPNET_DST_CACHE_LIMIT #define IPNET_DST_CACHE_LIMIT (0) #endif /* *=========================================================================== * IPNET_IS_ROUTER *=========================================================================== * Define to configure IPNET as a router. IPNET can be changed into a host * stack after boot event if this is defined. However, IPNET cannot be * configured as a router if this is not set. */ #define IPNET_IS_ROUTER /* *=========================================================================== * IPNET_USE_ROUTER_ALERT *=========================================================================== * Define to include support for router alert processing in IPNET. * This option requires that IPNET_IS_ROUTER is defined and that * IPCOM_FORWARDER_NAE is not defined. */ #if defined(IPNET_IS_ROUTER) && !defined(IPCOM_FORWARDER_NAE) #define IPNET_USE_ROUTER_ALERT #endif /* *=========================================================================== * IPNET_USE_ROUTE_TABLE_NAMES *=========================================================================== * Define to get support for naming each route table. The name can then * be used to get the underlying virtual router index and table ID. * * This configuration allocates some extra memory. */ #define IPNET_USE_ROUTE_TABLE_NAMES /* *=========================================================================== * IPNET_USE_SCAN_GW_AT_DELETE *=========================================================================== * Define if the stack should delete all route entries that uses a * gateway that becomes unreachable after removal of a route entry. * * This configuration transforms the route delete operation from being * O(log(N)) to O(N) (if defined). So it is not possible, from a practical * standpoint, to have this enabled on systems where the route table/FIB * holds large amount of entries. * #define IPNET_USE_SCAN_GW_AT_DELETE */ /* *=========================================================================== * IPNET_USE_ECMP_HIGHEST_RANDOM_WEIGHT *=========================================================================== * IPNET has 2 different algorithms to select which route to use when there * are more than 1 route that is equally good to use (equal cost multipath * routing). Both algorithms are described in RFC 2991. * The IPNET_USE_ECMP_HIGHEST_RANDOM_WEIGHT controls which algorithm to use * Not defined: will use "Modulo-N Hash" * Defined: will use "Highest Random Weight" * #define IPNET_USE_ECMP_HIGHEST_RANDOM_WEIGHT */ /* *=========================================================================== * IPNET_USE_RFC1812_SRC_ADDR_VALIDATION *=========================================================================== * Define to perform Source Address Validation as described in RFC * 1812, chapter 5.3.8: * A router SHOULD IMPLEMENT the ability to filter traffic based on a * comparison of the source address of a packet and the forwarding * table for a logical interface on which the packet was received. * If this feature is implemented, it MUST be disabled by default. * #define IPNET_USE_RFC1812_SRC_ADDR_VALIDATION */ /* *=========================================================================== * IPNET_INCLUDE_CMD *=========================================================================== * Define to include IPNET shell commands (ifconfig, route, netstat, * ipnet_ctrl, arp, ping, ndp, ping6, tunnel, etc.) */ #if IPCOM_USE_SHELL != IPCOM_SHELL_NONE #define IPNET_INCLUDE_CMD #endif /* *=========================================================================== * IPNET_INCLUDE_CMD_SCALETEST *=========================================================================== * Define to include IPNET:s algorithm scaling test. * #define IPNET_INCLUDE_CMD_SCALETEST */ /* *=========================================================================== * IPNET_COMPAT_OLDSOCK *=========================================================================== * Makes IPNET 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 IPNET_COMPAT_OLDSOCK /* *=========================================================================== * IPNET_USE_RFC4941/IPNET_USE_RFC3041 *=========================================================================== * Define to include support for RFC 4941. RFC 4941 obsoletes RFC 3041. * Definiting RFC 4941 will also enable support for RFC 3041 so that * any code that depends on the old define still works. * "Privacy Extensions for Stateless Address Autoconfiguration in IPv6" * Note this option requires one of IPMCRYPTO or IPCRYPTO products. */ #if defined(IPCOM_USE_MD5) && !defined(OPENSSL_FIPS) #define IPNET_USE_RFC4941 #endif #ifdef IPNET_USE_RFC4941 #define IPNET_USE_RFC3041 #endif /* *=========================================================================== * IPNET_IPV6_RFC4941_MAX_DESYNC_FACTOR *=========================================================================== * Defines the maximum value of the resynchronization factor. * The resynchronization factor is a random duration (in seconds) in the * interval [0..MAX_DESYNC_FACTOR] generated on each host at boot. * The MAX_DESYNC_FACTOR is included timeout calculations of temporary * addresses to avoid that all clients updates their temporary addresses at * the same time. */ #if ((defined(IPNET_USE_RFC3041) || defined(IPNET_USE_RFC4941)) \ && !defined(IPNET_IPV6_RFC4941_MAX_DESYNC_FACTOR)) #define IPNET_IPV6_RFC4941_MAX_DESYNC_FACTOR 600 #endif /* *=========================================================================== * IPNET_USE_RFC1256 *=========================================================================== * Define to include support for RFC 1256 * "ICMP Router Discovery Messages" * This is an extension of the Internet Control Message Protocol (ICMP) * to enable hosts attached to multicast or broadcast networks to discover * the IP addresses of their neighboring routers. */ #ifndef IPCOM_FORWARDER_NAE #define IPNET_USE_RFC1256 #endif /* *=========================================================================== * IPNET_RFC1256_ENABLE_ADVERTISEMENT *=========================================================================== * If defined, RFC1256 advertisements will be on by default if the * the host is configured as a router, for all interfaces where forwarding * is enabled. #define IPNET_RFC1256_ENABLE_ADVERTISEMENT */ /* *=========================================================================== * IPNET_RFC1256_ENABLE_SOLICITATION *=========================================================================== * If defined, RFC1256 solicitations will be enabled by default if the * the target is configured as a host, for all interfaces where forwarding * is not enabled. #define IPNET_RFC1256_ENABLE_SOLICITATION */ /* *=========================================================================== * IPNET_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 IPNET_USE_RFC3927 #endif /* *=========================================================================== * IPNET_USE_RFC5227 *=========================================================================== * Define to include support for RFC 5227 * "IPv4 Address Conflict Detection" * Before an address is assigned and usable on an interface, * an ARP probe sequence is performed to avoid IP address collisions. * Once assigned, duplicated addresses will be detected. */ #if defined(IPCOM_USE_ETHERNET) && !defined(IPCOM_FORWARDER_NAE) #define IPNET_USE_RFC5227 #endif /* *=========================================================================== * IPNET_USE_RFC4443 *=========================================================================== * Define to make make usage of the new ICMPv6 destintation unreachable * codes defined in this RFC. * The node will be able to process ICMPv6 messages containing RFC4443 * codes regardless of the state of this define, but it will only use them * in messages generated by this node if IPNET_USE_RFC4443 is defined. * */ #define IPNET_USE_RFC4443 /* *=========================================================================== * IPNET_USE_PCAP *=========================================================================== * Define to include support for generation of PCAP compatible dumps from * the stack. */ #if !defined(IPBASIC) && !defined(IP_SIZE) && IPCOM_USE_FILE != IPCOM_FILE_NONE #define IPNET_USE_PCAP #endif /* *=========================================================================== * IPNET_USE_RFC3971 *=========================================================================== * Define to include support for Secure Neighbor Discovery, SEND, defined * in RFC 3971 #define IPNET_USE_RFC3971 */ /* *=========================================================================== * IPNET_USE_POST *=========================================================================== * Define to include support for Power-On Self Test of the stack. * The POST tests will run in the backgrund after boot, the POST * task will be halted if an error is found. */ #if IPCOM_VR_MAX > 1 && defined(IPNET_DEBUG) \ && !defined(IPCOM_FORWARDER_NAE) && !defined(IPNET_USE_RFC3971) #define IPNET_USE_POST #endif /* *=========================================================================== * IPNET_SOCK_SENDMSG_ASYNCHRONOUS_IN_NONBLOCK_MODE *=========================================================================== * Define to enable asynchronous sends for nonblocking sockets. In * asynchronous sends, the sending task does not wait for confirmation * from the stack that a route to the send's destination could actually * be found. */ #define IPNET_SOCK_SENDMSG_ASYNCHRONOUS_IN_NONBLOCK_MODE /* **************************************************************************** * PACKET POOL CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_PACKET_POOL *=========================================================================== * Use the IPNET internal packet pool. * If defined, IPNET will allocate all packets from this pool. * Otherwise IPNET will allocate packets from a pool provided by the * operating system. * NAE systems must provide their own implementation of packet * allocation since the memory occupied by the packet must be * reachable from all NAE instances. */ #if !defined(IPCOM_FORWARDER_NAE) #define IPNET_USE_PACKET_POOL #endif /* *=========================================================================== * ipnet_conf_pkt_pool *=========================================================================== * Array that describes the number of and sizes of the packets in the packet * pool. The largest MTU in this list should be equal or larger than * the MTU of any network interface used on this target. */ #ifdef IPNET_USE_PACKET_POOL IP_EXTERN IP_CONST Ipnet_conf_pkt_pool ipnet_conf_pkt_pool_buf[]; IP_EXTERN IP_CONST Ipnet_conf_pkt_pool *ipnet_conf_pkt_pool; #endif /* IPNET_USE_PACKET_POOL */ /* **************************************************************************** * NETIF CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_SOCKDEV *=========================================================================== * Define include support for the IP_AF_SOCKDEV domain. * Every socket in this domain has a one-to-one mapping to a network * interface of type IP_IFF_SOCKDEV in the stack. Every frame sent to that * interface by IPNET can be read on the socket. Every frame written to * the socket will appear as a received IP datagram on the corresponding * interface in IPNET. */ #ifdef IPNET_USE_POST #define IPNET_USE_SOCKDEV #endif /* *=========================================================================== * IPNET_USE_VRRP *=========================================================================== * Define to included support for Virtual Router Redundancy Protocol (RFC3768). * Must always be defined when building the LAS port. */ #ifdef IP_PORT_LAS #define IPNET_USE_VRRP #endif /* *=========================================================================== * IPNET_USE_IFO_x *=========================================================================== * Define which queue types that should be possible to use as interface * output queues. */ /*** Actual queues (leaf nodes for containers) ***/ /* First In First Out */ #define IPNET_USE_IFO_FIFO #ifdef IPNET_MSP_DISTRIBUTION /* FIFO available always, the rest MSP only */ /* Drop Precedence Aware FIFO */ #define IPNET_USE_IFO_DPAF /* Random Early Detection */ /*#define IPNET_USE_IFO_RED*/ /* Network emulator */ #define IPNET_USE_IFO_NETEMU /* Null queue (black hole) */ #define IPNET_USE_IFO_NULL /*** Containers for queues (which queue the packet ends up in depends on its class) ***/ /* Multi Band Container */ #define IPNET_USE_IFO_MBC /* Hierarchical Token Bucket Container */ #define IPNET_USE_IFO_HTBC #endif /* IPNET_MSP_DISTRIBUTION */ /* **************************************************************************** * SOCKET CONFIGURATION **************************************************************************** */ /* **************************************************************************** * MACSEC/DOT1X CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_SECY *=========================================================================== * Define to include MACsec SecY (MAC Security Entity) support. */ #if defined(IPMACSEC) #ifndef IPNET_USE_SECY #define IPNET_USE_SECY #endif #endif /* *=========================================================================== * IPNET_USE_CP *=========================================================================== * Define to include support for Controlled Port. */ #if defined (IPNET_USE_SECY) || defined (IPNET_USE_PAC) #ifndef IPNET_USE_CP #define IPNET_USE_CP #endif #endif /* **************************************************************************** * MULTICAST CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_SOURCE_SPECIFIC_MCAST *=========================================================================== * Define to include support for IGMPv3 and MLDv2. * IGMPv2 and MLDv1 will be used it this feature is disabled. * The only reason to disable this is to make the stack smaller. */ #define IPNET_USE_SOURCE_SPECIFIC_MCAST #ifdef IPNET_MSP_DISTRIBUTION /* *=========================================================================== * IPNET_USE_MCAST_ROUTING *=========================================================================== * Define included support for multicast routing (IPv4 and IPv6). */ #define IPNET_USE_MCAST_ROUTING /* **************************************************************************** * IP TUNNEL CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_TUNNEL *=========================================================================== * Define includes support for tunnel network interfaces. The interaces will * be called gifX. */ #if defined(IPCOM_USE_INET) && defined(IPNET_USE_MCAST_ROUTING) # ifdef IP_PORT_VXWORKS # if defined (_WRS_CONFIG_COMPONENT_TUNNEL_SUPPORT) && defined(INET) # define IPNET_USE_TUNNEL # endif # else # define IPNET_USE_TUNNEL # endif /* IP_PORT_VXWORKS */ #endif /* IPCOM_USE_INET && IPNET_USE_MCAST_ROUTING */ /* *=========================================================================== * IPNET_USE_SIT *=========================================================================== * Define includes support for SIT tunnel network interfaces. The interfaces * will be called sitX and is used to automatically tunnel IPv6 packets * over IPv4 when IPv6-compatible-IPv4 addresses are used. */ #if defined(IPNET_USE_TUNNEL) && defined(IPCOM_USE_INET) && defined(IPCOM_USE_INET6) #define IPNET_USE_SIT #endif /* *=========================================================================== * IPNET_USE_6TO4 *=========================================================================== * Define includes support for RFC3056 6to4 tunnel network interfaces. The * interfaces will be called 6to4X and is used to automatically tunnel IPv6 * packets over IPv4 using 2002:IPv4::/48 addresses. */ #if defined(IPNET_USE_TUNNEL) && defined(IPCOM_USE_INET) && defined(IPCOM_USE_INET6) #define IPNET_USE_6TO4 #endif /* *=========================================================================== * IPNET_USE_6OVER4 *=========================================================================== * Define includes support for RFC2529 6over4 tunnel network interfaces. The * interfaces will be called 6over4X. A local IPv4 must be selected as the * link address (via the IP_SIOCCHGTUNNEL ioctl). */ #if defined(IPNET_USE_TUNNEL) && defined(IPCOM_USE_INET) && defined(IPCOM_USE_INET6) #define IPNET_USE_6OVER4 #endif /* *=========================================================================== * IPNET_USE_GRE *=========================================================================== * Define includes support for GRE tunnel network interfaces. The interfaces * will be called greX. */ #ifdef IPNET_USE_TUNNEL #define IPNET_USE_GRE #endif /* *=========================================================================== * IPNET_USE_RFC2890 *=========================================================================== * Define to include support for sequence number and key option in GRE * tunnels. */ #ifdef IPNET_USE_GRE #define IPNET_USE_RFC2890 #endif #endif /* IPNET_MSP_DISTRIBUTION */ /* **************************************************************************** * DIFFERENTIATED SERVICES **************************************************************************** */ /* *=========================================================================== * IPNET_USE_DIFFSERV *=========================================================================== * Define to include support for differentiated services. */ #ifdef IPNET_MSP_DISTRIBUTION # if defined(IP_PORT_VXWORKS) # ifdef _WRS_CONFIG_COMPONENT_DIFF_SERV # define IPNET_USE_DIFFSERV # endif # else # define IPNET_USE_DIFFSERV # endif /* IP_PORT_VXWORKS */ #endif /* IPNET_MSP_DISTRIBUTION */ /* *=========================================================================== * IPNET_DIFFSERV_CLASSIFIER_MODE_BA *=========================================================================== * Define to run the classifier in Behavior Aggregate mode. IPNET will * only look at the DS field (TOS for IPv4, traffic class for IPv6) * when classifying traffic. * Undefine to run the classifier in Multi-Field mode, this is slower than * BA mode but it is now possible to match traffic on any field supported * by the IPNET classifier. */ #ifdef IPNET_USE_DIFFSERV #define IPNET_DIFFSERV_CLASSIFIER_MODE_BA #endif /* **************************************************************************** * LINK CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_LOOPBACK *=========================================================================== * Define for Loopback support, must be define for all ports except LKM. */ #define IPNET_USE_LOOPBACK /* *=========================================================================== * IPNET_USE_BOND *=========================================================================== * Define for Link Aggregation support. * The name bondX will be used for the link aggregation interfaces. */ #ifdef IPNET_MSP_DISTRIBUTION #define IPNET_USE_BOND #endif /* *=========================================================================== * IPNET_USE_VLAN *=========================================================================== * Define for IPNET 802.1Q virtual LAN support. The interfaces will be called * vlanX. */ #ifdef IPNET_MSP_DISTRIBUTION #if defined(IPCOM_USE_ETHERNET) || defined(INCLUDE_IPBRIDGE_VLAN_SUPPORT) #define IPNET_USE_VLAN #endif #endif /* IPNET_MSP_DISTRIBUTION */ /* *=========================================================================== * IPNET_USE_VLAN_STACKING *=========================================================================== * Macro define for IPNET 802.1ad VLAN stacking. */ #ifdef IPNET_MSP_DISTRIBUTION # if defined(IP_PORT_VXWORKS) && defined(IPCOM_USE_ETHERNET) # ifdef _WRS_CONFIG_COMPONENT_VLAN_STACKING # define IPNET_USE_VLAN_STACKING # endif # endif /* IP_PORT_VXWORKS && IPCOM_USE_ETHERNET */ #endif /* IPNET_MSP_DISTRIBUTION */ /* *=========================================================================== * IPNET_USE_PER_SOCKET_VLAN_TAG *=========================================================================== * Define to make it possible to set the VLAN ID and VLAN priority of * outgoing Ethernet frames via the IP_SO_VLAN socket option. */ #ifdef IPNET_USE_VLAN #define IPNET_USE_PER_SOCKET_VLAN_TAG #endif /* *=========================================================================== * IPNET_USE_WLAN *=========================================================================== * Define for IPNET WLAN support. */ #if defined(IPWLAN) || defined(IPPRISM) || defined(IP8021X) #define IPNET_USE_WLAN #endif /* *=========================================================================== * IPNET_USE_RARP *=========================================================================== * Define for IPNET RARP support. * Note: Use "inet rarp" in ipnet_config.c interface structure to enable. */ #if defined(IPCOM_USE_INET) && !defined(IPCOM_FORWARDER_NAE) #define IPNET_USE_RARP #endif /* *=========================================================================== * IPNET_USE_VRRP *=========================================================================== * Define for IPNET VRRP support. */ #if defined(IPVRRP) #define IPNET_USE_VRRP #endif /* **************************************************************************** * ROUTING SOCKET CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_ROUTESOCK *=========================================================================== * Define for routing socket support. */ #define IPNET_USE_ROUTESOCK /* *=========================================================================== * IPNET_USE_ROUTESOCK_LINKINFO *=========================================================================== * Define if you want information about added, deleted or changed ARP * and NDP entries sent to listening routing sockets as well. * #define IPNET_USE_ROUTESOCK_LINKINFO */ /* **************************************************************************** * NETLINK SOCKET CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_NETLINK *=========================================================================== * Define wether or not to use the Linux compatible NETLINK interface * */ #if defined(IPNET_USE_RFC3971) || defined(IPNET_USE_BOND) || defined(IPWRNAD) || \ defined(IPCOM_FORWARDER_NAE) || defined(IPMACSEC) || defined(IPNET_USE_VRRP) || \ defined(IPDHCPC6) #ifndef IPNET_USE_NETLINKSOCK #define IPNET_USE_NETLINKSOCK #endif #endif #ifdef IPNET_USE_NETLINKSOCK #define IPNET_USE_NETLINK #endif /* **************************************************************************** * NETLINK SOCKET CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_COMPENSATE_UNRELIABLE_NETLINK *=========================================================================== * Makes IPNET compensate for the unlikely event of dropped messages, by * regenerating a netlink "new neighbor" event for each transmission until * the neighbor has been acknowledged by an ARP/ND daemon. * * Applicable only with IPNET configured to do neighbor solication via an * ARP/ND daemon * #define IPNET_COMPENSATE_UNRELIABLE_NETLINK */ /* **************************************************************************** * INTERFACE MANAGEMENT CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_ROUTE_COOKIES *=========================================================================== * Define to get support for tagging each route table and route entry with * a user supplied finger print. * * This configuration allocates some extra memory. #define IPNET_USE_ROUTE_COOKIES */ /* *=========================================================================== * IPNET_USE_FAST_IFNAME_LOOKUP *=========================================================================== * Configure for fast (constant time) interface name lookup in IPNET. * Should be enabled on systems with a huge amount of interfaces (>10000) * * This configuration allocates some extra memory. #define IPNET_USE_FAST_IFNAME_LOOKUP */ /* *=========================================================================== * IPNET_SKIP_IFNAME_CHECK_ON_ATTACH *=========================================================================== * Configure IPNET to skip checking for duplicate names when attaching new * interfaces. * * Only enable this if name checking is done externally by the OS * (this is the case for the IPCOM LKM port). *=========================================================================== #define IPNET_SKIP_IFNAME_CHECK_ON_ATTACH */ /* **************************************************************************** * NAT CONFIGURATION **************************************************************************** */ /* *=========================================================================== * IPNET_USE_NAT *=========================================================================== * Define for NAT support. NAT is included by default when building a * MSP distribution but it is legal to exclude it. * NAT is current NOT support in a NAE, that might be changed in future * releases. */ #if defined(IPCOM_USE_INET) # if defined(_WRS_CONFIG_COMPONENT_NAT) # define IPNET_USE_NAT # elif defined(IPNET_MSP_DISTRIBUTION) \ && !defined(IPBASIC) \ && !defined(IPCOM_FORWARDER_NAE) \ && !defined(IP_PORT_VXWORKS) # define IPNET_USE_NAT # endif #endif /* *=========================================================================== * IPNET_USE_NAT_PT *=========================================================================== * Define for NAT-PT support */ #if defined(IPNET_USE_NAT) && defined(IPCOM_USE_INET) && defined(IPCOM_USE_INET6) #define IPNET_USE_NAT_PT #endif /* NAT-PT requires NAT */ #ifdef IPNET_USE_NAT_PT #ifndef IPNET_USE_NAT #error NAT-PT requires NAT #endif #endif /* *=========================================================================== * IPNET_USE_NAT_FTP_ALG *=========================================================================== * Define to enable the FTP ALG */ #define IPNET_USE_NAT_FTP_ALG /* *=========================================================================== * IPNET_USE_NAT_DNS_ALG *=========================================================================== * Define to enable the DNS ALG */ #ifdef IPNET_USE_NAT_PT #define IPNET_USE_NAT_DNS_ALG #endif /* *=========================================================================== * IPNET_USE_NAT_IPSEC_ALG *=========================================================================== * Define to enable the IPSEC ALG */ #define IPNET_USE_NAT_IPSEC_ALG /* *=========================================================================== * IPNET_USE_NAT_PPTP_ALG *=========================================================================== * Define to enable the PPTP ALG */ #define IPNET_USE_NAT_PPTP_ALG /* *=========================================================================== * IPNET_USE_NAT_H323_ALG *=========================================================================== * Define to enable the H323 ALG */ #define IPNET_USE_NAT_H323_ALG /* *=========================================================================== * IPNET_USE_NAT_SIP_ALG *=========================================================================== * Define to enable the SIP ALG */ #define IPNET_USE_NAT_SIP_ALG /* *=========================================================================== * IPNET_USE_NAT_TRIGGER_ALG *=========================================================================== * Define to enable the port trigger ALG */ #define IPNET_USE_NAT_TRIGGER_ALG /* *=========================================================================== * IPNET_USE_LINK_STUB *=========================================================================== * Define to enable the link stub implementation for bypassing * ethernet processing( for use with ipcom_drv_mux.c only) */ #define IPNET_USE_LINK_STUB /* *=========================================================================== * IPNET_USE_SO_CONNTIMEO *=========================================================================== * Define to solve the issue that in RTP mode network connect by connectWithTimeout would fail */ #define IPNET_USE_SO_CONNTIMEO #endif /* IP_PORT_LKM */ /* *=========================================================================== * ipnet_conf_memory_limit *=========================================================================== * Defines the maximum amount of memory that the stack is allowed to use. * The limit must be large enough to allow enough packet buffers, packet * headers, sockets, timers to support the workload the system has. * Most memory will be used to packet buffers. Each socket can queue up to * (send buffer size + receive buffer size) buffer octets. Each device * will need up to TX + RX descriptors of MTU sized packets. */ IP_EXTERN IP_CONST unsigned ipnet_conf_memory_limit; /* *=========================================================================== * ipnet_conf_max_sockets *=========================================================================== * Maximum number of sockets that can be used at any time (the actual number * of available sockets will be 3 less since 0,1 and 2 is reserved). */ IP_EXTERN IP_CONST int ipnet_conf_max_sockets; /* *=========================================================================== * ipnet_conf_link_layer *=========================================================================== * Array of link layer types and a initialize functions that knows how * to initialize the Ipnet_netif structure. */ IP_EXTERN IP_CONST Ipnet_conf_link_layer_init ipnet_conf_link_layer[]; /* *=========================================================================== * ipnet_conf_inq_max *=========================================================================== * Maximum number of buffers in input queue processed by the input daemon. */ IP_EXTERN IP_CONST int ipnet_conf_inq_max; /* *=========================================================================== * ipnet_conf_reassembly_timeout *=========================================================================== * Number of seconds IPNET will keep incomplete datagram fragments in the * reassembly list before discarding them. RFC2460 states default 60 seconds. * */ IP_EXTERN IP_CONST int ipnet_conf_reassembly_timeout; /* *=========================================================================== * ipnet_conf_cache_bufsiz *=========================================================================== * Trailing Ipcom_pkt cache buffer to protect dynamic buffer end marks. */ IP_EXTERN Ip_u16 ipnet_conf_cache_bufsiz; /* *=========================================================================== * ipnet_conf_interfaces *=========================================================================== * Interface configuration that is set during system boot. */ IP_EXTERN IP_CONST char *ipnet_conf_interfaces[]; /* *=========================================================================== * ipnet_conf_routes *=========================================================================== * Route table configuration that is set during system boot. */ IP_EXTERN IP_CONST char *ipnet_conf_boot_cmd[]; /* *=========================================================================== * ipnet_conf_ip4_min_mtu *=========================================================================== * The smallest MTU that IPNET expects for IPv4. Should be 576 in most cases. */ IP_EXTERN IP_CONST Ip_u16 ipnet_conf_ip4_min_mtu; /* *=========================================================================== * ipnet_conf_ip6_min_mtu *=========================================================================== * The smallest MTU that IPNET expects for IPv6. Should be 1280 in most cases. */ IP_EXTERN IP_CONST Ip_u16 ipnet_conf_ip6_min_mtu; /* *=========================================================================== * ipnet_conf_max_reassembly_list_len *=========================================================================== * Maximum number of partially reassembled IP-datagrams the stack will * keep around. */ IP_EXTERN IP_CONST unsigned ipnet_conf_max_reassembly_list_len; /* *=========================================================================== * ipnet_conf_max_dgram_frag_list_len *=========================================================================== * Maximum number of fragments a single IP-datagram can consist of. */ IP_EXTERN IP_CONST unsigned ipnet_conf_max_dgram_frag_list_len; /* *=========================================================================== * ipnet_pkt_pool_slab_desc *=========================================================================== * Slab cache configuration. */ IP_EXTERN struct Ipnet_pkt_pool_slab_desc ipnet_pkt_pool_slab_desc[]; /* *=========================================================================== * ipnet_dst_cache_number_limit *=========================================================================== * Defines maximum amount of destination cache number the stack is allowed to use. * Set to 0 if do not limit(default) */ IP_EXTERN IP_CONST unsigned ipnet_dst_cache_number_limit; /* **************************************************************************** * MISC AUTO CONFIG/VERIFICATION **************************************************************************** */ #if !defined(IPCOM_USE_INET) && !defined(IPCOM_USE_INET6) #error Must_define__IPNET_INET4__andor__IPNET_INET6 #endif /* IPSSL use old socket structures. */ #if defined(IPSSL) && !defined(IPNET_COMPAT_OLDSOCK) #define IPNET_COMPAT_OLDSOCK #endif #ifdef __cplusplus } #endif #endif /* **************************************************************************** * END OF FILE **************************************************************************** */