TCPIP Stack Updates – NET+OS 7.3

 

 

 

Last Updated: 04/23/12         Fix Count: 8

 

 
Title
Stack can hang when cable is plugged/unplugged repeatedly
 
Case: none
 
Date Fixed: 03/29/12
 
Description
When the Ethernet cable is plugged/unplugged quickly and repeatedly, the stack could become unresponsive.
 
Solution
Fixed issue that could cause resources not to be freed, hanging the stack.
 
 
Title
DHCP hangs when NAK received from server
 
Case: 37023
 
Date Fixed: 12/21/10
 
Description
Client stops sending DHCP Discovers after getting a NAK response from DHCP server.
 
Solution
Fixed issue caused by freeing wrong buffer pointer.
 
 
Title
Incompatibility with some Linux DHCP servers
 
Case: 28712
 
Date Fixed: 12/03/08
 
Description
The unit was replying to a ping request when it had no configured IP address on the interface and the ping request was sent directly to our MAC address.  This could cause a new address to be issued by the DHCP server.
 
Solution
Modified logic in stack icmp code to resolve issue.
 
 
Title
DNSGetServer returning wrong values
 
Case: 25658
 
Date Fixed: 02/22/08
 
Description
DNSGetServers() is not properly reporting the address of available DNS servers.
 
Solution
DNSGetServer now returns the IP addresses of the DNS servers.
 
 
Title
sockatmark function not supported
 
Case: 25097
 
Date Fixed: 01/08/08
 
Description

Compile errors are generated when trying to use the sockatmark function.

 
Solution
Added support for sockatmark().
 
 
Title
Incompatibility with SonicWall DHCP corrected
 
Case: 24354
 
Date Fixed: 12/27/07
 
Description

There is a problem negotiating an address with a SonicWall DHCP server.

 
Solution
Fixed bug where overload option flag is not cleared after processing the overload fields.
 

 

Title

Subnet broadcast issue

 

Case: 24978

 

Date Fixed: 11/27/07

 

Description

Under certain conditions, subnet broadcasts packets do not leave the device, but sendto() may indicate that packets were sent.

 

Background

 

An all network broadcast IP address is of the form 255.255.255.255 or in hex FF.FF.FF.FF. An IP subnet broadcast address might be of the form 10.255.255.255 or 10.52.255.255. This issue refers to IP broadcast addresses of the form of the later two addresses mentioned above.

  

If a device’s gateway address is set to an invalid address, either 0.0.0.0 or a non-existent gateway address, the RFC’s associated with subnets indicate that the subnet-related broadcast packets should still be successfully transmitted from the device. In NET+OS V7.x, due to a bug in the TCP/IP stack library, subnet broadcast packets were not being transmitted. Further, the sendto command was returning information to the caller, indicating that the packets were successfully being transmitted. A user using a network analyzer package would have seen that the packets were not being successfully transmitted. The problem was that under certain conditions of gateway address and subnet mask combinations, the stack would not view the subnet broadcast address as a broadcast address, but view it as a unicast address. Because of this mistake, the IP stack would attempt to “ARP” the nonexistent gateway address. Since no machine would respond to the ARP request (because it was for a nonexistent IP address), the IP stack could not send out the packets..    

 

Solution

The corrected behavior is to send the packet out, without ARPing for the gateway (broadcast behavior vs. unicast behavior).

 

 

Title

naArpFlush added

 

Case: 23632

 

Date Fixed: 11/19/07

 

Description

There was no method to clear the ARP cache.

 

Solution

Added functionality to clear ARP cache and ARP API header.  See the API Reference for details.

 

 

Files:   netos\h\naarpapi.h

netos\lib\arm7\32b\ghs\libtcpip.a

netos\lib\arm7\32b\gnu\libtcpip.a

netos\lib\arm9\32b\ghs\libtcpip.a

netos\lib\arm9\32b\gnu\libtcpip.a

netos\lib\arm7\32b\ghs\libtcpip_no_ipsec.a

netos\lib\arm7\32b\gnu\libtcpip_no_ipsec.a

netos\lib\arm9\32b\ghs\libtcpip_no_ipsec.a

netos\lib\arm9\32b\gnu\libtcpip_no_ipsec.a

netos\lib\arm7\32b\ghs\libdnsclnt.a

netos\lib\arm7\32b\gnu\libdnsclnt.a

netos\lib\arm9\32b\ghs\libdnsclnt.a

netos\lib\arm9\32b\gnu\libdnsclnt.a

netos\src\examples\nadnsclnt\root.c

 

Special Instructions

 

New projects created in Digi ESP will include all applied patches.

 

This patch contains a file that will not automatically update your current Digi ESP projects.

 

This file is:

netos\src\examples\nadnsclnt\root.c

 

You will need to merge this file into your project if it is required.

 

Your Digi ESP project can be found by opening Digi ESP in the C/C++ perspective, right clicking your project and selecting properties.  The location will be under the info section.

 

As always, backup your files before making these changes.

 

 

 

 

Patch Link:  TCPIPUpdates_73

 

Dependencies

This patch also requires the installation of the following patch(es):

ApiReference_73