NDK Change Log

Table of Contents

NDK 3.75

Bugs

ID Summary
NDK-527 Improve SysConfig error checking of user-supplied C functions
NDK-521 Fix NIMU Interface ID at build time
NDK-516 The NAT SysConfig module should be limited to one instance
NDK-513 Fix some broken links in documentation
NDK-512 IP & TCP Rx SW checksum validation is skipped if HW checksums are disabled
NDK-505 SysConfig build warnings for some IP options
NDK-504 Issues when configuring NDK ServiceReport functions using SysConfig
NDK-495 Module name for EMAC in SysConfig display should be “EMAC” not “emac”
NDK-494 User supplied function for Service Report in SysConfig fails to compile
NDK-492 NDK_EALREADY error is not being translated in slnetif layer
NDK-486 SlNetIfNDK_bind and SlNetIfNDK_listen do not properly return error codes
NDK-478 Telnet's EchoTcp() EchoUdp() should use a more complete test pattern
NDK-469 Incorrect assert fires if SlNetIfNDK_recvFrom() is passed MSG_DONTWAIT
NDK-463 Sockets ROV view has incorrect calculation for amount of buffer used
NDK-415 Missing setsockopt options in NDK's SlNetIf
NDK-413 NDK_setsockopt() should ensure valid optval ranges are supplied
NDK-394 Fix check for duplicate wildcard sockets in Sock6PcbBind
NDK-356 TCP server sockets do not transition to listen state after call to listen()
NDK-89 UDP client socket doesn't “auto bind” its port

Enhancements

ID Summary
NDK-525 Improve support for devices with partial checksum offload
NDK-524 Remove deprecated winapps directory
NDK-518 Introduce debug stat to track TCP packets dropped due to no open port
NDK-517 Add GenLibs support to contribute libraries via SysConfig
NDK-511 Update docs to position XDC-based NDK config as deprecated
NDK-498 Remove unnecessary TCP software checksums
NDK-482 Add TCP debug logging
NDK-481 Add a free count to NDK's ROV memory view
NDK-477 Introduce protocol specific hardware checksum offload flags
NDK-475 Add M4F (TICLANG) library support
NDK-473 Remove legacy eclipse plugin
NDK-462 Remove deprecated HTTP Server
NDK-431 Add NDK Interface (NIMU) module to NDK sysconfig
NDK-379 Add PBMQ_enqHead() capability
NDK-62 ROV should show IPv4/IPv6 address info

Compatibility Notes

NDK 3.75 is not binary compatible with NDK 3.71, though it is generally source compatible. The following changes are notable when considering compatibility:

NDK 3.71

Bugs

ID Summary
NDK-491 Configuring an external DNS server address causes SysConfig crash
NDK-490 DNSGetReply() causes null deference in DNSReplyFree() if mmAlloc() fails for authoritative answers
NDK-488 Errant NIMU driver can cause NULL dereference when receiving multicast packets
NDK-437 Loopback transfers fail when enabling hardware checksums
NDK-395 Address ppc variable build warning in pppoe/nimupppoe.c

Enhancements

ID Summary
NDK-467 SlNetIfNDK should support TLS renegotiation

NDK 3.70

Bugs

ID Summary
NDK-451 DNSReadRecord silently drops records if there is not enough memory
NDK-449 SlNetIfNDK_getSockName does not translate NDK error code upon failure
NDK-447 shutdown() not implemented in SlNetIfNDK
NDK-446 getpeername() not implemented in SlNetIfNDK
NDK-435 F2838X driver should not filter IPv6 multicast packets
NDK-421 Build failure when enabling _STRONG_CHECKING
NDK-419 Add docs describing ipaddrhook timing when configured with static IP
NDK-418 SlNetIfNDK_loadSecObj does not check for duplicate object names
NDK-408 NDK build instructions are out-of-date
NDK-393 Update Docs with user feedback
NDK-89 UDP client socket doesn't “auto bind” its port

Enhancements

ID Summary
NDK-439 C-ROV sockets view should show bound port numbers
NDK-438 Move SysConfig generated NIMU table from drivers to NDK
NDK-416 Add NIMU driver for F2838X
NDK-412 F2838X driver should support HW checksum error drop IOCTL
NDK-411 Add NIMU IOCTL command to control the checksum offload engine's packet drop policy
NDK-402 Add M33 (TICLANG) library support
NDK-400 Users Guide style improvements
NDK-396 remove unneeded -D_INCLUDE_NIMU_CODE from package.bld scripts
NDK-391 NDK C-ROV support files should be generated by SysConfig
NDK-355 Refactor SysConfig service flags
NDK-354 Enable NIMU drivers to offload IPv6 Checksums to hardware

NDK 3.61

Bugs

ID Summary
NDK-392 General documentation updates
NDK-390 TI toolchain versions in release notes are incorrect
NDK-387 NDK's general syscfg module does not pass configuration to stack init hook
NDK-382 NDK services create memory leak when exiting their tasks
NDK-381 Broken link in ConfigDoc.html's DHCP.dhcpClientPcbServer description
NDK-380 Users cannot rebuild A53 libraries

Enhancements

ID Summary
NDK-353 Add M33F (TICLANG) library support

NDK 3.60

Bugs

ID Summary
NDK-322 Rename NDK_RegisterHook and NDK_getsockctx to conform to naming conventions
NDK-319 Possible double free if TLS handshake fails
NDK-318 SlNetIfNDK should use POSIX sem's rather than pthread_mutexes
NDK-316 Remove SysConfig-generated code's dependency on Display
NDK-315 Sockets do not remove themselves from the fd table if not closed through slnetifndk
NDK-314 Changing SysConfig IP addr config from static to dynamic causes build failure
NDK-92 return value of NIMU registered init function not checked
NDK-29 Remove the need for Telnet users to supply VerStr symbol

Enhancements

ID Summary
NDK-309 Enable NIMU drivers to offload IPv4 Checksums to hardware
NDK-297 Provide SysConfig support for configuring the NDK's DHCP Server Module
NDK-296 Provide SysConfig support for configuring the NDK's NAT Module
NDK-295 Provide SysConfig support for configuring the NDK's DNS Module
NDK-294 Update docs with info on Selective Acknowledgement feature
NDK-270 Extend C-ROV NDK socket support
NDK-238 Provide SysConfig support for configuring the NDK's Telnet Module

Compatibility Notes

NDK 3.60 is mostly compatible with 3.50, with the following exceptions:

NDK 3.50

Bugs

ID Summary
NDK-290 Shallow copy of deep object in ti_ndk_config_ip_init()
NDK-289 Fix return codes in slnetifndk sockopt translation
NDK-284 Update ti.ndk.config package to load POSIX Settings module
NDK-275 SlNetSock_getLocalName() broken when using NDK
NDK-274 Broken links in API Guide's Table of Contents
NDK-268 Access to ti_ndk_socket_fdtable must be atomic
NDK-251 NDK_socket/accept needs to honor config parameter maxSockFileDesc
NDK-228 Release notes link to benchmarks broken
NDK-218 Update TcpPrSetOption() to allow SACK to be disabled

Enhancements

ID Summary
NDK-283 Add NDK 2.x to 3.x Migration Guide
NDK-276 SysConfig - Place NDK's Modules in their own category
NDK-269 Update docs to improve IPv6 usability
NDK-263 Minor documentation clarifications

NDK 3.40

Bugs

ID Summary
NDK-262 Translate TCP options in SlNetIfNDK
NDK-261 Add NDK prefix to TCP constants
NDK-260 Error codes in serrno.h need to be prefixed with NDK_
NDK-259 Add support for ENETDOWN in SlNetIfNDK
NDK-257 Remove documentation for APIs no longer present in NDK
NDK-252 Add support for MSG_PEEK and other missing flags in SlNetIfNDK_recv
NDK-240 Update DNS macros to have NDK_ prefix
NDK-233 Add support into SlNetIfNDK for SO_BROADCAST option
NDK-135 check for NULL pointer before deref in IPv6 route code

Enhancements

ID Summary
NDK-242 Move inet_ntop and inet_pton functions from NDK and into NS
NDK-199 Add C-ROV support into NDK
NDK-121 Add A53F gcc support
NDK-105 Remove support for several legacy targets (non-gcc A8, M3, non-TI M4)

Compatibility Notes

This release contains several compatibility breaks, which may require users to update and rebuild their source code.

Previous Name New Name
TCP_NODELAY NDK_TCP_NODELAY
TCP_MAXSEG NDK_TCP_MAXSEG
TCP_NOPUSH NDK_TCP_NOPUSH
TCP_NOOPT NDK_TCP_NOOPT
TCP_SACKPERMITTED NDK_TCP_SACKPERMITTED
TCP_MAXRTT NDK_TCP_MAXRTT
Previous Name New Name
NOERROR NDK_DNS_NOERROR
FORMERR NDK_DNS_EFORMERR
SERVFAIL NDK_DNS_ESERVFAIL
NXDOMAIN NDK_DNS_ENXDOMAIN
NOTIMP NDK_DNS_ENOTIMP
REFUSED NDK_DNS_EREFUSED
OVERFLOW NDK_DNS_EOVERFLOW
MEMERROR NDK_DNS_EMEMERROR
SOCKETERROR NDK_DNS_ESOCKETERROR
NODNSREPLY NDK_DNS_ENODNSREPLY

NDK 3.30

Bugs

ID Summary
NDK-244 Translate address family in SlNetIfNDK
NDK-243 Allow servers to request client authentication
NDK-237 TLS handshake fails when the server requests a local certificate but none is provided
NDK-234 inet_ntop() does not null terminate strings correctly for IPv6
NDK-232 Call Sock6CleanPcb() when an IPv6 address is removed and/or IPv6 is deinitialized
NDK-230 Potential crash if client on a closed, lingering socket sends TCP_RST
NDK-225 Potential crash when sockets linger and the stack is shut down
NDK-221 Broken links in Users and API Guides
NDK-205 Add NDK_ prefix to BIGENDIAN macro
NDK-200 Add NDK_ prefix to global stats variables
NDK-36 add llEnter/llExit around calls to SockCleanPcb()

Enhancements

ID Summary
NDK-206 Update preprocessor big endian detection for all supported compilers
NDK-127 Move getaddrinfo and freeaddrinfo into NS

Compatibility Notes

NDK 3.20

Bugs

ID Summary
NDK-208 Change incorrect use of pthread_self() API in example code of documentation
NDK-71 NDK BSD fd_set type overridden by sys/types.h shipped with BIOS

Enhancements

ID Summary
NDK-216 Handle big endian detection properly for new tool chains
NDK-190 NDK documentation updates
NDK-184 Support SlNetIfNDK_getConnectionStatus()
NDK-175 Make NDK callable from any thread
NDK-171 Update NIMU IOCTL to support query of driver/interface link status
NDK-55 Convert NDK Users Guides from pdf to html (via markdown)

Compatibility Notes

NDK 3.10

Bugs

ID Summary
NDK-201 udpecho does not receive correct payload
NDK-197 accept() must support NULL address and address_len params
NDK-192 NDK_bind needs to check for NULL arguments passed
NDK-183 Race condition in SlNetIfNDK_startSec

Enhancements

ID Summary
NDK-198 SlNetIfNDK should return more specific error codes when possible
NDK-196 Add NDK_ prefix to all network byte order macros
NDK-189 SlNetSock-using apps shouldn't require mbedtls footprint if they don't use it

Compatibility Notes

NDK 3.00

Bugs

ID Summary
NDK-181 NDK timeval struct conflicts with definition in GCC 6.x tool chain
NDK-167 Fix memory leak in socket clean up code
NDK-130 Remove conflicting bzero and bcopy definitions from the NDK
NDK-120 NDK should support/use actual integer file descriptors for socket APIs
NDK-119 Freeing invalid sockets causes crash
NDK-67 Various NDK definitions (pipe and fd macros) conflict with the same ones that are shipped in the compiler
NDK-61 possible race condition in TcpPrDetach causes NULL ptr dereference
NDK-41 NDK interrupt module creates a 256 byte array to store a single interrupt
NDK-17 Must update NDK list_* APIs to have a function pre-fix

Enhancements

ID Summary
NDK-169 Remove NDK's (light) ROV support
NDK-168 Remove C66 big endian libraries
NDK-155 Enable FreeRTOS support in NDK
NDK-151 Add mbedtls support to NDK
NDK-142 Add MSP432E support to NDK
NDK-140 Add support for 32-bit and 64-bit Linux targets in NDK
NDK-138 Remove SNTP from NDK (as it is moving to Network Services)
NDK-128 mmBulkAlloc should call malloc() NOT Memory_alloc()
NDK-126 Remove NDK local typedefs (e.g. UINT32) and use C99 standard types
NDK-124 NDK should use system wide errno
NDK-115 MSG_NOSIGNAL is undefined
NDK-103 Update OS layer to use POSIX APIs
NDK-73 use GNUC preprocessor constant, not default #else, for GNU compiler specific code
NDK-70 ARP table behavior implemented by SDOCM00107816 should be default behavior in NDK
NDK-20 remove Interrupt_add() and related APIs

Compatibility Notes

NDK 3.x has undergone significant changes from NDK 2.x, and as such, anyone upgrading from a previous NDK 2.x release will require user changes. A brief summary of these changes include: