History: mip_udp

This page describes all changes made to the mip_udp package, the UDP module, since its release.


7.12 (2021-05-04, 19:00):

  • Introduced udp_get_connection_info() API function to retrieve the IP address and port the UDP connection is listening on.

7.11 (2021-02-15, 13:30):

  • Modified udp_get_buf_ifc() to not wait for buffer if it is not available. This function is used by DHCPv4 client to allocate an IP buffer. Due to this issue DHCPv4 could lock-up if an IP buffer was not available, however DHCPv4 is already prepared to handle this situation (retries after timeout).

7.10 (2020-10-05, 15:30):

  • Corrected checking of source broadcast address when IP_V4_ALIAS_COUNT option is enabled to support IPv4 alias addresses.

7.9 (2020-05-20, 22:31):

  • MISRA-C:2012: violations eliminated (MISRA-C:2004 revoked).

7.8 (2019-11-25, 15:58):

  • MISRA-C:2004: violations eliminated.

7.7r2 (2019-11-25, 12:30):

  • AutoSAR test report added to the package.

7.7 (2019-05-30, 09:00):

  • NULL pointer access could happen if the registered callback function was called by the UDP module just after removing it (due to close or interface drop).

7.6 (2019-02-13, 16:55):

  • MISRA-C:2004: violations eliminated.

7.5 (2018-12-14, 12:00):

  • MISRA-C:2004: violations eliminated.

7.4 (2018-09-19, 12:55):

  • Added IP aliasing support for IPv4.

7.3 (2018-09-10, 09:17):

  • Zero length packets can be received from now on and ICMP "Destination unreachable" message is answered if port is not opened.

7.2r2 (2018-08-29, 18:18):

  • Document HTML link added to the documentation folder.
  • History and document files renamed to the package name.

7.2 (2018-02-02, 14:00)

  • Added exclude code macros for parts that are IPv4-specific, so can compile when only IPv6 is enabled.

7.1 (2017-10-04, 08:00):

  • Message is dropped when source IP address is multicast or broadcast.  
  • If received message's destination port is not opened, ICMP destination unreachable message is sent.
  • Port can be opened to a specified IP address with udp_open().


  • udp_open() function header was incomplete.


  • updated to work with IP base major version 6.
  • IP address parameter type was changed in udp_send() function.


  • updated to work with IP base major version 5.


  • Checksum calculation and verification can be switched separately for protocols.


  • udp_release_buf() failed to work correctly if called after a udp_send() that was completed with an error.


  • accept all packets with zero checksum (according to the RFC, zero checksum means verification is switched off).
  • convert zero checksum to -1 for sent packets and set it to zero if checksum is switched off for transmitted packets.


  • udp_receive() returned incorrect remote port number.


  • udp_is_data_ready() renamed to udp_rx_ready() and an output parameter added which tells the amount of unread bytes on a port.
  • UDP packet length check added.


  • Received but not delivered (with udp_receive()) buffers were not released in case an interface was stopped, as a consequence the system could run out of buffers.
  • Required package version checks added.


  • Function header comment fixed for udp_get_buf().


  • udp_get_buf() modified.


  • udp_send() function changed to have IP options as a parameter.


  • set IP TTL for sent UDP packets.


introduced HCC_UNUSEBD_ARG for unused arguments.


  • introduced udp_get_buf_ifc() function for DHCP to be able to transmit on an unconfigured interface.


  • comments fixed.


  • added mutex lock/unlock to ip_udp_delete() where required as mutex lock/unlock was removed from ip_stack_delete().


  • lockup could occur from udp_close() if there were no unprocessed packets.


  • multi-interface compliant.


  • converted to use of new get IP buffer function.


  • start, stop and delete added.
  • general cleanup.


  • udp_release_buf() must be called if udp_send() fails. Previously this was done from the USP module; it has changed to be consistent with other modules.


  • Comments changed, beautified.


  • Initial release.