IP Configuration API
Network Interface Configuration NAIfconfigIsDeviceUp() NAIfconfigDeviceFromInterface() NAIfconfigBringDeviceUp() NAIfconfigSetIpAddress() NAAddDeviceToTcpipDeviceTable()
Global IP Configuration NAIpSetDefaultIpTtl() NAIpGetDefaultIpTtl() NAIpSetDefaultTcpTtl() NAIpGetDefaultTcpTtl() NAIpSetKaInterval() NAIpGetKaInterval() NAIpSetKaGarbage()
Global IP Configuration (2) typedef enum { NA_IP_KA_GARGAGE_DEFAULT, NA_IP_KA_NO_GARBAGE_DATA, NA_IP_KA_GARBAGE_DATA } NaIpKaGarbageType;
Changes in TCP/IP Stack
Multi-homed Interfaces Several IP addresses are used for one physical address. Interface names: –Primary- eth0 –Secondary- eth0:0, eth0:1, …
New RFC Support RFC 1323TCP Extensions for High Performance RFC 2001TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms RFC 2018TCP Selective Acknowledgement Options RFC 1644T/TCP - TCP Extensions for Transactions RFC 1191Path MTU Discovery
New Socket Options - SOL_SOCKET SO_REUSEPORT Allow local address/port reuse
New IP Level Options – IPPROTO_IP IP_O_TOSType of service IP_O_FRAGFragmentation Control IP_O_SECUREsecurity:compartment:handling:tcc IP_O_LSRRLoose source and record route IP_O_SSRRStrict source and record route
New IP Level Options – IPPROTO_IP (2) IP_O_RRRecord route IP_O_STREAMStream identifier IP_O_TIMEInternet timestamp IP_TTLSpecify time-to-live for outgoing non-multicast packets.
TCP Level Options – IPPROTO_TCP TCP_O_SEQNORetrieve current sequence number. It's used for counting number of bytes sent on connection. TCP_NODELAYDisables Nagle algorithm i.e., we don't inhibit the sending of smaller- than-MSS-sized segments. Berkeley standard. TCP_WINDOW_SCALEEnable/disable TCP window scale option. Enabled by default. RFC 1323.
TCP Level Options – IPPROTO_TCP (2) TCP_RTT_ALGORITHMTCP_RTTM_STANDARD (0) - use standard algorithm; TCP_RTTM_RFC_1323 (1) - use RFC 1323 algorithm for TCP_RTT_ALGORITHM if timestamps option successfully negotiated with peer. TCP_ENABLE_PAWSEnable/disable the "protect against wrapped sequence numbers" checking as defined in RFC 1323; enable if timestamps option successfully negotiated.
TCP Level Options – IPPROTO_TCP (3) TCP_PROVIDE_TIMESTAMPSGenerate/echo timestamps whether or not we need them for any processing. This allows us to comply with a peer that wants to use timestamps. RFC 1323 TCP_ENABLE_TRANSACTION_TCPEnables the transaction tcp protocol RFC 1644
TCP Level Options – IPPROTO_TCP (4) TCP_MAXSEGSet/Get the maximum segment size that TCP will send to the peer (send MSS). Berkeley standard TCP_USE_PEER_MSS_OPTIONUse for the send MSS the MSS option value received from the peer in a SYN segment (Set only). TCP_SET_RCV_MSSSet our receive MSS, i.e., the MSS option value that will be sent to the peer in a SYN segment (Set only).
TCP Level Options – IPPROTO_TCP (5) TCP_REX_MAX Maximum TCP retransmission timeout TCP_REX_MIN Minimum TCP retransmission timeout TCP_REX_INIT Initial TCP retransmission timeout TCP_ACKDELAYTIME Delay period (in ms) used for delayed ACKs. TCP_ACKNSEG ACK every Nth segment Default is 2.
TCP Level Options – IPPROTO_TCP (6) TCP_PERMIT_SACKS Allow the peer to send selective ACKs. RFC TCP_SEND_SACKS Send selective ACKs to the peer, if the peer allows it. RFC TCP_FAST_RETR_RECOV Enable/disable the Fast Retransmit/ Fast Recovery algorithms defined in RFC 2001 TCP_SLOW_START_CA Enable/disable the Slow Start/ Congestion avoidance algorithms defined in RFC 2001