summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Wick <[email protected]>2024-02-27 22:21:08 -0800
committerGitHub <[email protected]>2024-02-27 22:21:08 -0800
commit18704ffa7383071ce1b335730fbde131f27be045 (patch)
tree89db0b553efc19b3e67f5213f4aec67c3da66199
parent63b07fbe5d08e40b61ec52f3b8c68107cc8ee80c (diff)
parent35bf5daeae88d922d1e6b03c4d915c1a52186aee (diff)
Merge pull request #250 from eclipse-threadx/bo-ms/add_revision_historyv6.4.1_rel
Add revision history file.
-rw-r--r--docs/revision_history.txt5815
1 files changed, 5815 insertions, 0 deletions
diff --git a/docs/revision_history.txt b/docs/revision_history.txt
new file mode 100644
index 00000000..834c8e2b
--- /dev/null
+++ b/docs/revision_history.txt
@@ -0,0 +1,5815 @@
+ NetXDuo
+
+For version 6 and higher, please refer to the release notes on GitHub at https://github.com/eclipse-threadx/netxduo/releases.
+Below is the revision history for 5.x.
+
+1. NetXDuo
+
+08-15-2019 NetX Duo generic code version 5.12. This release includes the
+ following major features:
+
+ Files are modified to fix window size overflow:
+ nx_tcp_packet_send_control.c
+ nx_tcp_socket_retransmit.c
+ nx_tcp_socket_send_internal.c
+
+ Files are modified to improve string length verification:
+ demo_netx_duo_multihome_tcp.c
+ demo_netx_duo_multihome_udp.c
+ demo_netx_duo_tcp.c
+ demo_netx_duo_udp.c
+ nx_api.h
+ nx_user.h
+
+ Files are modified to improve RARP logic:
+ nx_rarp_enable.c
+ nx_rarp_periodic_update.c
+ nx_rarp_packet_receive.c
+
+ File is created to improve string length verification:
+ nx_utility.c
+
+ Files are modified to fix compiler warnings:
+ nx_ip_checksum_compute.c
+ nxd_ipv6_default_router_entry_get.c
+
+ Files are modified to fix system state check:
+ nx_api.h
+ nx_icmp_packet_receive.c
+ nx_igmp_packet_receive.c
+ nx_tcp_client_bind_cleanup.c
+ nx_tcp_connect_cleanup.c
+ nx_tcp_disconnect_cleanup.c
+ nx_tcp_packet_receive.c
+ nx_tcp_receive_cleanup.c
+ nx_tcp_transmit_cleanup.c
+ nx_udp_packet_receive.c
+
+ Files are modified to improve packet length verification:
+ nx_arp_announce_send.c
+ nx_arp_packet_receive.c
+ nx_arp_packet_send.c
+ nx_arp_probe_send.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_rs.c
+ nx_igmp_interface_report_send.c
+ nx_rarp_packet_receive.c
+ nx_rarp_packet_send.c
+ nx_tcp_packet_send_control.c
+ nx_udp_packet_receive.c
+
+ Files are modified to support for 64-bit mode:
+ nx_api.h
+ nx_arp_queue_send.c
+ nx_icmp_interface_ping.c
+ nx_icmp_interface_ping6.c
+ nx_icmpv4_process_echo_reply.c
+ nx_icmpv4_send_error_message.c
+ nx_icmpv6_destination_table_periodic_update.c
+ nx_icmpv6_process_echo_reply.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_queued_packets.c
+ nx_icmpv6_send_rs.c
+ nx_icmpv6_validate_neighbor_message.c
+ nx_icmpv6_validate_options.c
+ nx_icmpv6_validate_ra.c
+ nx_igmp_packet_process.c
+ nx_ip_checksum_compute.c
+ nx_ip_create.c
+ nx_ip_dispatch_process.c
+ nx_ip_driver_packet_send.c
+ nx_ip_fast_periodic_timer_entry.c
+ nx_ip_fragment_assembly.c
+ nx_ip_fragment_forward_packet.c
+ nx_ip_fragment_packet.c
+ nx_ip_header_add.c
+ nx_ip_packet_checksum_compute.c
+ nx_ip_packet_send.c
+ nx_ip_periodic_timer_entry.c
+ nx_ip_thread_entry.c
+ nx_ipv4_option_process.c
+ nx_ipv4_packet_receive.c
+ nx_ipv6_fragment_process.c
+ nx_ipv6_header_add.c
+ nx_ipv6_option_error.c
+ nx_ipv6_packet_receive.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_process_hop_by_hop_option.c
+ nx_packet.h
+ nx_packet_data_adjust.c
+ nx_packet_debug_info_get.c
+ nx_packet_pool_create.c
+ nx_tcp_no_connection_reset.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_control.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_server_socket_relisten.c
+ nx_tcp_socket_packet_process.c
+ nx_tcp_socket_receive.c
+ nx_tcp_socket_retransmit.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_data_check.c
+ nx_udp_packet_receive.c
+ nx_udp_socket_bytes_available.c
+ nx_udp_socket_receive.c
+ nxd_ipv6_disable.c
+ nxd_udp_socket_send.c
+ nxde_icmp_ping.c
+ nxde_icmp_source_ping.c
+ nxe_packet_pool_create.c
+
+ Other modified files:
+ demo_netx_duo_multihome_udp.c Fixed packet leak when IPv4 disabled.
+ nx_arp_packet_receive.c Fixed the ARP update on static entries.
+ nx_ip_checksum_compute.c Fixed alignment issue.
+ nx_ip_delete.c Allowed driver uninit to execute without preemption disabled.
+ nx_ip_dispatch_process.c Supported packet pool low watermark.
+ nx_ipv4_option_process.c Improved internal logic.
+ nx_ipv4_packet_receive.c Corrected the logic for checking DHCP message.
+ nx_ipv4_packet_receive.c Supported packet pool low watermark.
+ nxd_tcp_client_socket_connect.c Fixed a packet leak issue for TCP client.
+ nx_tcp_packet_process.c Fixed connection MSS.
+ Validated option after SEQ and ACK are checked.
+ nx_tcp_socket_packet_process.c Validated option after SEQ and ACK are checked.
+ nx_tcp_packet_send_syn.c Fixed connection MSS.
+
+
+07/15/2018 NetX Duo generic code version 5.11. This release includes the
+ following major features:
+
+ Files are modified to fix custom MSS value:
+ nx_api.h
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_server_socket_relisten.c
+ nx_tcp_socket_mss_get.c
+ nx_tcp_socket_mss_set.c
+ nx_tcp_socket_send_internal.c
+
+ Files are modified to improve packet length verification:
+ nx_icmpv6_process_echo_reply.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_packet_too_big.c
+ nx_icmpv6_validate_options.c
+ nx_ip_dispatch_process.c
+ nx_ipv4_packet_receive.c
+ nx_ipv6_packet_receive.c
+ nx_ipv6_process_hop_by_hop_option.c
+ nx_tcp_packet_process.c
+
+ Files are modified to support Thread feature:
+ nx_api.h
+ nx_ipv6_process_hop_by_hop_option.c
+ nx_ipv6_util.c
+ nx_packet_allocate.c
+
+ Files are modified to check interface for router lookup:
+ nx_icmpv6_process_redirect.c
+ nx_ipv6.h
+ nx_ipv6_packet_send.c
+ nxd_ipv6_router_lookup.c
+
+ Files are modified to fix the logic to update the destination cache:
+ nx_icmpv6.h
+ nx_icmpv6_dest_table_add.c
+ nx_icmpv6_dest_table_find.c
+ nx_icmpv6_process_packet_too_big.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_queued_packets.c
+ nx_ipv6_packet_send.c
+
+ Files are modified to support specified source interface for IPv6:
+ nx_icmp_ping6.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_rs.c
+ nx_ipv6.h
+ nxd_ipv6_interface_find.c
+ nxd_tcp_client_socket_connect.c
+ nxd_udp_socket_send.c
+
+ Files are modified to improve internal logic:
+ nx_api.h
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_send_error_message.c
+ nx_ip_create.c
+ nx_ip_dispatch_process.c
+ nx_ip_fragment_assembly.c
+ nx_ip_fragment_timeout_check.c
+ nx_ip_header_add.c
+ nx_ip_interface_attach.c
+ nx_ip_interface_physical_address_set.c
+ nx_ip_max_payload_size_find.c
+ nx_ipv4_option_process.c
+ nx_ipv6_header_add.c
+ nx_ipv6_option_error.c
+ nx_ipv6_packet_copy.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_util.c
+ nx_packet_allocate.c
+ nx_packet_release.c
+ nx_packet_transmit_release.c
+ nx_ram_network_driver.c
+ nx_tcp_client_socket_bind.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_control.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_server_socket_accept.c
+ nx_tcp_socket_disconnect.c
+ nx_tcp_socket_retransmit.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_data_check.c
+ nx_udp_socket_bind.c
+ nx_udp_socket_receive.c
+ nxd_ipv6_default_router_delete.c
+ nxd_ipv6_interface_find.c
+ nxd_ipv6_search_onlink.c
+ nxd_tcp_client_socket_connect.c
+ nxd_udp_socket_send.c
+
+ Files are modified to merge IPv6 loopback address with normal IPv6 address:
+ nx_api.h
+ nx_ip_create.c
+ nx_ip_max_payload_size_find.c
+ nxd_ipv6_disable.c
+ nxde_icmp_source_ping.c
+ nxde_ip_raw_packet_source_send.c
+ nxde_ipv6_address_get.c
+ nxde_udp_socket_source_send.c
+
+ Files are modified to use macro to bring in symbol: _tx_thread_system_state:
+ nxe_ip_forwarding_disable.c
+ nxe_ip_forwarding_enable.c
+ nxe_packet_pool_info_get.c
+ nxe_tcp_enable.c
+ nxe_tcp_socket_receive_queue_max_set.c
+ nxe_udp_enable.c
+ nxe_udp_info_get.c
+ nxe_udp_socket_checksum_disable.c
+ nxe_udp_socket_checksum_enable.c
+ nxe_udp_socket_info_get.c
+
+ Files are modified to remove unreachable code:
+ nx_tcp_socket_receive.c
+ nx_ipv6_packet_send.c
+
+ Files are modified to be compatible with ThreadX 5.8 or later:
+ nx_api.h
+ nx_icmp_cleanup.c
+ nx_icmpv4.h
+ nx_ip.h
+ nx_ip_delete.c
+ nx_ip_raw_packet_cleanup.c
+ nx_ip_raw_packet_disable.c
+ nx_packet.h
+ nx_packet_pool_cleanup.c
+ nx_tcp.h
+ nx_tcp_cleanup_deferred.c
+ nx_tcp_client_bind_cleanup.c
+ nx_tcp_client_socket_unbind.c
+ nx_tcp_connect_cleanup.c
+ nx_tcp_deferred_cleanup_check.c
+ nx_tcp_disconnect_cleanup.c
+ nx_tcp_receive_cleanup.c
+ nx_tcp_server_socket_unaccept.c
+ nx_tcp_socket_connection_reset.c
+ nx_tcp_socket_disconnect.c
+ nx_tcp_socket_state_established.c
+ nx_tcp_socket_thread_suspend.c
+ nx_tcp_transmit_cleanup.c
+ nx_udp.h
+ nx_udp_bind_cleanup.c
+ nx_udp_receive_cleanup.c
+ nx_udp_socket_unbind.c
+
+ Files are modified to support random port find:
+ nx_api.h
+ nx_tcp_client_socket_bind.c
+ nx_tcp_enable.c
+ nx_tcp_free_port_find.c
+ nx_udp_enable.c
+ nx_udp_free_port_find.c
+ nx_udp_socket_bind.c
+
+ Files are modified to fix compiler errors when event trace is enabled:
+ nx_icmpv4_packet_process.c
+ nx_ip_create.c
+ nx_ip_forwarding_disable.c
+ nx_ip_forwarding_enable.c
+ nx_ip_fragment_enable.c
+ nx_ip_max_payload_size_find.c
+ nx_ip_raw_packet_filter_set.c
+ nx_ip_raw_packet_receive.c
+ nx_ip_static_route_add.c
+ nx_ip_static_route_delete.c
+ nx_packet_allocate.c
+ nx_rarp_disable.c
+ nx_rarp_enable.c
+ nx_rarp_info_get.c
+ nx_tcp.h
+ nx_tcp_connect_cleanup.c
+ nx_tcp_socket_block_cleanup.c
+ nx_tcp_socket_packet_process.c
+ nx_tcp_socket_receive_notify.c
+ nx_tcp_socket_state_syn_sent.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_window_update_notify_set.c
+ nx_trace_object_unregister.c
+ nx_trace_object_register.c
+ nx_udp_info_get.c
+ nx_udp_socket_checksum_disable.c
+ nx_udp_socket_checksum_enable.c
+ nx_udp_socket_info_get.c
+ nx_udp_socket_port_get.c
+ nxd_ipv6_address_change_notify.c
+ nxd_ipv6_stateless_address_autoconfig_enable.c
+ nxd_ipv6_stateless_address_autoconfig_disable.c
+ nxd_udp_socket_send.c
+
+ Files are modified to avoid NULL pointer access in trace logging:
+ nx_ip_interface_info_get.c
+ nx_ip_thread_entry.c
+ nxd_ipv6_address_set.c
+ nxd_udp_packet_info_extract.c
+
+ Files are modified to fix the delay of initial router solicitation:
+ nx_icmpv6.h
+ nx_icmpv6_send_rs.c
+ nx_user.h
+ nxd_ipv6_enable.c
+ nxd_ipv6_router_solicitation_check.c
+ nxd_ipv6_stateless_address_autoconfig_enable.c
+
+ Files are modified to move the destination and ND cache tables to IP structure:
+ nx_api.h
+ nx_icmpv6.h
+ nx_icmpv6_DAD_clear_NDCache_entry.c
+ nx_icmpv6_dest_table_add.c
+ nx_icmpv6_dest_table_find.c
+ nx_icmpv6_destination_table_periodic_update.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_queued_packets.c
+ nx_ip_thread_entry.c
+ nx_ipv6_packet_send.c
+ nx_invalidate_destination_entry.c
+ nx_nd_cache.h
+ nx_nd_cache_add.c
+ nx_nd_cache_add_entry.c
+ nx_nd_cache_delete_internal.c
+ nx_nd_cache_fast_periodic_update.c
+ nx_nd_cache_find_entry.c
+ nx_nd_cache_find_entry_by_mac_addr.c
+ nx_nd_cache_interface_entries_delete.c
+ nx_nd_cache_slow_periodic_update.c
+ nx_system_initialize.c
+ nxd_icmp_enable.c
+ nxd_ipv6_destination_table_find_next_hop.c
+ nxd_ipv6_disable.c
+ nxd_ipv6_prefix_router_timer_tick.c
+ nxd_nd_cache_entry_delete.c
+ nxd_nd_cache_hardware_address_find.c
+ nxd_nd_cache_invalidate.c
+ nxd_nd_cache_ip_address_find.c
+
+ Files are modified to add support for disabling IPv4:
+ demo_netx_duo_multihome_tcp.c
+ demo_netx_duo_multihome_udp.c
+ demo_netx_duo_tcp.c
+ demo_netx_duo_udp.c
+ nx_api.h
+ nx_arp.h
+ nx_arp_announce_send.c
+ nx_arp_dynamic_entries_invalidate.c
+ nx_arp_dynamic_entry_delete.c
+ nx_arp_dynamic_entry_set.c
+ nx_arp_enable.c
+ nx_arp_entry_allocate.c
+ nx_arp_entry_delete.c
+ nx_arp_gratuitous_send.c
+ nx_arp_hardware_address_find.c
+ nx_arp_info_get.c
+ nx_arp_initialize.c
+ nx_arp_interface_entries_delete.c
+ nx_arp_ip_address_find.c
+ nx_arp_packet_deferred_receive.c
+ nx_arp_packet_receive.c
+ nx_arp_packet_send.c
+ nx_arp_periodic_update.c
+ nx_arp_probe_send.c
+ nx_arp_queue_process.c
+ nx_arp_queue_send.c
+ nx_arp_static_entries_delete.c
+ nx_arp_static_entry_create.c
+ nx_arp_static_entry_delete.c
+ nx_arp_static_entry_delete_internal.c
+ nx_icmp.h
+ nx_icmp_enable.c
+ nx_icmp_interface_ping.c
+ nx_icmp_packet_process.c
+ nx_icmp_packet_receive.c
+ nx_icmp_ping.c
+ nx_icmp_queue_process.c
+ nx_icmpv4.h
+ nx_icmpv4_packet_process.c
+ nx_icmpv4_process_echo_reply.c
+ nx_icmpv4_process_echo_request.c
+ nx_icmpv4_send_error_message.c
+ nx_igmp.h
+ nx_igmp_enable.c
+ nx_igmp_info_get.c
+ nx_igmp_loopback_disable.c
+ nx_igmp_loopback_enable.c
+ nx_igmp_multicast_check.c
+ nx_igmp_multicast_interface_join.c
+ nx_igmp_multicast_interface_join_internal.c
+ nx_igmp_multicast_interface_leave.c
+ nx_igmp_multicast_interface_leave_internal.c
+ nx_igmp_multicast_join.c
+ nx_igmp_multicast_leave.c
+ nx_igmp_packet_process.c
+ nx_igmp_packet_receive.c
+ nx_igmp_periodic_processing.c
+ nx_igmp_queue_process.c
+ nx_ip.h
+ nx_ip_address_change_notify.c
+ nx_ip_address_get.c
+ nx_ip_address_set.c
+ nx_ip_create.c
+ nx_ip_delete.c
+ nx_ip_dispatch_process.c
+ nx_ip_driver_packet_send.c
+ nx_ip_forward_packet_process.c
+ nx_ip_forwarding_disable.c
+ nx_ip_forwarding_enable.c
+ nx_ip_fragment_assembly.c
+ nx_ip_fragment_forward_packet.c
+ nx_ip_fragment_packet.c
+ nx_ip_fragment_timeout_check.c
+ nx_ip_gateway_address_clear.c
+ nx_ip_gateway_address_get.c
+ nx_ip_gateway_address_set.c
+ nx_ip_header_add.c
+ nx_ip_interface_address_get.c
+ nx_ip_interface_address_set.c
+ nx_ip_interface_attach.c
+ nx_ip_interface_detach.c
+ nx_ip_interface_info_get.c
+ nx_ip_interface_status_check.c
+ nx_ip_max_payload_size_find.c
+ nx_ip_packet_receive.c
+ nx_ip_packet_send.c
+ nx_ip_raw_packet_send.c
+ nx_ip_raw_packet_source_send.c
+ nx_ip_route_find.c
+ nx_ip_static_route_add.c
+ nx_ip_static_route_delete.c
+ nx_ip_thread_entry.c
+ nx_ipv4.h
+ nx_ipv4_multicast_interface_join.c
+ nx_ipv4_multicast_interface_leave.c
+ nx_ipv4_option_process.c
+ nx_ipv4_packet_receive.c
+ nx_packet_allocate.c
+ nx_ram_network_driver.c
+ nx_rarp.h
+ nx_rarp_disable.c
+ nx_rarp_enable.c
+ nx_rarp_info_get.c
+ nx_rarp_packet_deferred_receive.c
+ nx_rarp_packet_receive.c
+ nx_rarp_packet_send.c
+ nx_rarp_periodic_update.c
+ nx_rarp_queue_process.c
+ nx_tcp_client_socket_connect.c
+ nx_tcp_no_connection_reset.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_control.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_server_socket_relisten.c
+ nx_tcp_server_socket_unaccept.c
+ nx_tcp_socket_block_cleanup.c
+ nx_tcp_socket_mss_set.c
+ nx_tcp_socket_peer_info_get.c
+ nx_tcp_socket_retransmit.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_ack_check.c
+ nx_udp_packet_info_extract.c
+ nx_udp_packet_receive.c
+ nx_udp_socket_receive.c
+ nx_udp_socket_send.c
+ nx_udp_source_extract.c
+ nx_user.h
+ nxd_icmp_enable.c
+ nxd_icmp_ping.c
+ nxd_icmp_source_ping.c
+ nxd_ip_raw_packet_source_send.c
+ nxd_tcp_client_socket_connect.c
+ nxd_tcp_socket_peer_info_get.c
+ nxd_udp_packet_info_extract.c
+ nxd_udp_socket_send.c
+ nxd_udp_socket_source_send.c
+ nxd_udp_source_extract.c
+ nxde_icmp_ping.c
+ nxde_icmp_source_ping.c
+ nxde_ip_raw_packet_send.c
+ nxde_ip_raw_packet_source_send.c
+ nxde_tcp_client_socket_connect.c
+ nxde_udp_socket_send.c
+ nxde_udp_socket_source_send.c
+ nxe_arp_dynamic_entries_invalidate.c
+ nxe_arp_dynamic_entry_set.c
+ nxe_arp_enable.c
+ nxe_arp_entry_delete.c
+ nxe_arp_gratuitous_send.c
+ nxe_arp_hardware_address_find.c
+ nxe_arp_info_get.c
+ nxe_arp_ip_address_find.c
+ nxe_arp_static_entries_delete.c
+ nxe_arp_static_entry_create.c
+ nxe_arp_static_entry_delete.c
+ nxe_icmp_enable.c
+ nxe_icmp_ping.c
+ nxe_igmp_enable.c
+ nxe_igmp_info_get.c
+ nxe_igmp_loopback_disable.c
+ nxe_igmp_loopback_enable.c
+ nxe_igmp_multicast_interface_join.c
+ nxe_igmp_multicast_interface_leave.c
+ nxe_igmp_multicast_join.c
+ nxe_igmp_multicast_leave.c
+ nxe_ip_address_change_notify.c
+ nxe_ip_address_get.c
+ nxe_ip_address_set.c
+ nxe_ip_forwarding_disable.c
+ nxe_ip_forwarding_enable.c
+ nxe_ip_gateway_address_clear.c
+ nxe_ip_gateway_address_get.c
+ nxe_ip_gateway_address_set.c
+ nxe_ip_interface_address_get.c
+ nxe_ip_interface_address_set.c
+ nxe_ip_interface_status_check.c
+ nxe_ip_raw_packet_send.c
+ nxe_ip_raw_packet_source_send.c
+ nxe_ip_static_route_add.c
+ nxe_ip_static_route_delete.c
+ nxe_ipv4_multicast_interface_join.c
+ nxe_ipv4_multicast_interface_leave.c
+ nxe_rarp_disable.c
+ nxe_rarp_enable.c
+ nxe_rarp_info_get.c
+ nxe_tcp_client_socket_connect.c
+ nxe_tcp_socket_peer_info_get.c
+ nxe_tcp_socket_send.c
+ nxe_udp_packet_info_extract.c
+ nxe_udp_socket_send.c
+ nxe_udp_socket_source_send.c
+ nxe_udp_source_extract.c
+
+ Other modified files:
+
+ nx_arp_packet_receive.c Added zero IP probe address check.
+ nx_arp_periodic_update.c Improved retry counter check logic.
+ nx_icmp_packet_receive.c Added logic for checking address of ICMP packet.
+ nx_icmpv6_process_echo_request.c Corrected the logic for processing multicast echo.
+ nx_igmp.h Declared nx_igmp_interface_report_send function.
+ nx_igmp_multicast_interface_leave_internal.c Optimized to use the report_send function.
+ nx_igmp_packet_process.c Fixed history information.
+ nx_igmp_periodic_processing.c Optimized to use the report_send function.
+ nx_ip_create.c Fixed address index. The value is cleared by nxd_ipv6_disable.
+ nx_ip_forward_packet_process.c Added check for class D address.
+ Corrected the logic for appending the overflowing data to the new packet.
+ nx_ip_interface_detach.c Optimized the logic for invalidating destination entries when the router is invalid.
+ nx_ipv6_fragment_process.c Fixed NULL pointer access.
+ nx_nd_cache.h Cleaned up internal functions.
+ nx_nd_cache_clear_IsRouter_field.c Removed unused function.
+ nx_nd_cache_init.c Removed unused function.
+ nx_packet.h Adjusted the packet data to fill the specified header.
+ nx_packet_data_append.c Fixed NULL pointer access.
+ nx_tcp_client_socket_unbind.c Fixed a bug where packets in the receive queue may not be properly released.
+ nx_tcp_packet_process.c Fixed the packet leak.
+ nx_tcp_server_socket_accept.c Fixed an issue where SYN is sent multiple times.
+ nx_tcp_socket_retransmit.c Fixed compiler error when NX_DISABLE_TCP_TX_CHECKSUM is defined.
+ nx_tcp_socket_send_internal.c Fixed window size when receiving duplicated ACKs.
+ Fixed empty packet.
+ nx_tcp_socket_state_ack_check.c Fixed ACK number check when zero window probe is ACKed.
+ Fixed the condition to update window size.
+ nx_tcp_socket_state_transmit_check.c Fixed window size when receiving duplicated ACKs.
+ nx_user.h Added symbol for checking address of ICMP packet.
+ nxd_ipv6_default_router_delete.c Removed one line function _nx_nd_cache_clear_IsRouter_field().
+ nxd_ipv6_enable.c Fixed address index. The value is cleared by nxd_ipv6_disable.
+ nxd_ipv6_prefix_router_timer_tick.c Removed one line function _nx_nd_cache_clear_IsRouter_field().
+ Optimized the logic for invalidating destination entries when the router is invalid.
+ nxd_nd_cache_invalidate.c Simplified the logic for invalidating all ND cache entries.
+ nxd_nd_cache_invalidate_internal.c Removed unused function.
+ nxd_udp_socket_send.c Fixed compiler error when NX_DISABLE_UDP_TX_CHECKSUM is defined.
+ nxe_ip_create.c Modified invalid IP address check.
+ nxe_ip_interface_attach.c Modified invalid IP address check.
+
+ File created:
+ nx_igmp_interface_report_send.c Created internal function for sending join and leave reports.
+ nx_packet_data_adjust.c Adjusted the packet data to fill the specified header.
+
+
+05/10/2016 NetX Duo generic code version 5.10. This release includes the
+ following major features:
+
+ Files are modified to add an argument to the parameter list of _nx_icmpv6_send_ns:
+ nx_icmpv6.h
+ nx_icmpv6_perform_DAD.c
+ nx_icmpv6_send_ns.c
+ nx_ip_thread_entry.c
+ nx_ipv6_packet_send.c
+ nx_nd_cache_fast_periodic_update.c
+
+ Files are modified to remove unused stub functions for trace:
+ nx_api.h
+ nx_trace_event_insert.c
+ nx_trace_event_update.c
+ nx_trace_object_register.c
+ nx_trace_object_unregister.c
+
+ Files are modified to fix IPv6 router type:
+ nx_api.h
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_ip.h
+ nxd_ipv6_default_router_add.c
+ nxd_ipv6_default_router_entry_get.c
+
+ Files are added or modified to avoid recursive call:
+ nx_icmpv6_send_ns.c
+ nx_ip_dispatch_process.c
+ nx_ipv6_header_add.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_process_fragment_option.c
+
+ Files are added or modified to remove unused IP pointer parameter:
+ nx_api.h
+ nx_icmpv6.h
+ nx_icmpv6_destination_table_periodic_update.c
+ nx_ip_thread_entry.c
+ nx_nd_cache.h
+ nx_nd_cache_add_entry.c
+ nx_nd_cache_delete_internal.c
+ nx_nd_cache_fast_periodic_update.c
+ nx_nd_cache_interface_entries_delete.c
+ nxd_ipv6_disable.c
+ nxd_nd_cache_entry_delete.c
+ nxd_nd_cache_invalidate.c
+ nxd_nd_cache_invalidate_internal.c
+
+ Files are added or modified to optimized the logic for IP address conflict detection:
+ nx_api.h
+ nx_arp.h
+ nx_arp_announce_send.c
+ nx_arp_gratuitous_send.c
+ nx_arp_packet_receive.c
+ nx_arp_probe_send.c
+
+ Files are modified to pass PC-Lint check:
+ nx_api.h
+ nx_icmpv4.h
+ nx_icmpv6.h
+ nx_ip_create.c
+ nx_ipv6.h
+ nx_nd_cache.h
+ nx_nd_cache_init.c
+
+ Files are modified to support ASSERT macro:
+ nx_arp_packet_send.c
+ nx_icmpv6_dest_table_find.c
+ nx_icmpv6_send_queued_packets.c
+ nx_ip_checksum_compute.c
+ nxd_ipv6_router_lookup.c
+ nxd_tcp_client_socket_connect.c
+
+ Files are modified to optimized the logic for TCP segment processing:
+ nx_tcp_socket_packet_process.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_syn_received.c
+ nx_tcp_socket_state_syn_sent.c
+
+ Files are modified to remove unreachable code and deprecated functions:
+ nx_api.h
+ nx_arp.h
+ nx_arp_entry_allocate.c
+ nx_icmp.h
+ nx_icmpv4.h
+ nx_icmpv6.h
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_queued_packets.c
+ nx_igmp.h
+ nx_ipv4.h
+ nx_ipv6.h
+ nx_ipv6_fragment_process.c
+ nx_ip_interface_detach.c
+ nx_nd_cache_find_entry_by_mac_addr.c
+ nx_packet.h
+ nx_tcp.h
+ nx_tcp_client_socket_bind.c
+ nx_tcp_packet_process.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_data_check.c
+ nx_tcp_socket_state_fin_wait1.c
+ nx_tcp_socket_state_syn_sent.c
+ nx_udp.h
+ nx_udp_socket_bind.c
+ nxd_ipv6_address_set.c
+ nxd_ipv6_router_lookup.c
+ nxd_ipv6_raw_packet_send_internal.c
+ nxd_tcp_client_socket_connect.c
+ nxde_udp_socket_send.c
+ nxde_icmp_source_ping.c
+
+ Files are modified to optimize the logic of checksum calculation:
+ nx_icmp_interface_ping.c
+ nx_icmp_interface_ping6.c
+ nx_icmpv4_packet_process.c
+ nx_icmpv4_process_echo_request.c
+ nx_icmpv4_send_error_message.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_rs.c
+ nx_ip_checksum_compute.c
+ nx_ip_fragment_packet.c
+ nx_ip_header_add.c
+ nx_ipv4_packet_receive.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_control.c
+ nx_tcp_socket_send_internal.c
+ nx_udp_socket_receive.c
+ nxd_udp_socket_send.c
+
+ Files are modified to protect ND process in _nx_icmpv6_packet_process:
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+
+ Files are modified to avoid static analysis error report:
+ nx_ipv6_fragment_process.c
+ nxd_ipv6_address_set.c
+ nxd_ipv6_default_router_entry_get.c
+ nxd_ipv6_interface_find.c
+
+
+ Other modified files:
+ nx_api.h Listed APIs by alphabetical order.
+ Added return status NX_CONTINUE.
+ Fixed typo of deprecated symbols.
+ nx_arp_entry_allocate.c Fixed a bug that is_static of arp entry was not set.
+ nx_arp_periodic_update.c Checked ARP expiration when NX_ARP_EXPIRATION_RATE is not zero.
+ Optimized the logic of updating ARP list.
+ nx_arp_static_entries_delete.c Optimized the logic.
+ nx_icmp_interface_ping6.c Optimized the logic due to NX_ICMPV6_ECHO is modified.
+ nx_icmpv4_process_echo_reply.c Optimized the logic due to NX_ICMPV4_ECHO is modified.
+ nx_icmpv6_destination_table_periodic_update.c Optimized the code.
+ nx_icmpv6_process_echo_reply.c Optimized the logic due to NX_ICMPV6_ECHO is modified.
+ nx_icmpv6_process_ra.c Fixed a bug that is_router of ND entry was not set.
+ nx_icmpv6_process_redirect.c Optimized the logic.
+ The destination table is not updated when packet is invalid.
+ nx_icmpv6_send_ns.c Verified interface before is was used.
+ nx_icmpv6_send_queued_packets.c Optimized the logic for fragmentation checking.
+ nx_icmpv6_validate_neighbor_message.c Fixed type check for destination address
+ when source address is unspecified.
+ nx_igmp_multicast_interface_leave_internal Fixed the bug for adding packet debug information.
+ nx_igmp_packet_process Added support for packet chaining.
+ Compute the checksum over all IGMP data, not just the header.
+ Modified the logic for checking packet length.
+ nx_igmp_periodic_processing Fixed the bug for adding packet debug information.
+ nx_ipv4.h Avoided redundant definition of fragmentation symbols.
+ nx_ip_driver_packet_send.c Optimized the logic for fragmentation checking.
+ nx_ip_fast_periodic_timer_entry.c Set function _nx_ip_fast_periodic_timer_entry to static.
+ nx_ip_forward_packet_process.c Fixed the bug for processing fragment bit.
+ nx_ip_interface_detach.c Checked interface status before processing.
+ nx_ip_route_find.c Fixed a bug that destination address is one of
+ the local interface addresses.
+ nx_ipv4_option_process.c Optimized the code.
+ nx_ipv4_packet_receive.c Adjusted processing order to make sure interface has IP address before forwarding.
+ nx_ipv6_fragment_process.c Cleared reserved field in fragment option.
+ nx_ipv6_option_error.c Optimized the logic for default case of switch.
+ nx_ipv6_packet_send.c Optimized the logic for fragmentation checking.
+ Removed unnecessary check.
+ nx_ipv6_perform_min_path_MTU_discovery.c Moved the functionality into nx_icmpv6_destination_table_periodic_update.c
+ nx_packet_data_extract_offset.c Removed duplicated for zero packet length.
+ nx_system_initialize.c Make sure this service cannot invoked more than once.
+ Created destination table MUTEX.
+ nx_tcp.h Cleaned up the logic to get SYN packet size.
+ nx_user.h Added NX_DISABLE_ICMPV4_ERROR_MESSAGE configuration option
+ nx_tcp_packet_process.c Fixed check for multicast source address.
+ nx_tcp_socket_delete.c Fixed socket state check.
+ nx_tcp_socket_disconnect.c Optimized the logic for checking wait_option.
+ nx_tcp_socket_receive.c Suspended the send request when the connection is in progress.
+ nx_tcp_socket_retransmit.c Fixed initial CWND value for fast recovery.
+ nx_tcp_socket_send_internal.c Fixed a bug that empty segment was sent when data append failed.
+ Fixed a bug of endless loop in packet queue traverse.
+ Fixed the alignment of chained packet.
+ Suspended the send request when the connection is in progress.
+ nx_tcp_socket_state_ack_check.c Fixed the calculation of TCP payload when packet
+ was not released by driver.
+ Fixed the check for immediately retransmission.
+ nx_tcp_socket_state_data_check.c Fixed NULL pointer access.
+ nx_tcp_socket_state_syn_received.c Optimized the logic for checking acknowledgment number.
+ nxd_icmp_ping.c Removed duplicated error check.
+ nxd_icmp_source_ping.c Removed duplicated error check.
+ nxd_ipv6_disable.c Deleted ND cache added to current IP only.
+ Protected ND cache process by mutex.
+ nxd_ipv6_interface_find.c Fixed a bug that destination address is one of
+ the local IPv6 addresses.
+ nxd_tcp_client_socket_connect.c Cleaned up the logic to get SYN packet size.
+ nxde_ip_raw_packet_send.c Removed unnecessary check. The return value of
+ _nxd_ip_raw_packet_source_send is always NX_SUCCESS.
+ nxe_ip_raw_packet_source_send.c Removed unnecessary check. The return value of
+ _nx_ip_raw_packet_source_send is always NX_SUCCESS.
+
+
+02/22/2016 NetX Duo generic code version 5.9. This release includes the
+ following major features:
+
+ Files are modified to fix compiler warnings:
+ demo_netx_duo_multihome_tcp.c
+ demo_netx_duo_multihome_udp.c
+ demo_netx_duo_tcp.c
+ demo_netx_duo_udp.c
+ nx_api.h
+ nx_icmpv4_packet_process.c
+ nx_icmpv6_DAD_failure.c
+ nx_icmpv6_dest_table_add.c
+ nx_icmpv6_dest_table_find.c
+ nx_icmpv6_destination_table_periodic_update.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_process_echo_reply.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_rs.c
+ nx_ip_auxiliary_packet_pool_set.c
+ nx_ip_checksum_compute.c
+ nx_ip_dispatch_process.c
+ nx_ip_driver_deferred_enable.c
+ nx_ip_driver_deferred_receive.c
+ nx_ip_driver_packet_send.c
+ nx_ip_forward_packet_process.c
+ nx_ip_fragment_assembly.c
+ nx_ip_fragment_disable.c
+ nx_ip_fragment_enable.c
+ nx_ip_interface_capability_get.c
+ nx_ip_interface_capability_set.c
+ nx_ip_max_payload_size_find.c
+ nx_ip_packet_checksum_compute.c
+ nx_ip_packet_send.c
+ nx_ip_raw_packet_filter_set.c
+ nx_ip_raw_packet_processing.c
+ nx_ip_static_route_add.c
+ nx_ip_static_route_delete.c
+ nx_ipv6_fragment_process.c
+ nx_ipv6_option_error.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_process_fragment_option.c
+ nx_ipv6_process_hop_by_hop_option.c
+ nx_ipv6_process_routing_option.c
+ nx_ipv6_util.c
+ nx_nd_cache_delete_internal.c
+ nx_packet_copy.c
+ nx_packet_data_append.c
+ nx_packet_pool_low_watermark_set.c
+ nx_tcp_cleanup_deferred.c
+ nx_tcp_periodic_processing.c
+ nx_tcp_socket_disconnect_complete_notify.c
+ nx_tcp_socket_establish_notify.c
+ nx_tcp_socket_queue_depth_notify_set.c
+ nx_tcp_socket_receive_queue_max_set.c
+ nx_tcp_socket_timed_wait_callback.c
+ nx_udp_socket_receive.c
+ nxd_icmpv6_ra_flag_callback_set.c
+ nxd_ipv6_address_change_notify.c
+ nxd_ipv6_address_delete.c
+ nxd_ipv6_address_get.c
+ nxd_ipv6_address_set.c
+ nxd_ipv6_default_router_add.c
+ nxd_ipv6_default_router_delete.c
+ nxd_ipv6_default_router_entry_get.c
+ nxd_ipv6_default_router_get.c
+ nxd_ipv6_default_router_number_of_entries_get.c
+ nxd_ipv6_disable.c
+ nxd_ipv6_enable.c
+ nxd_ipv6_multicast_interface_join.c
+ nxd_ipv6_multicast_interface_leave.c
+ nxd_ipv6_stateless_address_autoconfig_disable.c
+ nxd_ipv6_stateless_address_autoconfig_enable.c
+ nxd_nd_cache_entry_delete.c
+ nxd_nd_cache_entry_set.c
+ nxd_nd_cache_hardware_address_find.c
+ nxd_nd_cache_invalidate.c
+ nxd_nd_cache_invalidate_internal.c
+ nxd_nd_cache_ip_address_find.c
+ nxd_udp_socket_send.c
+ nxde_icmpv6_ra_flag_callback_set.c
+ nxde_ipv6_address_change_notify.c
+ nxde_ipv6_address_delete.c
+ nxde_ipv6_address_get.c
+ nxde_ipv6_address_set.c
+ nxde_ipv6_default_router_add.c
+ nxde_ipv6_default_router_delete.c
+ nxde_ipv6_default_router_entry_get.c
+ nxde_ipv6_default_router_get.c
+ nxde_ipv6_default_router_number_of_entries_get.c
+ nxde_ipv6_disable.c
+ nxde_ipv6_enable.c
+ nxde_ipv6_multicast_interface_join.c
+ nxde_ipv6_multicast_interface_leave.c
+ nxde_ipv6_stateless_address_autoconfig_disable.c
+ nxde_ipv6_stateless_address_autoconfig_enable.c
+ nxde_nd_cache_entry_delete.c
+ nxde_nd_cache_entry_set.c
+ nxde_nd_cache_hardware_address_find.c
+ nxde_nd_cache_invalidate.c
+ nxde_nd_cache_ip_address_find.c
+ nxe_ip_auxiliary_packet_pool_set.c
+ nxe_ip_interface_capability_get.c
+ nxe_ip_interface_capability_set.c
+ nxe_ip_raw_packet_filter_set.c
+ nxe_ip_static_route_add.c
+ nxe_ip_static_route_delete.c
+ nxe_packet_pool_low_watermark_set.c
+ nxe_tcp_socket_disconnect_complete_notify.c
+ nxe_tcp_socket_establish_notify.c
+ nxe_tcp_socket_queue_depth_notify_set.c
+ nxe_tcp_socket_receive_queue_max_set.c
+ nxe_tcp_socket_timed_wait_callback.c
+
+ Files are modified to return NX_NOT_SUPPORTED when related compiler option is not enabled:
+ nx_api.h
+ nx_icmp.h
+ nx_icmpv6.h
+ nx_ipv6.h
+ nx_nd_cache.h
+ nx_packet.h
+ nx_tcp.h
+ nx_tcp_socket_disconnect_complete_notify.c
+ nx_tcp_socket_establish_notify.c
+ nx_tcp_socket_queue_depth_notify_set.c
+ nx_tcp_socket_timed_wait_callback.c
+ nxd_icmpv6_ra_flag_callback_set.c
+ nxd_ipv6_address_change_notify.c
+ nxd_ipv6_address_delete.c
+ nxd_ipv6_address_get.c
+ nxd_ipv6_address_set.c
+ nxd_ipv6_default_router_add.c
+ nxd_ipv6_default_router_delete.c
+ nxd_ipv6_default_router_entry_get.c
+ nxd_ipv6_default_router_get.c
+ nxd_ipv6_default_router_number_of_entries_get.c
+ nxd_ipv6_multicast_interface_join.c
+ nxd_ipv6_multicast_interface_leave.c
+ nxd_ipv6_stateless_address_autoconfig_disable.c
+ nxd_ipv6_stateless_address_autoconfig_enable.c
+ nxd_nd_cache_entry_delete.c
+ nxd_nd_cache_entry_set.c
+ nxd_nd_cache_hardware_address_find.c
+ nxd_nd_cache_invalidate.c
+ nxd_nd_cache_ip_address_find.c
+ nxde_icmpv6_ra_flag_callback_set.c
+ nxde_ipv6_address_delete.c
+ nxde_ipv6_address_get.c
+ nxde_ipv6_address_set.c
+ nxde_ipv6_default_router_add.c
+ nxde_ipv6_default_router_delete.c
+ nxde_ipv6_default_router_entry_get.c
+ nxde_ipv6_default_router_get.c
+ nxde_ipv6_default_router_number_of_entries_get.c
+ nxde_ipv6_stateless_address_autoconfig_disable.c
+ nxde_ipv6_stateless_address_autoconfig_enable.c
+ nxde_nd_cache_entry_delete.c
+ nxde_nd_cache_entry_set.c
+ nxde_nd_cache_hardware_address_find.c
+ nxde_nd_cache_invalidate.c
+ nxde_nd_cache_ip_address_find.c
+ nxe_ip_auxiliary_packet_pool_set.c
+ nxe_tcp_socket_disconnect_complete_notify.c
+ nxe_tcp_socket_establish_notify.c
+ nxe_tcp_socket_queue_depth_notify_set.c
+ nxe_tcp_socket_timed_wait_callback.c
+
+ Files are modified to fix address index check for loopback interface:
+ nxde_icmp_source_ping.c
+ nxde_ip_raw_packet_source_send.c
+ nxde_udp_socket_source_send.c
+ nxe_ip_raw_packet_source_send.c
+ nxe_udp_socket_source_send.c
+
+ Files are modified to support IP packet filter:
+ nx_api.h
+ nx_ip_packet_receive.c
+ nx_ip_packet_send.c
+ nx_ipv6_packet_send.c
+
+ Files are added or modified to set TCP receive queue length:
+ nx_api.h
+ nx_tcp.h
+ nx_tcp_socket_create.c
+ nx_tcp_socket_receive_queue_max_set.c
+ nx_tcp_socket_state_data_check.c
+ nx_user.h
+ nxe_tcp_socket_receive_queue_max_set.c
+
+ Files are added or modified to support packet pool low watermark:
+ nx_api.h
+ nx_packet.h
+ nx_packet_pool_low_watermark_set.c
+ nx_tcp_socket_state_data_check.c
+ nx_udp_packet_receive.c
+ nx_user.h
+ nxe_packet_pool_low_watermark_set.c
+ nxe_tcp_socket_receive_queue_max_set.c
+
+ Files are modified to add mutex protection:
+ nx_rarp_disable.c
+ nx_tcp_socket_queue_depth_notify_set.c
+ nx_tcp_socket_receive_notify.c
+ nx_tcp_socket_timed_wait_callback.c
+ nx_tcp_socket_window_update_notify_set.c
+
+ Files are added or modified to fix source selection for icmpv4 ping:
+ nx_icmpv4.h
+ nx_icmp_interface_ping.c
+ nx_icmp_ping.c
+ nxd_icmp_source_ping.c
+
+ Files are modified to support ASSERT macro:
+ nx_api.h
+ nx_icmpv6_dest_table_add.c
+ nx_ip_header_add.c
+ nx_ip_driver_packet_send.c
+ nx_ipv6_packet_send.c
+ nxd_ipv6_destination_table_find_next_hop.c
+ nxd_ipv6_interface_find.c
+
+ Files are added or modified to support NewReno algorithm:
+ nx_api.h
+ nx_tcp.h
+ nx_tcp_socket_retransmit.c
+ nx_tcp_fast_periodic_processing.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_socket_block_cleanup.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_transmit_check.c
+ nx_tcp_socket_state_syn_sent.c
+ nx_tcp_socket_state_syn_received.c
+
+ Files are added or modified to optimize the logic of sending TCP control packet:
+ nx_tcp_packet_send_control.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_packet_send_ack.c
+ nx_tcp_packet_send_fin.c
+ nx_tcp_packet_send_rst.c
+
+ Files are deleted due to they are not used:
+ nxe_igmp_multicast_interface_join_internal.c
+ nxe_igmp_multicast_interface_leave_internal.c
+
+ Files are modified to unify the definition of ThreadX ticks per second, use TX_TIMER_TICKS_PER_SECOND to derive NX_IP_PERIODIC_RATE:
+ demo_netx_duo_multihome_tcp.c
+ demo_netx_duo_multihome_udp.c
+ demo_netx_duo_tcp.c
+ demo_netx_duo_udp.c
+ nx_api.h
+ nx_icmpv6_dest_table_add.c
+ nx_icmpv6_dest_table_find.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_validate_ra.c
+ nx_ip_create.c
+ nx_ip_fast_periodic_timer_entry.c
+ nx_system.h
+ nx_system_initialize.c
+ nx_tcp.h
+ nx_tcp_enable.c
+ nx_user.h
+ nxd_ipv6_disable.c
+ nxd_ipv6_enable.c
+
+ Files are deleted or modified to simplified the logic of extracting the prefix:
+ nx_ipv6_address_find_prefix.c
+ nx_ipv6.h
+ nx_ipv6_prefix_list_delete_entry.c
+
+ Files are modified to correct the IP Identification field for retransmitted packet:
+ nx_api.h
+ nx_ip_header_add.c
+ nx_packet_allocate.c
+ nx_packet_release.c
+ nx_tcp_socket_retransmit.c
+
+ Files are added or modified to fix zero window probe packet:
+ nx_api.h
+ nx_tcp.h
+ nx_tcp_fast_periodic_processing.c
+ nx_tcp_packet_send_probe.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_ack_check.c
+
+ Files are modified to correct the sequence and ACK number check for TCP disconnect process:
+ nx_api.h
+ nx_tcp.h
+ nx_tcp_server_socket_accept.c
+ nx_tcp_socket_packet_process.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_fin_wait1.c
+ nx_tcp_socket_state_fin_wait2.c
+ nx_tcp_client_socket_connect.c
+
+ Files are modified to pass PC-Lint check:
+ nx_icmp.h
+ nx_icmpv6.h
+ nx_ip.h
+ nx_ipv4.h
+ nx_ipv6.h
+ nx_ipv6_prefix_list_delete.c
+ nx_nd_cache.h
+ nx_udp.h
+ nxd_icmp_ping.c
+ nxd_icmp_source_ping.c
+ nxd_icmpv6_ra_flag_callback_set.c
+ nxd_ip_raw_packet_send.c
+ nxd_ipv6_address_change_notify.c
+ nxd_ipv6_address_set.c
+ nxd_ipv6_default_router_add_internal.c
+ nxd_ipv6_destination_table_find_next_hop.c
+ nxd_ipv6_disable.c
+ nxd_ipv6_enable.c
+ nxd_ipv6_find_default_router_from_address.c
+ nxd_ipv6_find_max_prefix_length.c
+ nxd_ipv6_interface_find.c
+ nxd_ipv6_raw_packet_send_internal.c
+ nxd_ipv6_router_lookup.c
+ nxd_ipv6_search_onlink.c
+ nxd_ipv6_stateless_address_autoconfig_enable.c
+ nxd_nd_cache_entry_set.c
+ nxd_nd_cache_hardware_address_find.c
+ nxde_icmp_ping.c
+ nxde_icmp_source_ping.c
+ nxde_ip_raw_packet_send.c
+ nxde_ip_raw_packet_source_send.c
+ nxde_ipv6_address_delete.c
+ nxde_ipv6_default_router_delete.c
+ nxde_ipv6_multicast_interface_join.c
+ nxde_ipv6_multicast_interface_delete.c
+ nxde_nd_cache_entry_set.c
+ nxde_udp_socket_send.c
+
+
+ Files are modified to remove deprecated macro for IPv6 path MTU:
+ nx_icmpv6.h
+ nx_user.h
+
+
+ Files are added or modified to support packet debug feature:
+ nx_api.h
+ nx_arp_gratuitous_send.c
+ nx_arp_packet_deferred_receive.c
+ nx_arp_packet_send.c
+ nx_icmp_interface_ping6.c
+ nx_icmp_packet_process.c
+ nx_icmp_packet_receive.c
+ nx_icmp_ping.c
+ nx_icmpv4_packet_process.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_process_echo_reply.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_packet_too_big.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_rs.c
+ nx_igmp_multicast_interface_leave_internal.c
+ nx_igmp_packet_process.c
+ nx_igmp_packet_receive.c
+ nx_igmp_periodic_processing.c
+ nx_ip_dispatch_process.c
+ nx_ip_driver_packet_send.c
+ nx_ip_fragment_forward_packet.c
+ nx_ip_fragment_packet.c
+ nx_ip_packet_deferred_receive.c
+ nx_ip_packet_receive.c
+ nx_ip_packet_send.c
+ nx_ip_raw_packet_processing.c
+ nx_ip_raw_packet_send.c
+ nx_ip_raw_packet_source_send.c
+ nx_ip_thread_entry.c
+ nx_ipv4_packet_receive.c
+ nx_ipv6_fragment_process.c
+ nx_ipv6_packet_receive.c
+ nx_ipv6_process_fragment_option.c
+ nx_ipv6_process_hop_by_hop_option.c
+ nx_ipv6_process_routing_option.c
+ nx_packet.h
+ nx_packet_allocate.c
+ nx_packet_copy.c
+ nx_packet_data_append.c
+ nx_packet_debug_info_get.c
+ nx_packet_pool_create.c
+ nx_packet_release.c
+ nx_packet_transmit_release.c
+ nx_rarp_packet_deferred_receive.c
+ nx_rarp_packet_send.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_receive.c
+ nx_tcp_queue_process.c
+ nx_tcp_socket_packet_process.c
+ nx_tcp_socket_send.c
+ nx_tcp_socket_send_internal.c
+ nx_udp_packet_receive.c
+ nx_user.h
+ nxd_ip_raw_packet_source_send.c
+ nxd_udp_socket_send.c
+
+
+ Files are modified to support packet alignment for both header and payload:
+ nx_api.h
+ nx_packet_pool_create.c
+ nxe_packet_pool_create.c
+ nx_user.h
+
+ Files are added or modified to ensure only one ARP entry point to specific address and optimized the ARP queued packet sending:
+ nx_api.h
+ nx_arp.h
+ nx_arp_queue_send.c
+ nx_arp_dynamic_entry_set.c
+ nx_arp_entry_allocate.c
+ nx_arp_static_entry_create.c
+ nx_arp_static_entry_delete_internal.c
+ nx_arp_packet_receive.c
+ nx_ip_driver_packet_send.c
+
+ Files are modified to send TCP reset message when receive an illegal TCP option:
+ nx_tcp.h
+ nx_tcp_packet_process.c
+ nx_tcp_server_socket_relisten.c
+ nx_tcp_mss_option_get.c
+ nx_tcp_window_scaling_option_get.c
+ nx_tcp_no_connection_reset.c
+
+ Files are modified to support for TCP TIMED WAIT state:
+ nx_tcp.h
+ nx_tcp_enable.c
+ nxd_tcp_client_socket_connect.c
+ nx_tcp_fast_periodic_processing.c
+ nx_tcp_socket_state_fin_wait1.c
+ nx_tcp_socket_state_fin_wait2.c
+ nx_tcp_socket_state_closing.c
+ nx_tcp_socket_packet_process.c
+
+ Files are modified to optimize the code for deleting transmission control block
+ nx_tcp.h
+ nx_tcp_fast_periodic_processing.c
+ nx_tcp_client_socket_unbind.c
+ nx_tcp_socket_block_cleanup.c
+ nx_tcp_socket_connection_reset.c
+ nx_tcp_socket_disconnection.c
+ nx_tcp_socket_state_last_ack.c
+
+ Files are added or modified to support ICMPv4 error message:
+ nx_icmpv4.h
+ nx_icmpv4_packet_process.c
+ nx_icmpv4_process_echo_reply.c
+ nx_icmpv4_process_echo_request.c
+ nx_icmpv4_send_error_message.c
+ nx_ip_dispatch_process.c
+ nx_ip_fragment_timeout_check.c
+ nx_udp_packet_receive.c
+
+ Files are added or modified to support IP Option processing:
+ nx_ipv4.h
+ nx_ipv4_packet_receive.c
+ nx_ipv4_option_process.c
+
+ Files are modified to correct the reassembly time:
+ nx_api.h
+ nx_user.h
+ nx_ip_fragment_assembly.c
+
+ Files are modified to optimize the code.
+ nx_ip_gateway_address_set.c
+ nx_ipv4.h
+ nx_nd_cache_add.c
+ nx_nd_cache_add_entry.c
+ nx_nd_cache_find_entry.c
+ nx_tcp_client_bind_cleanup.c
+ nx_tcp_connect_cleanup.c
+ nx_tcp_disconnect_cleanup.c
+ nx_tcp_receive_cleanup.c
+ nx_tcp_transmit_cleanup.c
+ nxd_ipv6_stateless_address_autoconfig_disable.c
+ nxd_ipv6_stateless_address_autoconfig_enable.c
+ nxd_nd_cache_ip_address_find.c
+ nxd_nd_cache_hardware_address_find.c
+ nxde_ipv6_stateless_address_autoconfig_disable.c
+ nxde_ipv6_stateless_address_autoconfig_enable.c
+ nxe_ip_gateway_address_set.c
+ nxe_ip_raw_packet_receive.c
+ nxe_ip_static_route_add.c
+
+ Files are modified to assembled all the fragments before calling NAT service:
+ nx_api.h
+ nx_ip_fragment_assembly.c
+ nx_ipv4_packet_receive.c
+
+ The following table contains mappings from legacy names to the new names developers
+ are encouraged to use for furture development work. For backward compatibility reasons,
+ legacy names are still maintained. Therefore existing projects and build systems are not
+ affected.
+
+
+ Legacy Names New Names
+
+ NX_ARP_DISABLE_AUTO_ARP_ENTRY NX_DISABLE_ARP_AUTO_ENTRY
+ NX_DISABLE_ICMPv4_RX_CHECKSUM NX_DISABLE_ICMPV4_RX_CHECKSUM
+ NX_DISABLE_ICMPv4_TX_CHECKSUM NX_DISABLE_ICMPV4_TX_CHECKSUM
+ NX_DISABLE_ICMPv6_RX_CHECKSUM NX_DISABLE_ICMPV6_RX_CHECKSUM
+ NX_DISABLE_ICMPv6_TX_CHECKSUM NX_DISABLE_ICMPV6_TX_CHECKSUM
+ NX_DUAL_PACKET_POOL_ENABLE NX_ENABLE_DUAL_PACKET_POOL
+ NX_IPV6_ADDRESS_CHANGE_NOTIFY_ENABLE NX_ENABLE_IPV6_ADDRESS_CHANGE_NOTIFY
+ NX_IPV6_DISABLE_PURGE_UNUSED_CACHE_ENTRIES NX_DISABLE_IPV6_PURGE_UNUSED_CACHE_ENTRIES
+ NX_IPV6_MULTICAST_ENABLE NX_ENABLE_IPV6_MULTICAST
+ NX_TCP_ENABLE_KEEPALIVE NX_ENABLE_TCP_KEEPALIVE
+ NX_TCP_ENABLE_MSS_CHECK NX_ENABLE_TCP_MSS_CHECK
+ NX_TCP_ENABLE_WINDOW_SCALING NX_ENABLE_TCP_WINDOW_SCALING
+ NX_TCP_QUEUE_DEPTH_UPDATE_NOTIFY_ENABLE NX_ENABLE_TCP_QUEUE_DEPTH_UPDATE_NOTIFY
+ NXDUO_DESTINATION_TABLE_SIZE NX_IPV6_DESTINATION_TABLE_SIZE
+ NXDUO_DISABLE_ICMPV6_ERROR_MESSAGE NX_DISABLE_ICMPV6_ERROR_MESSAGE
+ NXDUO_DISABLE_ICMPV6_REDIRECT_PROCESS NX_DISABLE_ICMPV6_REDIRECT_PROCESS
+ NXDUO_DISABLE_ICMPV6_ROUTER_ADVERTISEMENT_PROCESS NX_DISABLE_ICMPV6_ROUTER_ADVERTISEMENT_PROCESS
+ NXDUO_DISABLE_ICMPV6_ROUTER_SOLICITATION NX_DISABLE_ICMPV6_ROUTER_SOLICITATION
+ NXDUO_DISABLE_DAD NX_DISABLE_IPV6_DAD
+ NXDUO_DUP_ADDR_DETECT_TRANSMITS NX_IPV6_DAD_TRANSMITS
+ NXDUO_ICMPV6_MAX_RTR_SOLICITATIONS NX_ICMPV6_MAX_RTR_SOLICITATIONS
+ NXDUO_ICMPV6_RTR_SOLICITATION_INTERVAL NX_ICMPV6_RTR_SOLICITATION_INTERVAL
+ NX_CRYPTO_MAX_IV_SIZE_IN_BITS (Moved into IPsec module)
+
+ Files are modified to rename symbols:
+
+ nx_api.h
+ nx_arp_gratuitous_send.c
+ nx_arp_packet_receive.c
+ nx_arp_packet_send.c
+ nx_icmp_interface_ping6.c
+ nx_icmp_interface_ping.c
+ nx_icmpv4_packet_process.c
+ nx_icmpv4_process_echo_request.c
+ nx_icmpv4_send_error_message.c
+ nx_icmpv6_DAD_failure.c
+ nx_icmpv6_destination_table_periodic_update.c
+ nx_icmpv6_dest_table_add.c
+ nx_icmpv6_dest_table_find.c
+ nx_icmpv6.h
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_perform_DAD.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_rs.c
+ nx_icmpv6_validate_ra.c
+ nx_igmp_multicast_interface_leave_internal.c
+ nx_igmp_periodic_processing.c
+ nx_invalidate_destination_entry.c
+ nx_ip_auxiliary_packet_pool_set.c
+ nx_ip_create.c
+ nx_ip_dispatch_process.c
+ nx_ip_fragment_timeout_check.c
+ nx_ip_interface_attach.c
+ nx_ip_interface_detach.c
+ nx_ip_packet_receive.c
+ nx_ip_packet_send.c
+ nx_ip_thread_entry.c
+ nx_ipv6_option_error.c
+ nx_ipv6_packet_receive.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_prefix_list_delete_entry.c
+ nx_ipv6_process_fragment_option.c
+ nx_ipv6_process_routing_option.c
+ nx_mld.h
+ nx_nd_cache_add_entry.c
+ nx_nd_cache_delete_internal.c
+ nx_packet.h
+ nx_packet_pool_low_watermark_set.c
+ nx_rarp_packet_send.c
+ nx_system.h
+ nx_system_initialize.c
+ nx_tcp.h
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_control.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_periodic_processing.c
+ nx_tcp_server_socket_relisten.c
+ nx_tcp_socket_create.c
+ nx_tcp_socket_disconnect.c
+ nx_tcp_socket_queue_depth_notify_set.c
+ nx_tcp_socket_receive_queue_max_set.c
+ nx_tcp_socket_retransmit.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_data_check.c
+ nx_tcp_socket_state_established.c
+ nx_tcp_socket_state_syn_received.c
+ nx_tcp_socket_state_syn_sent.c
+ nx_tcp_window_scaling_option_get.c
+ nx_udp_packet_receive.c
+ nx_user.h
+ nxde_ipv6_address_change_notify.c
+ nxde_ipv6_multicast_interface_join.c
+ nxde_ipv6_multicast_interface_leave.c
+ nxd_icmp_enable.c
+ nxd_ipv6_address_change_notify.c
+ nxd_ipv6_address_delete.c
+ nxd_ipv6_address_set.c
+ nxd_ipv6_destination_table_find_next_hop.c
+ nxd_ipv6_disable.c
+ nxd_ipv6_enable.c
+ nxd_ipv6_interface_find.c
+ nxd_ipv6_multicast_interface_join.c
+ nxd_ipv6_multicast_interface_leave.c
+ nxd_ipv6_prefix_router_timer_tick.c
+ nxd_ipv6_router_solicitation_check.c
+ nxe_packet_pool_low_watermark_set.c
+ nxe_tcp_socket_create.c
+ nxe_tcp_socket_queue_depth_notify_set.c
+ nxe_tcp_socket_receive_queue_max_set.c
+
+
+
+ Other modified files:
+ nx_api.h Removed internal functions.
+ Fixed typo for API names of stateless address control.
+ Added a macro to disable warning of parameter not used.
+ nx_icmp_ping.h Optimized the data offset of request packet.
+ nx_icmp_interface_ping6.c Removed limitation of message size when sending echo request.
+ nx_icmpv6.h Updated the function name.
+ Removed unused argument of _nxd_ipv6_destination_table_find_next_hop.
+ nx_icmpv6_dest_table_add.c Fixed a bug when destination table was full, index of
+ array was out of bound.
+ nx_icmpv6_perform_DAD.c Updated the function name.
+ nx_icmpv6_DAD_clear_NDCache_entry.c Updated the function name and optimized the code.
+ nx_icmpv6_DAD_failure.c Renamed the argument name to make it sense.
+ nx_icmpv6_process_packet_too_big.c Fixed a bug that packet was not released.
+ nx_icmpv6_process_ra.c Fixed a bug that address was formed when prefix was link local.
+ Fixed the logic to find empty address entry.
+ Fixed retrans timer when it is 0.
+ nx_icmpv6_process_redirect.c Fixed return status check. Fixed endian of MTU.
+ nx_icmpv6_send_error_message.c Used wrong IPv6 address.
+ Fixed packet leak if IPsec SA disallows this packet.
+ Fixed multicast destination address check.
+ nx_icmpv6_send_queued_packets Optimized the logic for IPv6 fragment processing.
+ nx_icmpv6_send_rs.c Removed unreachable code.
+ nx_icmpv6_validate_neighbor_message.c Removed unused argument.
+ nx_icmpv6_validate_ra.c Removed unused argument.
+ nx_igmp_packet_process.c Optimized the logic of verifying checksum.
+ nx_igmp_periodic_process.c Removed useless code.
+ nx_ip_checksum_compute.c Fixed calculation for packet size that is only two bytes aligned.
+ nx_ip_create.c Removed the status check for TX API since internal call should be succeed.
+ nx_ip_deferred_link_status_process.c Removed cleanup logic when link was down.
+ nx_ip_delete.c Invalidated dynamic ARP entries and ND cache,
+ in case packets were queued.
+ nx_ip_dispatch_process.c Corrected length check for extension header.
+ Removed unreachable code.
+ nx_ip_driver_packet_send.c Added support for IPv4 link-local address
+ Optimized the logic for packet sending.
+ Added fragmentation check.
+ nx_ip_header_add.c Stored IP header for outgoing packet.
+ nx_ip_fragment_assembly.c Used the more recently arrived copy if fragments contain the same data.
+ Corrected the logic to find insert position for IPv6 fragments.
+ nx_ip_fragment_disable.c Removed unreachable code when NX_FRAGMENT_IMMEDIATE_ASSEMBLY is defined.
+ nx_ip_fragment_packet.c Removed unreachable code.
+ nx_ip_fragment_forward_packet.c Removed unreachable code.
+ nx_ip_forward_packet_process.c Added checks for link local address before forwarding.
+ nx_ip_interface_attach.c Fixed duplicate empty address.
+ nx_ip_interface_detach.c Simplified the logic to leave multicast group.
+ nx_ip_interface_status_check.c Checked driver code for NX_IP_LINK_ENABLED status.
+ Fixed the bug for wait_option.
+ nx_ip_packet_checksum_compute.c Removed code not used. Fixed offset when IPv4 header contained options.
+ Removed flag after IPv4 checksum calculated.
+ Fixed length calculation of IPv4 header.
+ nx_ip_packet_send.c Removed unreachable lines.
+ Initialized status value.
+ nx_ip_raw_packet_send.c Removed duplicate check for raw service enabled.
+ nx_ip_raw_packet_source_send.c Removed duplicate check for raw service enabled.
+ Optimized the code.
+ nx_ip_route_find.c Optimized search operation for loopback address.
+ Fixed a bug that loopback interface was used by multicast or broadcase address.
+ Added support for link-local address.
+ Verified whther or not routing address was reachable.
+ nx_ip_static_route_add.c Fixed a bug that mutex is not released before return.
+ nx_ip_status_check.c Removed duplicated code.
+ nx_ip_thread_entry.c Ensured the pointer function is valid before use.
+ nx_ipv4_packet_receive.c Fixed a bug in source check when address mapping is not needed.
+ nx_ipv6_fragment_process.c Fixed offset of fragment packets.
+ nx_ipv6_multicast_leave.c Removed unreachable code.
+ nx_ipv6_multicast_join.c Removed unreachable code.
+ nx_ipv6_option_error.c Removed duplicated check for function pointer.
+ nx_ipv6_packet_copy.c Fixed a bug that four extra bytes were incorrectly copied.
+ nx_ipv6_packet_send.c Removed fragment check when IPsec is disabled for PMTU, stored IP header for outgoing packet.
+ nx_ipv6_prefix_list_add_entry.c Fixed a bug that prefix was not sorted.
+ Removed unused argument.
+ nx_ipv6_prefix_list_delete_entry.c Optimized the logic to find address.
+ nx_ipv6_process_hop_by_hop_option.c Eliminated unreachable code.
+ nx_ipv6_util.c Removed unnecessary NULL check in IPv6_Address_Type.
+ nx_mld.h Cleaned up this file.
+ nx_packet_allocate.c Moved packet type check from _nxe_packet_allocate since
+ it is necessary when _nx_packet_allocate is called
+ by internal functions.
+ nx_packet_copy.c Copied the data of the first packet beginning at data starting position.
+ Fixed the bug for ip header pointer set.
+ nx_packet_pool_create.c Removed unreachable code.
+ nx_ram_network_driver.c Removed unused parameter in _nx_ram_network_driver_output.
+ Supported more commands.
+ nx_rarp_packet_receive.c Continued RARP when address mapping needed.
+ nx_tcp.h Defined the TCP minimum acceptable MSS.
+ Added missing TCP function declarations.
+ nx_tcp_client_socket_unbind.c Limited the socket state to closed only.
+ nx_tcp_fast_periodic_processing.c Modified the logic for zero window probe.
+ Updated ACK number and window size for retransmitted packet.
+ nx_tcp_packet_process.c Fixed invalid source address check.
+ Improved statistics of invalid packet.
+ Optimized the logic of processing RST packet for listen queue.
+ nx_tcp_periodic_processing.c Updated the retries to reach the max value.
+ nx_tcp_server_socket_accept.c Removed unreachable code.
+ nx_tcp_server_socket_unlisten.c Reset the socket state only when it was listening.
+ nx_tcp_socket_create.c Removed duplicated check for window size.
+ nx_tcp_socket_send_internal.c Modified the wait time.
+ Removed the TCP transmit suspended count limitation.
+ Modified to release IP mutex protection before a blocking call.
+ Replaced NX_NO_WAIT with the input wait_option in nx_packet_allocate, nx_packet_data_append.
+ Removed duplicated error check.
+ Optimized the logic of processing sending packet.
+ Fixed the alignment of subsequent packet in chain.
+ nx_tcp_socket_disconnect.c Removed check for transmit queue when connection was not established.
+ Called the cleanup routines after completed the tcp disconnected operation.
+ nx_tcp_socket_packet_process.c Removed the data check in CLOSE WAIT state.
+ Checked ACK for LAST ACK and CLOSING state.
+ Checked socket state before processing data.
+ Fixed a bug that the receive window can not recover.
+ nx_tcp_socket_receive.c Modified the logic for SWS avoidance algorithm.
+ nx_tcp_socket_state_ack_check.c Corrected the processing procedure for SYN/ACK bits.
+ Modified the logic to adjust congestion window during slow start and congestion avoidance.
+ Fixed a bug in ACK check logic if the packet was not transmitted by driver.
+ Stored IP header for outgoing packet.
+ nx_tcp_socket_state_closing.c Removed sending ACK message code if ACK did not acknowledge FIN.
+ nx_tcp_socket_state_data_check.c Fixed the ACKed packets in order.
+ Fixed the bug for updating receive window.
+ Trimmed the data that out of receive window.
+ Optimized the logic when a packet with old data is received.
+ Modified the logic for SWS avoidance algorithm.
+ nx_tcp_socket_state_established.c Removed unused parameter.
+ nx_tcp_socket_state_last_ack.c Removed sending ACK message code if ACK did not acknowledge FIN.
+ nx_tcp_socket_state_syn_sent.c Fixed sequence number for simultaneous connection.
+ Checked maximum value of window scale when it was set.
+ nx_tcp_socket_state_syn_received.c Updated tx_window_advertised value.
+ Checked maximum value of window scale when it was set.
+ Removed duplicated out of window check.
+ nx_tcp_window_scaling_option_get.c Limited the maximum value of window scale.
+ nx_nd_cache_init.c Removed the status check for TX API since internal call should be succeed.
+ nx_nd_cache_interface_entries_delete.c Removed duplicated deletion for destination table.
+ nx_tcp_packet_send_rst.c Modified reset ack number, sequence number and ACK bit according to incoming packet ACK bit.
+ nx_tcp_server_socket_relisten.c Released the protection before return.
+ nx_udp_packet_receive.c Removed duplicated check for function pointer.
+ nx_user.h Added ASSERT macros. Remvoed unused macros.
+ Added macros defined in nx_api.h but not in nx_user.h.
+ Sorted options by module.
+ nxd_ip_raw_packet_source_send.c Removed duplicate check for raw service enabled.
+ nxd_ipv6_address_delete.c Fixed a bug that if_index may be used before initialized.
+ nxd_ipv6_address_set.c Fixed a bug that mutex is not released before return.
+ Fixed link local duplicate address set.
+ nxd_ipv6_default_router_add_internal.c Returned error status when router table was full.
+ nxd_ipv6_default_router_delete.c Returned error status when router table was not found.
+ nxd_ipv6_default_router_entry_get.c Optimized logic comparing the interface.
+ nxd_ipv6_default_router_get.c Used the logic of _nxd_ipv6_default_router_entry_get.
+ nxd_ipv6_destination_table_find_next_hop.c Removed unused argument.
+ nxd_ipv6_disable.c Cleaned up ND_CACHE when ICMP was enabled.
+ nxd_ipv6_enable.c Corrected retransmit timer when it is zero.
+ nxd_ipv6_interface_find.c Used first up interface for link local multicast.
+ Fixed null pointer access.
+ nxd_nd_cache_entry_delete.c Removed duplicated deletion for destination table.
+ nxd_tcp_client_socket_connect.c Fixed the bug for address version check, updated the header size.
+ Fixed loopback destination.
+ Fixed the bug for socket state since it is updated in connect cleanup.
+ nxd_udp_socket_send.c Fixed statistics when IPv6 address was not valid.
+ nxde_ip_raw_packet_source_send.c Added the check for packet pointer.
+ nxde_ipv6_address_change_notify.c Checked calling thread.
+ nxde_ipv6_address_set.c Filtered address that was not unicast type.
+ nxde_udp_socket_send.c Fixed checking for header area of packet.
+ nxde_udp_socket_source_send.c Added the check for packet pointer.
+ nxe_arp_dynamic_entry_set.c Added the check for IP address.
+ nxe_arp_ip_address_find.c Added the check for invalid physical address.
+ nxe_arp_static_entry_create.c Added the check for invalid physical address.
+ Added the check for IP address.
+ nxe_arp_static_entry_delete.c Added the check for invalid physical address.
+ nxe_ip_create.c Added the priority check.
+ nxe_packet_allocate.c Moved packet type check to _nx_packet_allocate since
+ it is necessary when _nx_packet_allocate is called
+ by internal functions.
+ nxe_tcp_socket_create.c Checked window size when window scale was not enabled.
+ nxe_tcp_socket_send.c Fixed checking for header area of packet.
+ nxe_tcp_socket_disconnect_complete_notify.c Added the check for input parameters.
+ nxe_tcp_socket_establish_notify.c Added the check for input parameters.
+ nxe_tcp_socket_timed_wait_callback.c Added the check for input parameters.
+ nxe_udp_socket_send.c Fixed checking for header area of packet.
+ nxe_udp_socket_source_send.c Fixed checking for header area of packet.
+
+
+01/12/2015 NetX Duo generic code version 5.8. This release includes the
+ following major features:
+
+
+ Files are modified to remove deprecated macro for IPv6 path MTU:
+ nx_icmpv6.h
+ nx_user.h
+
+
+ Files are added or modified to support ipv4 multicast feature:
+ nx_ipv4_multicast_interface_join.c
+ nx_ipv4_multicast_interface_leave.c
+ nxe_ipv4_multicast_interface_join.c
+ nxe_ipv4_multicast_interface_leave.c
+
+
+ Files are modified to fix compiler warnings:
+ nx_arp_packet_receive.c
+ nx_icmpv4_packet_process.c
+ nx_icmpv6.h
+ nx_icmpv6_dest_table_find.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_process_echo_reply.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_queued_packets.c
+ nx_icmpv6_send_rs.c
+ nx_icmpv6_validate_neighbor_message.c
+ nx_icmpv6_validate_ra.c
+ nx_igmp_packet_process.c
+ nx_igmp_periodic_processing.c
+ nx_invalidate_destination_entry.c
+ nx_ip_checksum_compute.c
+ nx_ip_dispatch_process.c
+ nx_ip_forward_packet_process.c
+ nx_ip_fragment_assembly.c
+ nx_ip_fragment_packet.c
+ nx_ip_packet_receive.c
+ nx_ipv4_packet_receive.c
+ nx_ipv6_address_find_prefix.c
+ nx_ipv6_fragment_process.c
+ nx_ipv6_option_error.c
+ nx_ipv6_packet_copy.c
+ nx_ipv6_packet_receive.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_prefix_list_add_entry.c
+ nx_ipv6_process_fragment_option.c
+ nx_ipv6_process_hop_by_hop_option.c
+ nx_ipv6_process_routing_option.c
+ nx_ipv6_util.c
+ nx_nd_cache_add.c
+ nx_nd_cache_add_entry.c
+ nx_nd_cache_find_entry.c
+ nx_packet_copy.c
+ nx_packet_data_append.c
+ nx_packet_data_retrieve.c
+ nx_tcp_no_connection_reset.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_ack.c
+ nx_tcp_packet_send_fin.c
+ nx_tcp_packet_send_rst.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_socket_bytes_available.c
+ nx_tcp_socket_mss_set.c
+ nx_tcp_socket_send.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_data_check.c
+ nx_udp_packet_receive.c
+ nx_udp_socket_receive.c
+ nxd_ipv6_address_set.c
+ nxd_ipv6_default_router_add_internal.c
+ nxd_ipv6_default_router_entry_get.c
+ nxd_ipv6_default_router_get.c
+ nxd_ipv6_destination_table_find_next_hop.c
+ nxd_ipv6_disable.c
+ nxd_ipv6_interface_find.c
+ nxd_ipv6_prefix_router_timer_tick.c
+ nxd_ipv6_search_onlink.c
+ nxd_nd_cache_hardware_address_find.c
+ nxd_nd_cache_ip_address_find.c
+ nxd_tcp_client_socket_connect.c
+ nxd_udp_socket_send.c
+ nxde_icmp_ping.c
+ nxde_icmp_source_ping.c
+ nxde_ip_raw_packet_send.c
+ nxe_ip_create.c
+ nxe_packet_pool_create.c
+ nxe_tcp_socket_create.c
+ nxe_tcp_socket_send.c
+ nxe_udp_socket_create.c
+ nxe_udp_socket_send.c
+ nxe_udp_source_extract.c
+
+
+ Files are modified to optimize NX_PACKET_STRUCT:
+ nx_api.h
+ nx_arp_dynamic_entry_set.c
+ nx_arp_packet_receive.c
+ nx_arp_packet_send.c
+ nx_icmp_interface_ping6.c
+ nx_icmp_ping.c
+ nx_icmpv4_packet_process.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_process_echo_reply.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_process_packet_too_big.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_process_redirect.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_queued_packets.c
+ nx_icmpv6_send_rs.c
+ nx_igmp_packet_process.c
+ nx_igmp_periodic_processing.c
+ nx_ip_dispatch_process.c
+ nx_ip_forward_packet_process.c
+ nx_ip_fragment_assembly.c
+ nx_ip_fragment_disable.c
+ nx_ip_fragment_packet.c
+ nx_ip_fragment_timeout_check.c
+ nx_ip_packet_receive.c
+ nx_ip_packet_send.c
+ nx_ip_raw_packet_send.c
+ nx_ip_raw_packet_source_send.c
+ nx_ipv4.h
+ nx_ipv4_packet_receive.c
+ nx_ipv6.h
+ nx_ipv6_fragment_process.c
+ nx_ipv6_packet_receive.c
+ nx_ipv6_packet_send.c
+ nx_packet_allocate.c
+ nx_packet_copy.c
+ nx_packet_data_append.c
+ nx_packet_data_extract_offset.c
+ nx_packet_pool_create.c
+ nx_packet_release.c
+ nx_packet_transmit_release.c
+ nx_ram_network_driver.c
+ nx_rarp_packet_receive.c
+ nx_rarp_packet_send.c
+ nx_tcp_fast_periodic_processing.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_ack.c
+ nx_tcp_packet_send_fin.c
+ nx_tcp_packet_send_rst.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_server_socket_relisten.c
+ nx_tcp_socket_bytes_available.c
+ nx_tcp_socket_receive.c
+ nx_tcp_socket_receive_queue_flush.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_data_check.c
+ nx_tcp_socket_state_transmit_check.c
+ nx_tcp_socket_transmit_queue_flush.c
+ nx_udp_socket_receive.c
+ nx_udp_socket_source_send.c
+ nxd_ip_raw_packet_source_send.c
+ nxd_ipv6_raw_packet_send_internal.c
+ nxd_udp_packet_info_extract.c
+ nxd_udp_socket_send.c
+ nxd_udp_socket_source_send.c
+ nxde_udp_packet_info_extract.c
+ nxde_udp_socket_send.c
+ nxe_ip_raw_packet_send.c
+ nxe_ip_raw_packet_source_send.c
+ nxe_tcp_socket_send.c
+ nxe_udp_packet_info_extract.c
+ nxe_udp_socket_send.c
+ nxe_udp_socket_source_send.c
+
+
+ Files are modified to support the dual packet pool feature:
+ nx_api.h
+ nx_arp_gratuitous_send.c
+ nx_arp_packet_send.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_rs.c
+ nx_igmp_periodic_processing.c
+ nx_ip_create.c
+ nx_ip_auxiliary_packet_pool_set.c
+ nx_rarp_packet_send.c
+ nx_tcp_packet_send_ack.c
+ nx_tcp_packet_send_fin.c
+ nx_tcp_packet_send_rst.c
+ nx_tcp_packet_send_syn.c
+ nx_user.h
+ nxe_ip_auxiliary_packet_pool_set.c
+
+
+ Files are modified to optimize NX_UDP_SOCKET_STRUCT:
+ nx_api.h
+ nx_udp_socket_create.c
+ nxd_udp_socket_send.c
+
+
+ Files are added or modified to support the link status change feature:
+ nx_api.h
+ nx_arp_interface_entries_delete.c
+ nx_icmpv6.h
+ nx_ip.h
+ nx_ip_deferred_link_status_process.c
+ nx_ip_driver_link_status_event.c
+ nx_ip_link_status_change_notify_set.c
+ nx_ip_thread_entry.c
+ nx_nd_cache_interface_entries_delete.c
+ nxe_ip_link_status_change_notify_set.c
+
+
+ Files are added or modified in order to fact out the IPv4 packet transmit process:
+ nx_ip_driver_packet_send.c
+ nx_ip_header_add.c
+ nx_ip_packet_send.c
+
+
+ Files are modified to consolidate IGMP-related data structure in the IP instance:
+ nx_api.h
+ nx_igmp_multicast_check.c
+ nx_igmp_packet_process.c
+ nx_igmp_periodic_processing.c
+ nx_ip_packet_send.c
+
+
+ Files are added or modified to support the simple IPv4 routing and the NAT feature:
+ nx_api.h
+ nx_icmpv4_packet_process.c
+ nx_ip_forward_packet_process.c
+ nx_ip_fragment_forward_packet.c
+ nx_ip_packet_send.c
+ nx_ipv4_packet_receive.c
+ nx_tcp_free_port_find.c
+ nx_tcp_client_socket_bind
+ nx_tcp_no_connection_reset.c
+ nx_tcp_packet_process.c
+ nx_tcp_server_socket_listen
+ nx_tcp_server_socket_relisten.c
+ nx_udp_free_port_find.c
+ nx_udp_socket_bind.c
+ nx_user.h
+
+
+ Files are modified to support user defined random function:
+ nx_api.h
+
+
+ Files are modified to support the router advertisement flag callback feature:
+ nx_api.h
+ nx_icmpv6.h
+ nx_icmpv6_process_ra.c
+ nxd_icmpv6_ra_flag_callback_set.c
+ nxde_icmpv6_ra_flag_callback_set.c
+
+
+ Files are modified to support the ARP conflict defend feature:
+ nx_api.h
+ nx_arp_packet_receive.c
+ nx_arp_periodic_update.c
+ nx_ip_address_set.c
+ nx_ip_interface_address_set.c
+ nx_user.h
+
+
+ Files are added or modified to optimized the logic for ARP dynamic entry deletion:
+ nx_arp_dynamic_entries_invalidate.c
+ nx_arp_dynamic_entry_delete.c
+ nx_arp_entry_allocate.c
+ nx_arp_entry_delete.c
+ nxe_arp_entry_delete.c
+ nx_arp_static_entry_delete.c
+ nx_arp_static_entry_delete_internal.c
+ nx_ip_create.c
+
+
+ Files are added or modified to support IPv4 multicast join and leave feature:
+ nx_igmp.h
+ nx_igmp_multicast_interface_join.c
+ nx_igmp_multicast_interface_join_internal.c
+ nx_igmp_multicast_interface_leave.c
+ nx_igmp_multicast_interface_leave_internal.c
+ nx_igmp_multicast_join.c
+ nx_igmp_multicast_leave.c
+ nx_igmp_packet_process.c
+ nx_igmp_periodic_processing.c
+ nxe_igmp_multicast_interface_join_internal.c
+ nxe_igmp_multicast_interface_leave.c
+ nxe_igmp_multicast_interface_leave_internal.c
+
+
+ Files are modified to support the router alert feature:
+ nx_igmp_periodic_processing.c
+ nx_ip_fragment_packet.c
+ nx_ip_packet_send.c
+ nx_ipv4.h
+
+
+ Other modified files:
+ nx_api.h Added new APIs for ipv4 multicast and interface detach, added definition of reassembly
+ added definition of reassembly time, added new service nx_ip_gateway_address_clear,
+ removed duplicate declarations, mapped the old APIs to new APIs, fixed a bug that
+ nx_ipv4_packet_receive is mapped to _nx_igmp_multicast_leave_internal which is nonexistent.
+ nx_arp.h Added new APIs for ARP dynamic entry delete, static entry delete internal and interface entries
+ delete, added ARP defend deature.
+ nx_arp_packet_receive.c Fixed that packet is used after released,
+ added a feature that responds to a conflict GARP packet,
+ added an ARP man in the middle detection feature (NX_ARP_MAC_CHANGE_NOTIFICATION_ENABLE),
+ blocked adding entries to ARP cache with zero sender IP address,
+ prevent an ARP request matching an ARP entry sender address to change the mac address.
+ nx_arp_static_entry_create.c Fixed a bug that interface is not initialized before used.
+ nx_icmp_interface_ping6.c Fixed a bug for sequence when nx_ip_icmp_sequence is greater than 65535.
+ nx_icmpv4_packet_process.c Fixed checksum zero for echo reply packet.
+ nx_icmpv6_DAD_failure.c Fixed a bug that address was not removed from interface.
+ nx_icmpv6_perform_DAD.c Optimized process logic.
+ nx_icmpv6_send_error_message.c Fixed endianness of the offending packet, fixed handling multicast packet,
+ added logic to ensure data to copy does not exceed the ICMPv6 packet boundary.
+ nx_icmpv6_send_queued_packets.c Fixed the bug for unspecified address check.
+ Cleaned up the nd_entry after fragment processing.
+ nx_icmpv6_packet_process Modified the logic of checksum calculation.
+ nx_icmpv6_dest_table_add.c Protected cache with mutex nx_nd_cache_protection.
+ nx_icmpv6_process_redirect.c Protected cache with mutex nx_nd_cache_protection.
+ nx_ip.h Added new service nx_ip_gateway_clear,
+ added function to compute checksum for fragments,
+ nx_ipv4.h Added new service nx_ip_gatewar_clear.
+ nx_ip_create.c Supported loopback interface capability,
+ nx_ip_checksum_compute.c Optimized the logic.
+ fixed a bug when the priority of the calling thread is lower than IP thread.
+ nx_ip_fragment_assembly.c Added definition of reassembly time, fixed a bug in fragment queue.
+ nx_ip_fragment_packet.c Fixed checksum calculation when fragment is performed,
+ copied interface from header packet, fixed size of each fragment,
+ fixed a bug that NX_DISABLE_IP_TX_CHECKSUM option was ignored.
+ nx_ip_fragment_timeout_check.c Fixed the endian of offset flag before sending ICMPv6 error message.
+ Fixed a problem with reset of the tail fragment.
+ Fixed an error for reconnecting around a dropped fragment.
+ nx_ip_gateway_address_set.c Modified the logic to disallow a zero IP address.
+ nx_ip_packet_receive.c Added packet drop statisics for invalid packet.
+ nx_ip_packet_send.c Fixed destination address for non local network,
+ fixed a bug in loopback interface processing,
+ optimized the logic,
+ nx_ip_route_find.c Fixed a bug in loopback interface processing,
+ skipped interface which is down when finding route and gateway.
+ nx_ip_raw_packet_processing.c Fixed a bug that interrupt is not restored when no thread waiting for packets.
+ nx_ip_static_route_add.c Fixed a bug that route table may overflow,
+ added interface record when shifting route entries,
+ fixed a bug that unsigned number overflows.
+ nx_ip_static_route_delete.c Added interface record when shifting route entries.
+ nx_ip_max_payload_size_find.c Fixed a bug that src_address was set incorrectly,
+ removed unnecessary check for NULL pointer of IPv6 address.
+ nx_ipv4_packet_receive.c Supported processing fragmentation immediately,
+ supported checking for source IP address.
+ added a feature that receive unicast DHCP message.
+ nx_ipv6_fragment_process.c Fixed checksum calculation when fragment is performed,
+ used the same packet pool for original packet and fragmentations.
+ Increased the IP packet and bytes sent count.
+ nx_ipv6_packet_copy.c Fixed copy length check for destination packet.
+ nx_ipv6_packet_send.c Fixed checksum calculation when fragment is performed, optimized the logic.
+ nx_ipv6_prefix_list_delete_entry.c
+ Fixed IPv6 address when leave multicast group.
+ nx_ipv6_process_fragment_option.c Supported processing fragmentation immediately,
+ fixed the endian of offset flag before sending ICMPv6 error message.
+ nxd_ip_raw_packet_source_send.c Fixed source address selection for IPv6.
+ nxd_ipv6_address_set.c Fixed duplicate address set, fixed a bug when ip_address is null.
+ nxd_ipv6_default_router_add_internal.c
+ Checked router address whether it is reachable.
+ nxd_ipv6_default_router_get.c Got index from interface.
+ nxd_ipv6_default_router_number_of_entries_get.c
+ Got index from interface.
+ nxd_ipv6_disable.c Supported loopback address. Fixed a compiler error.
+ nxd_ipv6_enable.c Supported loopback address.
+ nxd_ipv6_interface_find.c Fixed return status when there is no address in interface,
+ supported loopback address, checked interface link status.
+ nxd_ipv6_raw_packet_send_internal.c
+ Fixed source address selection for IPv6.
+ nxd_ipv6_stateless_address_autoconfig_enable.c
+ Reset the solicitation count.
+ nxd_ipv6_stateless_address_autoconfig_disable.c
+ Reset the solicitation count.
+ nxd_ipv6_multicast_interafce_leave.c
+ Fixed the bug that return success status when find the same entry.
+ nx_nd_cache.h Updated time of ND cache to RFC recommended values.
+ nx_nd_cache_add.c Protected cache with mutex nx_nd_cache_protection.
+ nx_nd_cache_find_entry.c Removed the mutex release that is not necessary.
+ nx_nd_cache_find_entry_by_mac_addr.c
+ Fixed a bug that check the interface pointer before use.
+ nxd_nd_cache_entry_delete.c Fixed a bug that mutex is not released before return.
+ nx_packet_copy.c Removed the size check to avoid failure to copy for chain packet.
+ nx_packet_data_extract_offset.c Used memcpy to optmize data copy.
+ nx_packet_data_retrieve.c Used memcpy to optmize data copy.
+ nx_packet_data_append.c Fixed a bug that releases already released packet.
+ nx_packet_pool_create.c Cleared pool structure before used.
+ nx_tcp_mss_option_get.c Fixed endless loop when option length is not set.
+ nx_tcp_packet_process.c Checked source address for syn packets that are queued.
+ nx_tcp_server_socket_relisten.c Fixed a bug that syn_received_notify was not called.
+ nx_tcp_socket_delete.c Not allowed to delete before resources are cleaned.
+ nx_tcp_socket_packet_process.c Fixed a bug ACKs, URGs, RSTs should be processed even sequence
+ is out of window.
+ nx_tcp_socket_send.c: Moved process logic to internal function.
+ nx_tcp_socket_send_internal.c Fixed a bug when socket is not connected, supported
+ to send small segmentation when length of packet is less than window size.
+ nx_tcp_socket_state_ack_check.c Fixed cwnd calculation. Fixed window size when ACK is duplicated.
+ nx_tcp_socket_state_data_check.c Supported to limit the number of packets that are out of order.
+ nx_tcp_socket_state_transmit_check.c
+ Moved logic when window size is non zero to send internal function.
+ nx_tcp_transmit_cleanup.c Removed adjusting sequence since packet in queue would
+ never contain TCP header.
+ nx_user.h Added definition for IP reassembly time,
+ added symbol that allow IP fragment reassemble immediately,
+ updated time of ND cache to RFC recommended values,
+ added source address check for incoming packet,
+ supported to limit the number of packets that are out of order.
+ nx_udp_packet_receive.c Fixed the endian of UDP header before sending ICMPv6 error message.
+ nx_udp_socket_delete.c Removed error checking that has been checked in nxe.
+ nx_udp_socket_receive.c Set packet pointer to NULL if no packet was available.
+ Removed special process of all ones checksum.
+ nxd_udp_socket_send.c Fixed source address selection for IPv6.
+ nxe_icmp_interface_ping6.c Checked interface validity.
+ nxde_icmp_source_ping.c Checked interface validity.
+ nxe_igmp_multicast_interface_join.c
+ Fixed the bug for IP protectio operation.
+ nxe_ip_gateway_address_set.c
+ Added the interface status check.
+ nxe_ip_interface_attach.c Modified invalid IP address check.
+ nxe_ip_interface_physical_address_get.c
+ Fixed a dead recursive call bug.
+ nxe_ip_interface_status_check.c Added interface validation checking.
+ nxde_ip_raw_packet_source_send.c Fixed address_index check.
+ nxde_ipv6_stateless_address_autoconfig_enable.c
+ Modified the comment and fixed the bug.
+ nxde_ipv6_stateless_address_autoconfig_disable.c
+ Modified the comment and fixed the bug.
+ nxde_ipv6_multicast_interface_leave.c
+ Modified the comment and fixed the bug.
+ nxde_ipv6_multicast_interface_join.c
+ Modified the comment and fixed the bug.
+ nxde_ipv6_default_router_number_of_entries_get.c
+ Modified the comment and fixed the bug.
+ nxde_ipv6_default_router_get.c
+ Modified the comment and fixed the bug.
+ nxde_ipv6_default_router_entry_get.c
+ Modified the comment and fixed the bug.
+ nxde_ipv6_address_delete.c
+ Modified the comment and fixed the bug.
+ nxde_nd_cache_entry_set Added the ID check for IP instance.
+ nxe_packet_release.c Modified the return value.
+ nxe_packet_transmit_release.c Modified the return value.
+ nxe_tcp_client_socket_connect.c Added server address check,
+ nxe_tcp_socket_queue_depth_notify_set.c
+ Added input parameters check,
+ nxe_tcp_socket_receive_notify.c Added input parameters check,
+ nxe_tcp_socket_transmit_configure.c
+ Added tcp feature check,
+ nxe_tcp_socket_window_update_notify_set.c
+ Added input parameters check,
+ nxe_udp_socket_source_send.c Improved the error checking logic.
+ nx_ram_network_driver.c Received special MAC address for IPv6 multicast address,
+ Correctly set the next IP.
+
+ Files added:
+ nx_ip_gateway_address_clear.c
+ nx_ip_interface_detach.c
+ nx_ip_packet_checksum_compute.c
+ nxe_ip_gateway_address_clear.c
+ nxe_ip_interface_detach.c
+
+
+
+
+
+01/31/2013 NetX Duo generic code version 5.7. This release includes the
+ following major features:
+
+
+ Files are modified to allow conditional compilation for IP fragmentation support:
+ nx_arp_dynamic_entry_set.c
+ nx_arp_packet_receive.c
+ nx_ip_fragment_disable.c
+ nx_ip_fragment_enable.c
+ nx_ip_fragment_packet.c
+ nx_ip_fragment_timeout_check.c
+ nx_ip_info_get.c
+ nx_ip_packet_send.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_process_fragment_option.c
+
+
+ Files are added or modified to support the interface capability feature:
+ nx_icmp_interface_ping6.c
+ nx_icmp_ping.c
+ nx_icmpv4_packet_process.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_rs.c
+ nx_igmp_multicast_leave.c
+ nx_igmp_packet_process.c
+ nx_igmp_periodic_processing.c
+ nx_ip_checksum_compute.c
+ nx_ip_interface_capability_get.c
+ nx_ip_interface_capability_set.c
+ nx_ip_fragment_packet.c
+ nx_ip_packet_send.c
+ nx_ip_thread_entry.c
+ nx_ipv4_packet_receive.c
+ nx_ipv6_packet_send.c
+ nx_packet_allocate.c
+ nx_packet_copy.c
+ nx_packet_release.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_fin.c
+ nx_tcp_packet_send_rst.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_socket_send_internal.c
+ nx_udp_socket_receive.c
+ nxd_udp_socket_send.c
+ nxe_ip_interface_capability_get.c
+ nxe_ip_interface_capability_set.c
+
+
+ Files are modified to allow the chained packet feature to be removed:
+ nx_packet_allocate.c
+ nx_packet_copy.c
+ nx_packet_data_append.c
+ nx_packet_data_extract_offset.c
+ nx_packet_data_retrieve.c
+ nx_packet_release.c
+
+
+ Files are added or modified to support the IPv6 address change notify feature:
+ nx_icmpv6_DAD_failure.c
+ nx_icmpv6_perform_DAD.c
+ nx_icmpv6_process_ra.c
+ nx_ipv6_prefix_list_delete.c
+ nx_ipv6_prefix_list_delete_entry.c
+ nxd_ipv6_address_change_notify.c
+ nxd_ipv6_address_delete.c
+ nxd_ipv6_address_set.c
+ nxde_ipv6_address_change_notify.c
+
+
+ Files are added or modified to support the IP raw filter feature and
+ the raw receive queue depth feature:
+ nx_ip_raw_packet_enable.c
+ nx_ip_raw_packet_filter_set.c
+ nx_ip_raw_packet_processing.c
+ nx_ip_raw_receive_queue_max_set.c
+ nxe_ip_raw_packet_filter_set.c
+ nxe_ip_raw_receive_queue_max_set.c
+
+
+ Files are modified to reset the TCP internal timer when closing a socket:
+ nx_tcp_client_socket_unbind.c
+ nx_tcp_server_socket_accept.c
+ nx_tcp_server_socket_listen.c
+ nx_tcp_server_socket_relisten.c
+ nx_tcp_server_socket_unaccept.c
+ nx_tcp_server_socket_unlisten.c
+ nx_tcp_socket_state_fin_wait2.c
+ nx_tcp_socket_state_syn_received.c
+
+
+ Other modified files:
+ nx_arp_enable.c Cleaned up redundant logic.
+ nx_icmpv6_dest_table_add.c Protected cache with mutex nx_nd_cache_protection.
+ nx_icmpv6_process_na.c Modified the logic to set incoming interface to be the
+ address requested in the NA message.
+ nx_icmpv6_process_redirect.c Protected cache with mutex nx_nd_cache_protection.
+ nx_icmpv6_send_queued_packets.c Convert destination address to host byte order before
+ calling nx_icmpv6_dest_table_find.
+ nx_igmp_periodic_processing.c Fixed a bug preventing the loop from decrementing all
+ group update times.
+ nx_ip_create.c Initializes the device table and the address table.
+ nx_ip_dispatch_process.c Added upper layer protocol processing for IPv4
+ nx_ip_driver_direct_command.c Modified function name
+ nx_ip_fragment_assembly.c Simplified the logic by calling nx_ip_dispatch_process()
+ for processing upper layer protocols.
+ nx_ip_fragment_packet.c Removed an extra alignment check
+ nx_ip_max_payload_size_find.c Added a case for IPsec
+ nx_ip_raw_packet_source_send.c Modified the constant for the raw packet type
+ nx_ip_raw_packet_send.c Modified the constant for the raw packet type
+ nx_ip_static_route_add.c Record the physical interface the route is attached to.
+ nx_ipv4_packet_receive.c Simplified the logic by calling nx_ip_dispatch_process()
+ for processing upper layer protocols.
+ nx_ipv6_fragment_process.c Fixed a compiler warning.
+ nx_ipv6_packet_receive.c Added IPv6 multicast support
+ nx_ipv6_packet_send.c Fixed a bug in the logic that does the IPv6 address
+ search, added a case where IPv6 address to MAC address
+ mapping is not needed.
+ nx_ipv6_prefix_list_delete.c Optimized the logic that computes the interface index.
+ nx_ipv6_util.c Fixed the all router multicast address.
+ nx_nd_cache_add.c Fixed compiler warnings, protected cache with mutex
+ nx_nd_cache_protection.
+ nx_nd_cache_find_entry.c Fixed a bug where an incorrect index value is used,
+ removed mutex release that is not necessary.
+ nx_tcp_fast_periodic_processing.c Fixed a bug that prevents TCP retry limit to be reached.
+ nx_tcp_no_connection_reset.c Fixed for IPsec.
+ nx_tcp_packet_process.c Validate MSS value, validate IP address, added internal
+ callback function.
+ nx_tcp_socket_disconnecte.c Corrected TCP ACK number when sending a RST.
+ nx_tcp_socket_packet_process.c Improved the handling of validating incoming TCP
+ segments.
+ nx_tcp_socket_receive.c Corrected the logic checking the receive queue against
+ the TCP socket state.
+ nx_tcp_socket_send.c Added logic to handle error status returned from
+ nx_tcp_socket_internal to fix a packet leak.
+ nx_tcp_socket_state_ack_check.c Fixed a bug determining if packets can be released from
+ the queue when the transmit window wraps, also
+ modified the return value.
+ nx_tcp_socket_state_data_check.c Optimized the logic for handling incoming TCP data
+ segments.
+ nx_tcp_socket_state_syn_received.c Updated the acknowledged receive sequence.
+ nx_tcp_socket_state_syn_sent.c Fixed a logic for invalid ACK check.
+ nx_udp_packet_receive.c Fixed compiler warnings.
+ nx_udp_socket_source_send.c Removed redundant code.
+ nxd_ip_raw_packet_sourcee_send.c Added additional parameters this service takes.
+ nxd_ip_raw_packet_send.c Added additional parameters this service takes.
+ nxd_ipv6_address_get.c Simplified the logic that finds the address index.
+ nxd_ipv6_default_router_add_internal.c Fixed compiler warning.
+ nxd_ipv6_interface_find.c Added IPv6 multicast support, added a case where the
+ destination address is an offlink address.
+ nxd_ipv6_router_solicitation_check.c Cleaned up a line of statement.
+ nxd_nd_cache_entry_set.c Bug fix: Use IPv6 address index to find physical
+ interface.
+ nxd_udp_packet_info_extract.c Simplified the logic that finds the interface index.
+ nxd_udp_socket_send.c Making sure the checksum is always generated for
+ IPv6 packets.
+ nxd_udp_socket_source_send.c Fixed the IP address detection logic.
+ nxde_ip_raw_packet_source_send.c Added additional parameters this service takes.
+ nxde_ip_raw_packet_send.c Added additional parameters this service takes.
+
+
+ Files added:
+ nx_ip_gateway_address_get.c
+ nx_ip_interafce_address_mapping_configure.c
+ nx_ip_interface_mtu_set.c
+ nx_ip_interface_physical_address_get.c
+ nx_ip_interface_physical_address_set.c
+ nx_tcp_socket_queue_depth_notify_set.c
+ nxd_ipv6_default_router_entry_get.c
+ nxd_ipv6_default_router_number_of_entries_get.c
+ nxd_ipv6_disable.c
+ nxd_ipv6_multicast_interface_join.c
+ nxd_ipv6_multicast_interafce_leave.c
+ nxd_ipv6_stateless_address_autoconfig_disable.c
+ nxd_ipv6_stateless_address_autoconfig_enable.c
+ nxde_ipv6_default_router_entry_get.c
+ nxde_ipv6_default_router_number_of_entries_get.c
+ nxde_ipv6_disable.c
+ nxde_ipv6_stateless_address_autoconfig_disable.c
+ nxde_ipv6_stateless_address_autoconfig_enable.c
+ nxde_ipv6_multicast_interface_join.c
+ nxde_ipv6_multicast_interface_leave.c
+ nxe_ip_gateway_address_get.c
+ nxe_ip_interface_mtu_set.c
+ nxe_ip_interface_physical_address_get.c
+ nxe_ip_interface_physical_address_set.c
+ nxe_tcp_socket_queue_depth_notify_set.c
+
+ Files renamed:
+
+ File Name in Release 5.6 File Name in Release 5.7
+
+ nx_ip_raw_packet_interface_send.c nx_ip_raw_packet_source_send.c
+ nx_udp_socket_interface_send.c nx_udp_socket_source_send.c
+ nxd_ip_raw_packet_interface_send.c nxd_ip_raw_packet_source_send.c
+ nxd_udp_socket_interface_send.c nxd_udp_socket_source_send.c
+ nxd_icmp_interface_ping.c nxd_icmp_source_ping.c
+ nxe_ip_raw_packet_interface_send.c nxe_ip_raw_packet_source_send.c
+ nxe_udp_socket_interface_send.c nxe_udp_socket_source_send.c
+ nxde_ip_raw_packet_interface_send.c nxde_ip_raw_packet_source_send.c
+ nxde_udp_socket_interface_send.c nxde_udp_socket_source_send.c
+ nxde_icmp_interface_ping.c nxde_icmp_source_ping.c
+
+
+
+
+
+10/10/2011 NetX generic code version 5.6. This release includes the following major features:
+
+ * IPv4 and IPv6 multihome support
+ * TCP window scaling
+ * Allow applications to configure TCP Keep-alive feature on a per-socket basis
+ * Added support for TCP state change callback functions.
+ * Allow ICMP checksum operation to be removed
+ * Added support for IPsec
+
+ Files modified in order to support multihome
+ nx_api.h
+ nx_arp.h
+ nx_arp_dynamic_entries_invalidate.c
+ nx_arp_dynamic_entry_set.c
+ nx_arp_gratuitous_send.c
+ nx_arp_packet_receive.c
+ nx_arp_packet_send.c
+ nx_arp_periodic_update.c
+ nx_arp_static_entry_create.c
+ nx_icmp.h
+ nx_icmp_ping.c
+ nx_icmp_ping6.c
+ nx_icmpv6.h
+ nx_icmpv6_DAD_failure.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_process_ra.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_queued_packets.c
+ nx_icmpv6_send_rs.c
+ nx_icmpv5_packet_process.c
+ nx_igmp.h
+ nx_igmp_multicast_check.c
+ nx_igmp_multicast_join.c
+ nx_igmp_multicast_leave.c
+ nx_ip.h
+ nx_ip_create.c
+ nx_ip_delete.c
+ nx_ip_dispatch_process.c
+ nx_ip_driver_direct_command.c
+ nx_ip_fragment_packet.c
+ nx_ip_gateway_address_set.c
+ nx_ip_max_payload_size_find.c
+ nx_ip_packet_receive.c
+ nx_ip_packet_send.c
+ nx_ip_status_check.c
+ nx_ip_thread_entry.c
+ nx_ip_static_route_add.c
+ nx_ipv4.h
+ nx_ipv4_packet_receive.c
+ nx_ipv6.h
+ nx_ipv6_address_find_prefix.c
+ nx_ipv6_fragment_process.c
+ nx_ipv6_multicast.c
+ nx_ipv6_packet_receive.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_prefix_list_delete_entry.c
+ nx_nd_cache.h
+ nx_nd_cache_add.c
+ nx_packet_allocate.c
+ nx_packet_copy.c
+ nx_ram_network_driver.c
+ nx_tcp_fast_periodic_processing.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_ack.c
+ nx_tcp_packet_send_fin.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_socket_mss_set.c
+ nx_tcp_socket_send.c
+ nx_tcp_socket_state_transmit_check.c
+ nx_udp.h
+ nx_udp_socket_create.c
+ nxd_ip_raw_packet_send.c
+ nxd_ipv6_default_router_add.c
+ nxd_ipv6_router_solicitation_check.c
+ nxd_nd_cache_entry_set.c
+ nxd_nd_cache_ip_address_find.c
+ nxd_udp_socket_send.c
+ nxde_ipv6_default_router_add.c
+ nxde_nd_cache_entry_set.c
+ nxde_nd_cache_ip_address_find.c
+ nxe_arp_gratuitous_send.c
+ nxe_igmp_multicast_join.c
+ nxe_ip_gateway_address_set.c
+ nxe_ip_status_check.c
+ nxe_tcp_socket_send.c
+
+ Files changed to allow optionally exclude the ICMPv6 Error Messages feature
+ nx_icmpv6.h
+ nx_icmpv6_send_error_message.c
+ nx_ip_dispatch_process.c
+ nx_ip_fragment_assembly.c
+ nx_ip_fragment_timeout_check.c
+ nx_ipv6_process_fragment_option.c
+ nx_ipv6_process_routing_option.c
+ nx_udp_packet_receive.c
+ nx_user.h
+
+ Files changed to support TCP window scaling:
+ nx_tcp.h
+ nx_tcp_mss_option_get.c
+ nx_tcp_packet_process.c
+ nx_tcp_packet_send_ack.c
+ nx_tcp_packet_send_fin.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_socket_create.c
+ nx_tcp_socket_send.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_data_check.c
+ nx_tcp_socket_state_syn_sent.c
+ nx_tcp_socket_state_syn_received.c
+ nx_user.h
+ nxe_tcp_socket_create.c
+
+
+ Files changed to support per-socket keepalive option:
+ nx_tcp_periodic_processing.c
+ nx_tcp_socket_create.c
+ nx_tcp_socket_state_ack_check.c
+ nx_tcp_socket_state_established.c
+ nx_tcp_socket_state_syn_received.c
+ nx_tcp_socket_state_syn_sent.c
+
+ Files changed to support TCP state change callback functions:
+ nx_tcp.h
+ nx_tcp_socket_connection_reset.c
+ nx_tcp_socket_create.c
+ nx_tcp_socket_state_fin_wait1.c
+ nx_tcp_socket_state_fin_wait2.c
+ nx_tcp_socket_state_last_ack.c
+ nx_tcp_socket_state_syn_received.c
+
+ Added a check to make sure this function only operates on an entry owned by ip_ptr.
+ nx_nd_cache_fast_periodic_update.c
+ nx_nd_cache_find_entry_by_mac_addr.c
+ nx_nd_cache_find_entry_and_add.c
+ nx_nd_cache_find_entry.c
+ nx_nd_cache_slow_periodic_update.c
+
+ Files changed to allow ICMP checksum operation to be removed:
+ nx_icmp_ping.c
+ nx_icmpv4_packet_process.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_send_ns.c
+ nx_icmpv6_send_rs.c
+
+
+ Files changed to support IPsec:
+ nx_icmp_ping.c
+ nx_icmpv4_packet_process.c
+ nx_icmpv6_DAD_clear_NDCache_entry.c
+ nx_icmpv6_DAD_failure.c
+ nx_icmpv6_packet_process.c
+ nx_icmpv6_perform_DAD.c
+ nx_icmpv6_process_echo_reply.c
+ nx_icmpv6_process_echo_request.c
+ nx_icmpv6_process_na.c
+ nx_icmpv6_process_ns.c
+ nx_icmpv6_send_error_message.c
+ nx_icmpv6_validate_neighbor_message.c
+ nx_ip_dispatch_process.c
+ nx_ip_max_payload_size_find.c
+ nx_ip_packet_send.c
+ nx_ip_thread_entry.c
+ nx_ipv4_packet_receive.c
+ nx_ipv6_packet_send.c
+ nx_ipv6_perform_min_path_MTU_discovery.c
+ nx_packet_allocate.c
+ nx_packet_copy.c
+ nx_tcp_no_connection_reset.c
+ nx_tcp_packet_send_ack.c
+ nx_tcp_packet_send_fin.c
+ nx_tcp_packet_send_rst.c
+ nx_tcp_packet_send_syn.c
+ nx_tcp_socket_create.c
+ nx_tcp_socket_send_internal.c
+ nx_udp_packet_receive.c
+ nxd_udp_socket_send.c
+ nxe_ip_max_payload_size_find.c
+
+ Other modified files:
+ nx_api.h Added macro NX_PACKET_HEADER_PAD_SIZE to allow an application
+ to specify the number of ULONG words padded towards the end of the
+ NX_PACKET structure, giving the starting address of the paylaod
+ area to a desired alignment.
+ nx_icmpv6_dest_table_find.c Allowed this function to update the path MTU information
+ nx_icmpv6_destination_table_periodic_update.c
+ Upadted the path MTU logic, optimized the search process
+ nx_icmpv6_perform_DAD.c Added an option that allows caller to specify an IPv6 address for DAD.
+ nx_icmpv6_process_echo_reply.c Added ICMP statistical counter, removed ICMP header before passing the packet
+ to the thread
+ nx_icmpv6_process_na.c Optimized the NA packet process
+ nx_icmpv6_process_ra.c Optimized the destination table operation, added ICMP counters
+ nx_icmpv6_process_redirect.c Added ICMP statistical counter, optimized internal operation
+ nx_igmp_loopback_disable.c Added mutex protection
+ nx_igmp_loopback_enable.c Added mutex protection
+ nx_igmp_packet_process.c Allowed IGMP statistical counters to be compiled out,
+ impoved the handling of IGMPv1 packets
+ nx_ip_address_change_notify.c Added mutex protection
+ nx_ip_address_get.c Added mutex protection
+ nx_ip_address_set.c Added mutex protection
+ nx_ip_checksum_compute.c Fixed a compiler warning when the IPv6 feature is not enabled
+ nx_ip_delete.c: Clear the nx_ip_id field after the IP internal is cleaned up.
+ nx_ip_gateway_address_set.c Added missing mutex release if no interface found, allow the gateway to be cleared
+ nx_ip_fragment_assembly.c Improved fragment matching per RFC 791, fixed a compiler warning
+ nx_ip_packet_receive.c Added VOID* cast to avoid compiler warnings.
+ nx_ip_packet_send.c Added check for non null packet interface or next hop (e.g. gateway)
+ Fixed a bug where the prepend_ptr was incorrectedly adjusted before
+ calling nx_packet_transmit_release.
+ nx_ipv6.h Added and modified internal API prototypes
+ nx_ipv6_fragment_process.c Release all fragments when discarding a fragment
+ Added counter for total_fragments sent.
+ nx_ipv6_packet_send.c Fixed a bug where the prepend_ptr was incorrectedly adjusted before
+ calling nx_packet_transmit_release.
+ nx_ipv6_util.h Optimized internal operations, added a check for the FF05:: multicast range
+ nx_ip_status_check.c: Added the configurable wait option NX_IP_STATUS_CHECK_WAIT_TIME
+ nx_ipv6_option_error.c simplify the logic
+ nx_ipv6_packet_copy.c Fixed a compiler warning
+ nx_nd_cache_delete_internal.c Optimized the destination table search process
+ nx_packet_release Removed an IPv6 conditional compilation so the IP version field is cleaned up
+ nx_rarp_packet_receive.c Added initialization to avoid compiler warnings
+ nx_tcp_mss_option_get.c Corrected the logic in the option length calculation.
+ nx_tcp_no_connection_reset.c Added a parameter to indicate source IPv6 address to use when sending the RST packet.
+ nx_tcp_packet_send_ack.c Skip TCP checksum calculation if the feature is turned off.
+ nx_tcp_packet_send_fin.c Skip TCP checksum calculation if the feature is turned off.
+ nx_tcp_packet_send_rst.c Skip TCP checksum calculation if the feature is turned off.
+ nx_tcp_packet_send_syn.c Skip TCP checksum calculation if the feature is turned off.
+ nx_tcp_socket_packet_process.c Added check for acceptable RST, moved TCP header optino process into nx_tcp_packet_process
+ nx_tcp_periodic_process.c Added per-socket keep-alive feature.
+ nx_tcp_socket_receive Optimized internal logic, added netX trace event
+ Modified logic to always return a packet in the receive queue regardless of the TCP socket state
+ nx_tcp_server_socket_accept.c Clean up the socket data structure before responding to a new conenction.
+ nx_tcp_socket_state_closing.c Validate the ACK and SEQ number before closing down the socket
+ nx_tcp_socket_state_ack_check.c Fixed a corner case where the ACK number was incorrectly checked
+ Fixed another corner case when determining if packets can be released from the transmit queue
+ where the transmit window is wrapped.
+ nx_udp_packet_receive.c Optimized internal operations
+ nx_udp_socket_bytes_available: Modified output to error status if the socket port is not bound, corrected return value, fixed comiler warnings
+ nx_udp_socket_receive.c Removed redundant calls to checksum
+ nx_user.h Added options to remove ICMP checksum computation
+ nxd_icmp_enable.c Added mutex protection, optimized initilization process
+ nxd_ipv6_find_max_prefix_length.c Optimized the search algorithm
+ nxd_ipv6_prefix_router_timer_tick.c Clean up the destination table when a router times out
+ nxd_ipv6_router_lookup.c Check nd_cache_entry being valid before dereferencing it,
+ nxd_ipv6_router_solicitation_check.c Check router entry valid before updating its timer value optimized the router table search algorithm
+ nxd_ipv6_search_onlink.c Also search manually configured Ipv6 addresses for onlink nodes
+ nxd_nd_cache_entry_delete.c Make sure the ND cache entry exists before deleting it, also invalidated the destination table entry
+ nxd_tcp_client_socket_connect.c Do socket cleanup before sending the SYN packet
+ nxde_ip_raw_packet_send.c Added more error checking logic
+ nxde_udp_socket_send.c Added more error checking logic
+ nxe_ip_gateway_address_set.c Removed a requirement that ARP be enabled before setting IPv4 gateway address and
+ removed requirement that the service must be called from a thread
+ nxe_ip_max_payload_size_find.c Replaced source address with an index to the source address
+ nxe_ip_static_route_add.c Added a check to make sure the next hop address is directly reachable.
+ nxe_ip_static_route_delete.c Removed unused code
+ nxe_packet_release.c Removed unreachable code
+ nxe_packet_transmit_release.c Removed unreachable code
+
+
+ Files added:
+ demo_netx_duo_multihome_tcp.c
+ demo_netx_duo_multihome_udp.c
+ nx_icmp_interface_ping6.c
+ nx_icmpv6_dest_table_add.c
+ nx_icmpv6_process_packet_too_big.c
+ nx_igmp_multicast_interface_join.c
+ nx_ip_driver_interface_direct_command.c
+ nx_ip_interface_address_get.c
+ nx_ip_interface_address_set.c
+ nx_ip_interface_attach.c
+ nx_ip_interface_info_get.c
+ nx_ip_interface_status_check.c
+ nx_ip_raw_packet_interface_send.c
+ nx_ip_route_find.c
+ nx_nd_cache_add_entry.c
+ nx_packet_data_extract_offset.c
+ nx_tcp_socket_disconnect_complete_notify.c
+ nx_tcp_socket_establish_notify.c
+ nx_tcp_socket_send_internal.c
+ nx_tcp_socket_timed_wait_callback.c
+ nx_tcp_window_scaling_option_get.c
+ nx_udp_packet_info_extract.c
+ nx_udp_socket_interface_send.c
+ nxd_icmp_interface_ping.c
+ nxd_ip_raw_packet_interface_send.c
+ nxd_ipv6_address_delete.c
+ nxd_ipv6_address_get.c
+ nxd_ipv6_address_set.c
+ nxd_ipv6_default_router_get.c
+ nxd_udp_socket_interface_send.c
+ nxde_icmp_interface_ping.c
+ nxde_ip_raw_packet_interface_send.c
+ nxde_ipv6_address_delete.c
+ nxde_ipv6_address_get.c
+ nxde_ipv6_address_set.c
+ nxde_ipv6_default_router_get.c
+ nxde_udp_packet_info_extract.c
+ nxde_udp_socket_interface_send.c
+ nxe_icmp_interface_ping6.c
+ nxe_igmp_multicast_interface_join.c
+ nxe_ip_driver_interface_direct_command.c
+ nxe_ip_interface_address_get.c
+ nxe_ip_interface_address_set.c
+ nxe_ip_interface_attach.c
+ nxe_ip_interface_info_get.c
+ nxe_ip_interface_status_check.c
+ nxe_ip_raw_packet_interface_send.c
+ nxe_packet_data_extract_offset.c
+ nxe_tcp_socket_disconnect_complete_notify.c
+ nxe_tcp_socket_establish_notify.c
+ nxe_tcp_socket_timed_wait_callback.c
+ nxe_udp_packet_info_extract.c
+ nxe_udp_socket_interface_send.c
+
+
+ Files removed:
+ nx_icmpv6_dest_table_find_and_add.c
+ nx_icmpv6_dest_table_find_and_add.c
+ nx_ip_static_routing_disable.c
+ nx_ip_static_routing_enable.c
+ nx_ipv6_process_packet_too_big.c
+ nx_nd_cache_find_entry_and_add.c
+ nxd_ipv6_interface_address_get.c
+ nxd_ipv6_interface_address_set.c
+ nxd_ipv6_linklocal_address_get.c
+ nxd_ipv6_linklocal_address_set.c
+ nxd_udp_socket_set_interface.c
+ nxde_ipv6_interface_address_get.c
+ nxde_ipv6_interface_address_set.c
+ nxde_ipv6_linklocal_address_get.c
+ nxde_ipv6_linklocal_address_set.c
+ nxde_udp_socket_set_interface.c
+ nxe_ip_static_routing_disable.c
+ nxe_ip_static_routing_enable.c,
+
+
+06/01/2010 NetX generic code version 5.5. This release includes the following major features:
+ Path MTU Discovery and IPv6 Advertised Link MTU
+ Internal debug modules removed (replaced with TraceX events)
+
+ Other modifications are:
+
+ nx_icmpv6_process_ra.c Path MTU support
+ Fixed bug in Neighbor Discovery cache processing
+ nx_icmpv6_process_redirect.c Path MTU support
+ nx_icmpv6_send_error_message.c Path MTU support
+ nx_icmpv6_send_queued_packets.c Path MTU support
+ Fixed a bug where NA packet is received how queued packets requiring fragmentation are sent
+ nx_ip_static_route_add.c Renamed define NX_IP_STATIC_ROUTING_SUPPORTED to NX_ENABLE_IP_STATIC_ROUTING
+ nx_ip_static_route_delete.c Renamed define NX_IP_STATIC_ROUTING_SUPPORTED to NX_ENABLE_IP_STATIC_ROUTING
+ nx_ip_static_route_find.c Renamed define NX_IP_STATIC_ROUTING_SUPPORTED to NX_ENABLE_IP_STATIC_ROUTING
+ nx_ip_static_route_enable.c Renamed define NX_IP_STATIC_ROUTING_SUPPORTED to NX_ENABLE_IP_STATIC_ROUTING
+ nx_ip_static_route_disable.c Renamed define NX_IP_STATIC_ROUTING_SUPPORTED to NX_ENABLE_IP_STATIC_ROUTING
+ nx_ip_thread_entry.c Path MTU support
+ nx_ipv6_packet_send.c Path MTU support
+ Added a check if source and destination IP addresses are the same as part of Denial of service attack,
+ Added check for suitable next hop; no packet transmitted if not found by routing algorithm */
+ Fixed bug how multicast packets are detected
+ nx_tcp_packet_process.c Modified RST packets sent in response to invalid data packets to include proper ACK number
+ nx_tcp_packet_send_rst.c Send a RST with proper ACK number in response to invalid data packet.
+ nx_tcp_socket_packet_process.c Removed duplicate logic that detects and sets MSS number from peer
+ Added logic for sending ACKs for out-of-order packet
+ Added check for duplicated SYNs
+ nx_tcp_socket_state_data_check.c Modified to send ACKs for out-of-order data packets
+ modified handling invalid RST control message
+ Added check for duplicated incoming SYNs
+ Fixed bug (corner case) handling overlapping sequence numbers
+ Make _nx_tcp_socket_state_data_trim and _nx_tcp_socket_state_data_trim_front
+ non-static function.
+ nx_tcp_socket_state_syn_sent.c Modified detection and handling of unacceptable ACK before sending RST packet
+ nxd_icmp_enable.c Path MTU support
+ nxd_ipv6_enable.c Replaced literal router solicitation parameters with macros defined in nx_user.h
+ nxd_ipv6_find_max_prefix_length.c Optimized the prefix match algorithm
+ nxd_udp_socket_send.c Corrected placement of IPSec ENABLED conditional code,
+ Added check for IPv6 logical outgoing interface
+ nxe_ip_static_routing_disable.c Renamed define NX_IP_STATIC_ROUTING_SUPPORTED to NX_ENABLE_IP_STATIC_ROUTING
+ nxe_ip_static_routing_enable.c Renamed define NX_IP_STATIC_ROUTING_SUPPORTED to NX_ENABLE_IP_STATIC_ROUTING
+ nx_icmpv6.h Path MTU support
+ nx_nd_cache.h Removed unused defines for Router and ND protocols
+ nx_user.h Added #defines for router solicitation parameters
+ Added NX_PACKET_HEADER_PAD_SIZE to pad towards the end of the NX_PACKET structure.
+
+
+11/23/2009 NetX generic code version 5.4. This release includes the following major features:
+ Multiple IPv6 address support added
+ Path MTU and IPv6 Advertised Link MTU support removed
+
+ Other modifications are:
+
+ nx_ip_fragment_assembly.c Added check for invalid length (exceed maximum size limit)
+ nx_ip_max_payload_size.c New API:computes max packet payload that will not require fragmentation
+ nx_ip_packet_send.c Corrected NX_IP_LIMITIED_BROADCAST to NX_IP_LIMITED_BROADCAST as destination IP
+ nx_ipv6_packet_receive.c Added support for multiple IPv6 addresses
+ nx_ipv6_packet_send.c Made packet fragmentation conditional; if not enabled and fragmentation is required drop the packet
+ Added mutex protection around Neighbor Discovery cache table operations
+ nx_ipv6_utils.c Fixed bug in IPv6_Address_Type() for detecting multicast address type
+ nx_tcp_no_connection_reset.c For socket in CLOSED state, RST packet sequence number set to incoming ACK number
+ nx_tcp_fast_periodic_processing.c Replaced reference to primary IP global address with transmit socket outgoing interface address
+ nx_tcp_packet_process.c Added call to nxd_tcp_no_connection_reset depending if IPv6 is enabled on the IP instance if a RST
+ must be sent
+ Update the socket outgoing interface to the received packet interface
+ nx_tcp_packet_send_ack.c Added support for multiple IPv6 addresses
+ nx_tcp_packet_send_fin.c Added support for multiple IPv6 addresses
+ nx_tcp_packet_send_rst.c Added support for multiple IPv6 addresses
+ nx_tcp_packet_send_syn.c Added support for multiple IPv6 addresses
+ nx_tcp_socket_create.c Initialize socket outgoing interface with NULL instead of IP global address
+ nx_tcp_socket_send.c Added support for multiple IPv6 addresses
+ nx_tcp_socket_state_data_check.c Fixed minor compiler warning with conditional coding around IP block pointer declaration
+ nx_tcp_socket_state_transmit_check.c Renamed nx_tcp_window_update_callback_notify with nx_tcp_socket_window_update_notify
+ Added support for multiple IPv6 addresses
+ nx_tcp_socket_window_update_notify_set.c Renamed file from nx_tcp_socket_window_notify to nx_tcp_socket_window_notify_set
+ nx_udp_socket_create.c Initialize socket outgoing interface with NULL instead of IP global address
+ nx_udp_socket_receive.c Corrected placement of conditional #defines around extracting packet source and destination address
+ nx_udp_source_extract.c Modified for performing IPv4 packet extraction only
+ nxd_icmp_enable.c Removed path MTU support
+ nxd_icmp_ping.c Added check for IPv6 enabled for sending IPv6 echo request packets
+ nxd_ipv6_enabled.c Send an error status return if not IPv6 enabled
+ nxd_ipv6_find_max_prefix_length.c New function: finds the longest matching prefix between two IPv6 addresses
+ nxd_ipv6_interface_address_get.c New API: returns IPv6 address and prefix length based in the input interface index
+ nxd_ipv6_interface_address_set.c New API: Sets the IPv6 address and prefix length of the input interface index
+ nxd_ipv6_interface_find.c Added multiple IPv6 address support
+ nxd_ipv6_linklocal_address_get.c Replace reference to obsoleted IP link local address with IP instance zero index interface (designated
+ link local)
+ nxd_ipv6_linklocal_address_get.c Replace reference to obsoleted IP link local address with IP instance zero index interface (designated
+ link local)
+ nxd_ipv6_raw_packet_send_internal.c Added check for valid IP instance outgoing interface for packet destination
+ nx_nd_cache_entry_delete.c Added TraceX support
+ nxd_tcp_client_socket_connect.c Added support for multiple IPv6 addresses
+ nxd_tcp_socket_peer_info_get.c Added TraceX support
+ nxd_udp_socket_send.c Added support for multiple IPv6 addresses
+ nxd_udp_socket_set_interface.c Added support for multiple IPv6 addresses
+ nxd_udp_source_extract.c Optimized the logic for retrieving the IP address
+ nxde_ipv6_default_router_add.c Updated call to nxd_ipv6_default_router_add() based on changes to that function
+ nxde_udp_source_extract.c Added check for packet with invalid IP header
+ nxe_udp_source_extract.c Added check for packet with invalid IP header
+ nx_nd_cache.h Declared two new API, _nxd_nd_cache_entry_delete and _nxd_nd_cache_entry_set
+ nx_tcp.h Declared new API, _nxd_tcp_no_connection_reset
+ nx_user.h Removed NX_DISABLE_IPV6_PATH_MTU_DISCOVERY
+
+
+
+08/03/2009 NetX generic code version 5.3. This release includes the following major features:
+ Trace Events support
+ IPSec support
+ IGMP version 2 support
+
+ Other modifications are:
+
+ nx_igmp_enable.c IGMPv2 support
+ nx_igmp_multicast_leave.c IGMPv2 support
+ nx_igmp_packet_process.c IGMPv2 support
+ nx_igmp_periodic_processing.c IGMPv2 support
+ nx_ip_checksum_compute.c When adding last byte to the checksum,
+ cast the byte to unsigned short
+ nx_ip_fragment_assembly.c Fixed a packet size computation bug
+ nx_ip_packet_send.c Use nx_ip_packet_deferred_receive for loopback
+ nx_ipv6_packet_send.c Use nx_ip_packet_deferred_receive for loopback
+ nx_ip_thread_entry.c Added IPv6 destination table support
+ nx_tcp_socket_state_data_check.c Optimized TCP out-of-order data receive logic
+ Added support for TCP congestion avoidance
+ nx_tcp_socket_state_syn_received.c Added support for TCP congestion avoidance
+ nx_tcp_socket_state_syn_sent.c Added support for TCP congestion avoidance
+ nx_tcp_socket_state_transmit_check.c Added support for TCP congestion avoidance
+ nx_tcp_socket_windows_update_notify.c Added support for TCP congestion avoidance
+ nxd_tcp_client_socket_connect.c Revised TCP loopback connection handling
+ nx*.h Modified comment(s).
+ nx*.c Modified comment(s).
+
+12/30/2007 Initial NetX Duo generic code version 5.2. This release is based on NetX 5.1 for IPv4 support,
+ with features developed for IPv6.
+
+
+2. NetXDuo Secure
+
+08/15/2019 NX Secure generic code version 5.12. This release includes the
+ following major features:
+
+ Files are modified to store cipher suite pointer in the session:
+ nx_secure_dtls_hash_record.c
+ nx_secure_dtls_process_clienthello.c
+ nx_secure_dtls_send_serverhello.c
+ nx_secure_dtls_server_handshake.c
+ nx_secure_dtls_verify_mac.c
+ nx_secure_tls.h
+ nx_secure_tls_finished_hash_generate.c
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_generate_premaster_secret.c
+ nx_secure_tls_hash_record.c
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_process_server_key_exchange.c
+ nx_secure_tls_process_serverhello.c
+ nx_secure_tls_process_serverhello_extensions.c
+ nx_secure_tls_record_hash_calculate.c
+ nx_secure_tls_record_hash_initialize.c
+ nx_secure_tls_record_hash_update.c
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_record_payload_encrypt.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_tls_send_record.c
+ nx_secure_tls_send_server_key_exchange.c
+ nx_secure_tls_send_serverhello.c
+ nx_secure_tls_server_handshake.c
+ nx_secure_tls_session_iv_size_get.c
+ nx_secure_tls_session_keys_set.c
+ nx_secure_tls_session_reset.c
+ nx_secure_tls_verify_mac.c
+
+ Files are modified to optimize RAM usage for remote certificates by
+ utilizing otherwise unused space in the TLS packet reassembly buffer
+ and parsing the certificates directly within the reassembly buffer:
+ nx_secure_tls.h
+ nx_secure_tls_process_record.c
+ nx_secure_tls_process_remote_certificate.c
+ nx_secure_tls_remote_certificate_allocate.c
+ nx_secure_tls_remote_certificate_free_all.c
+ nx_secure_tls_session_packet_buffer_set.c
+ nx_secure_tls_session_receive_records.c
+ nx_secure_tls_session_x509_client_verify_configure.c
+ nx_secure_x509.h
+ nxe_secure_tls_session_x509_client_verify_configure.c
+
+ Files are modified to add TLS session intialization checking:
+ nx_secure_tls.h
+ nx_secure_tls_session_create.c
+ nx_secure_tls_session_delete.c
+ nx_secure_tls_session_reset.c
+ nxe_secure_dtls_client_protocol_version_override.c
+ nxe_secure_dtls_client_session_start.c
+ nxe_secure_dtls_packet_allocate.c
+ nxe_secure_dtls_psk_add.c
+ nxe_secure_dtls_server_session_send.c
+ nxe_secure_dtls_server_session_start.c
+ nxe_secure_dtls_session_client_info_get.c
+ nxe_secure_dtls_session_end.c
+ nxe_secure_dtls_session_local_certificate_add.c
+ nxe_secure_dtls_session_local_certificate_remove.c
+ nxe_secure_dtls_session_receive.c
+ nxe_secure_dtls_session_reset.c
+ nxe_secure_dtls_session_send.c
+ nxe_secure_dtls_session_start.c
+ nxe_secure_dtls_session_trusted_certificate_add.c
+ nxe_secure_dtls_session_trusted_certificate_remove.c
+ nxe_secure_tls_active_certificate_set.c
+ nxe_secure_tls_client_psk_set.c
+ nxe_secure_tls_local_certificate_add.c
+ nxe_secure_tls_local_certificate_find.c
+ nxe_secure_tls_local_certificate_remove.c
+ nxe_secure_tls_packet_allocate.c
+ nxe_secure_tls_psk_add.c
+ nxe_secure_tls_remote_certificate_allocate.c
+ nxe_secure_tls_remote_certificate_buffer_allocate.c
+ nxe_secure_tls_remote_certificate_free_all.c
+ nxe_secure_tls_server_certificate_add.c
+ nxe_secure_tls_server_certificate_find.c
+ nxe_secure_tls_server_certificate_remove.c
+ nxe_secure_tls_session_alert_value_get.c
+ nxe_secure_tls_session_certificate_callback_set.c
+ nxe_secure_tls_session_client_callback_set.c
+ nxe_secure_tls_session_client_verify_disable.c
+ nxe_secure_tls_session_client_verify_enable.c
+ nxe_secure_tls_session_end.c
+ nxe_secure_tls_session_packet_buffer_set.c
+ nxe_secure_tls_session_protocol_version_override.c
+ nxe_secure_tls_session_receive.c
+ nxe_secure_tls_session_renegotiate.c
+ nxe_secure_tls_session_renegotiate_callback_set.c
+ nxe_secure_tls_session_reset.c
+ nxe_secure_tls_session_send.c
+ nxe_secure_tls_session_server_callback_set.c
+ nxe_secure_tls_session_sni_extension_parse.c
+ nxe_secure_tls_session_sni_extension_set.c
+ nxe_secure_tls_session_start.c
+ nxe_secure_tls_session_time_function_set.c
+ nxe_secure_tls_session_x509_client_verify_configure.c
+ nxe_secure_tls_trusted_certificate_add.c
+ nxe_secure_tls_trusted_certificate_remove.c
+
+
+ Files are modified to fix DTLS version handling:
+ nx_secure_dtls_send_clienthello.c
+ nx_secure_dtls_send_helloverifyrequest.c
+ nx_secure_dtls_server_handshake.c
+ nx_secure_dtls_session_start.c
+
+ Files are modified to improve informational error return codes for
+ easier debugging of TLS errors:
+ nx_secure_dtls_client_handshake.c
+ nx_secure_dtls_process_clienthello.c
+ nx_secure_dtls_send_clienthello.c
+ nx_secure_dtls_send_serverhello.c
+ nx_secure_dtls_server_handshake.c
+ nx_secure_tls.h
+ nx_secure_tls_map_error_to_alert.c
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_process_finished.c
+ nx_secure_tls_process_server_key_exchange.c
+ nx_secure_tls_process_serverhello_extensions.c
+ nx_secure_tls_server_handshake.c
+ nx_secure_tls_ecc_generate_premaster_secret.c
+ nx_secure_tls_ecc_process_certificate_verify.c
+ nx_secure_tls_ecc_process_client_key_exchange.c
+ nx_secure_tls_ecc_process_server_key_exchange.c
+ nx_secure_tls_ecc_send_certificate_verify.c
+ nx_secure_tls_ecc_send_server_key_exchange.c
+
+ Files are added or modified for the new API
+ "nx_secure_tls_session_alert_value_get":
+ nx_secure_dtls_process_record.c
+ nx_secure_tls.h
+ nx_secure_tls_api.h
+ nx_secure_tls_session_alert_value_get.c
+ nx_secure_tls_session_start.c
+ nxe_secure_tls_session_alert_value_get.c
+
+ Files are modified to provide consistent error checking of return
+ values from generic NX_CRYPTO cipher routine APIs:
+ nx_secure_dtls_hash_record.c
+ nx_secure_tls_client_handshake.c
+ nx_secure_tls_finished_hash_generate.c
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_handshake_hash_init.c
+ nx_secure_tls_hash_record.c
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_tls_server_handshake.c
+ nx_secure_tls_session_keys_set.c
+ nx_secure_tls_session_reset.c
+ nx_secure_x509_certificate_verify.c
+ nx_secure_x509_crl_verify.c
+
+ Files are modified to improve the error return code when the
+ TLS crypto key buffer is too small for the chosen ciphersuite:
+ nx_secure_tls.
+ nx_secure_tls_session_keys_set.c
+
+ Files are modified to improve packet length verification:
+ nx_secure_dtls_send_clienthello.c
+ nx_secure_dtls_send_serverhello.c
+ nx_secure_tls_ecc_generate_keys.c
+ nx_secure_tls_ecc_send_client_key_exchange.c
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_send_clienthello.c
+ nx_secure_tls_send_serverhello.c
+
+ Files are modified to add caller checking:
+ nxe_secure_tls_active_certificate_set.c
+ nxe_secure_tls_client_psk_set.c
+ nxe_secure_tls_local_certificate_add.c
+ nxe_secure_tls_local_certificate_find.c
+ nxe_secure_tls_local_certificate_remove.c
+ nxe_secure_tls_metadata_size_calculate.c
+ nxe_secure_tls_packet_allocate.c
+ nxe_secure_tls_psk_add.c
+ nxe_secure_tls_remote_certificate_allocate.c
+ nxe_secure_tls_remote_certificate_buffer_allocate.c
+ nxe_secure_tls_remote_certificate_free_all.c
+ nxe_secure_tls_server_certificate_add.c
+ nxe_secure_tls_server_certificate_find.c
+ nxe_secure_tls_server_certificate_remove.c
+ nxe_secure_tls_session_certificate_callback_set.c
+ nxe_secure_tls_session_client_callback_set.c
+ nxe_secure_tls_session_client_verify_disable.c
+ nxe_secure_tls_session_client_verify_enable.c
+ nxe_secure_tls_session_create.c
+ nxe_secure_tls_session_delete.c
+ nxe_secure_tls_session_end.c
+ nxe_secure_tls_session_packet_buffer_set.c
+ nxe_secure_tls_session_protocol_version_override.c
+ nxe_secure_tls_session_receive.c
+ nxe_secure_tls_session_renegotiate.c
+ nxe_secure_tls_session_renegotiate_callback_set.c
+ nxe_secure_tls_session_reset.c
+ nxe_secure_tls_session_send.c
+ nxe_secure_tls_session_server_callback_set.c
+ nxe_secure_tls_session_sni_extension_parse.c
+ nxe_secure_tls_session_sni_extension_set.c
+ nxe_secure_tls_session_start.c
+ nxe_secure_tls_session_time_function_set.c
+ nxe_secure_tls_session_x509_client_verify_configure.c
+ nxe_secure_tls_trusted_certificate_add.c
+ nxe_secure_tls_trusted_certificate_remove.c
+ nxe_secure_x509_certificate_initialize.c
+ nxe_secure_x509_common_name_dns_check.c
+ nxe_secure_x509_crl_revocation_check.c
+ nxe_secure_x509_dns_name_initialize.c
+ nxe_secure_x509_extended_key_usage_extension_parse.c
+ nxe_secure_x509_extension_find.c
+ nxe_secure_x509_key_usage_extension_parse.c
+
+ Files are modified to fix static anaylsis reports:
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_process_remote_certificate.c
+ nx_secure_tls_session_packet_buffer_set.c
+ nx_secure_tls_ecc_generate_keys.c
+ nx_secure_tls_ecc_send_server_key_exchange.c
+
+ Files are modified to correct self-signed certificate verification
+ and support duplicate certificates sent by a remote host:
+ nx_secure_tls_process_remote_certificate.c
+ nx_secure_x509_certificate_chain_verify.c
+
+ Files are modified to provide RFC 7507 version fallback SCSV support:
+ nx_secure_tls_process_clienthello.c
+ nx_secure_dtls_process_clienthello.c
+ nx_secure_dtls_send_clienthello.c
+ nx_secure_tls.h
+ nx_secure_tls_map_error_to_alert.c
+ nx_secure_tls_newest_supported_version.c
+ nx_secure_tls_protocol_version_get.c
+ nx_secure_tls_send_clienthello.c
+ nx_secure_tls_send_serverhello_extensions.c
+ nx_secure_tls_session_reset.c
+
+ Files are modified to improve packet length verification:
+ nx_secure_dtls_allocate_handshake_packet.c
+ nx_secure_dtls_packet_allocate.c
+ nx_secure_dtls_process_record.c
+ nx_secure_dtls_process_receive_callback.c
+ nx_secure_dtls_send_helloverifyrequest.c
+ nx_secure_dtls_send_record.c
+ nx_secure_dtls_send_serverhello.c
+ nx_secure_dtls_session_end.c
+ nx_secure_dtls_session_receive.c
+ nx_secure_dtls_session_start.c
+ nx_secure_tls.h
+ nx_secure_tls_allocate_handshake_packet.c
+ nx_secure_tls_client_psk_set.c
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_generate_premaster_secret.c
+ nx_secure_tls_packet_allocate.c
+ nx_secure_tls_process_clienthello_extensions.c
+ nx_secure_tls_process_serverhello.c
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_send_certificate.c
+ nx_secure_tls_send_certificate_request.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_changecipherspec.c
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_tls_send_clienthello.c
+ nx_secure_tls_send_clienthello_extensions.c
+ nx_secure_tls_send_finished.c
+ nx_secure_tls_send_record.c
+ nx_secure_tls_send_server_key_exchange.c
+ nx_secure_tls_send_serverhello.c
+ nx_secure_tls_send_serverhello_extensions.c
+ nx_secure_tls_session_receive_records.c
+ nx_secure_tls_verify_mac.c
+
+ Files are modified to add buffer boundary checking in ASN.1 parsing:
+ nx_secure_x509.c
+ nx_secure_x509.h
+ nx_secure_x509_asn1_tlv_block_parse.c
+ nx_secure_x509_certificate_revocation_list_parse.c
+ nx_secure_x509_crl_revocation_check.c
+ nx_secure_x509_distinguished_name_parse.c
+ nx_secure_x509_extended_key_usage_extension_parse.c
+ nx_secure_x509_extension_find.c
+ nx_secure_x509_key_usage_extension_parse.c
+ nx_secure_x509_pkcs1_rsa_private_key_parse.c
+ nx_secure_x509_pkcs7_decode.c
+ nx_secure_x509_subject_alt_names_find.c
+
+ Files are added to support DTLS:
+ nx_secure_dtls.h
+ nx_secure_dtls_api.h
+ nx_secure_dtls_allocate_handshake_packet.c
+ nx_secure_dtls_client_handshake.c
+ nx_secure_dtls_client_protocol_version_override.c
+ nx_secure_dtls_client_session_start.c
+ nx_secure_dtls_hash_record.c
+ nx_secure_dtls_initialize.c
+ nx_secure_dtls_packet_allocate.c
+ nx_secure_dtls_process_clienthello.c
+ nx_secure_dtls_process_handshake_header.c
+ nx_secure_dtls_process_header.c
+ nx_secure_dtls_process_helloverifyrequest.c
+ nx_secure_dtls_process_record.c
+ nx_secure_dtls_psk_add.c
+ nx_secure_dtls_receive_callback.c
+ nx_secure_dtls_retransmit.c
+ nx_secure_dtls_retransmit_queue_flush.c
+ nx_secure_dtls_send_clienthello.c
+ nx_secure_dtls_send_handshake_record.c
+ nx_secure_dtls_send_helloverifyrequest.c
+ nx_secure_dtls_send_record.c
+ nx_secure_dtls_send_serverhello.c
+ nx_secure_dtls_server_create.c
+ nx_secure_dtls_server_delete.c
+ nx_secure_dtls_server_handshake.c
+ nx_secure_dtls_server_local_certificate_add.c
+ nx_secure_dtls_server_local_certificate_remove.c
+ nx_secure_dtls_server_notify_set.c
+ nx_secure_dtls_server_protocol_version_override.c
+ nx_secure_dtls_server_psk_add.c
+ nx_secure_dtls_server_session_send.c
+ nx_secure_dtls_server_session_start.c
+ nx_secure_dtls_server_start.c
+ nx_secure_dtls_server_stop.c
+ nx_secure_dtls_server_trusted_certificate_add.c
+ nx_secure_dtls_server_trusted_certificate_remove.c
+ nx_secure_dtls_server_x509_client_verify_configure.c
+ nx_secure_dtls_server_x509_client_verify_disable.c
+ nx_secure_dtls_session_cache.c
+ nx_secure_dtls_session_client_info_get.c
+ nx_secure_dtls_session_create.c
+ nx_secure_dtls_session_delete.c
+ nx_secure_dtls_session_end.c
+ nx_secure_dtls_session_local_certificate_add.c
+ nx_secure_dtls_session_local_certificate_remove.c
+ nx_secure_dtls_session_receive.c
+ nx_secure_dtls_session_reset.c
+ nx_secure_dtls_session_send.c
+ nx_secure_dtls_session_start.c
+ nx_secure_dtls_session_trusted_certificate_add.c
+ nx_secure_dtls_session_trusted_certificate_remove.c
+ nx_secure_dtls_verify_mac.c
+ nxe_secure_dtls_client_protocol_version_override.c
+ nxe_secure_dtls_client_session_start.c
+ nxe_secure_dtls_packet_allocate.c
+ nxe_secure_dtls_psk_add.c
+ nxe_secure_dtls_server_create.c
+ nxe_secure_dtls_server_delete.c
+ nxe_secure_dtls_server_local_certificate_add.c
+ nxe_secure_dtls_server_local_certificate_remove.c
+ nxe_secure_dtls_server_notify_set.c
+ nxe_secure_dtls_server_protocol_version_override.c
+ nxe_secure_dtls_server_psk_add.c
+ nxe_secure_dtls_server_session_send.c
+ nxe_secure_dtls_server_session_start.c
+ nxe_secure_dtls_server_start.c
+ nxe_secure_dtls_server_stop.c
+ nxe_secure_dtls_server_trusted_certificate_add.c
+ nxe_secure_dtls_server_trusted_certificate_remove.c
+ nxe_secure_dtls_server_x509_client_verify_configure.c
+ nxe_secure_dtls_server_x509_client_verify_disable.c
+ nxe_secure_dtls_session_client_info_get.c
+ nxe_secure_dtls_session_create.c
+ nxe_secure_dtls_session_delete.c
+ nxe_secure_dtls_session_end.c
+ nxe_secure_dtls_session_local_certificate_add.c
+ nxe_secure_dtls_session_local_certificate_remove.c
+ nxe_secure_dtls_session_receive.c
+ nxe_secure_dtls_session_reset.c
+ nxe_secure_dtls_session_send.c
+ nxe_secure_dtls_session_start.c
+ nxe_secure_dtls_session_trusted_certificate_add.c
+ nxe_secure_dtls_session_trusted_certificate_remove.c
+
+ Files are modified to fix compiler errors when NX_SECURE_X509_DISABLE_CRL is defined:
+ nx_secure_x509.h
+ nx_secure_x509_certificate_revocation_list_parse.c
+ nx_secure_x509_crl_revocation_check.c
+ nx_secure_x509_crl_verify.c
+ nx_secure_x509_ecc_certificate_revocation_list_parse.c
+ nx_secure_x509_ecc_crl_verify.c
+
+ Files are modified to support AES-GCM cipher:
+ nx_secure_crypto_method_self_test_aes.c
+ nx_secure_crypto_table_self_test.c
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_record_payload_encrypt.c
+
+ Files are modified to fix swapped PSK identity and hint parameters
+ when sending to the remote host:
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_tls_send_server_key_exchange.c
+
+ Files are modified to fix Session ID handling problem (session ID
+ length is always 0 in the initial ServerHello):
+ nx_secure_tls_send_serverhello.c
+
+ Files are modified to update scratch buffers to support the new
+ default 4096-bit RSA key size:
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_client_key_exchange.c
+
+ Files are modified to fix issue with processing CertificateVerify
+ messages in a TLS Server with Client X.509 Certificate
+ verification enabled:
+ nx_secure_tls_process_remote_certificate.c
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_remote_certificate_verify.c
+ nx_secure_tls_server_handshake.c
+
+ Files are added to support new API for allocating buffer space
+ for incoming remote certificates:
+ nx_secure_tls_remote_certificate_buffer_allocate.c
+ nxe_secure_tls_remote_certificate_buffer_allocate.c
+
+ Files are modified to support new API for allocating buffer space
+ for incoming remote certificates:
+ nx_secure_tls.h
+ nx_secure_tls_api.h
+
+ Files are added to support new API for configuring Client X.509
+ authentication for TLS servers:
+ nx_secure_tls_session_x509_client_verify_configure.c
+ nxe_secure_tls_session_x509_client_verify_configure.c
+
+ Files are modified to support new API for Client X.509 authentication:
+ nx_secure_tls.h
+ nx_secure_tls_api.h
+
+ Files are modified to clear cryptographic secret data on errors:
+ nx_secure_tls_session_receive_records.c
+ nx_secure_tls_session_send.c
+
+ Files are modified to assure that random number values are always cast
+ to 32-bit type or smaller:
+ nx_secure_tls_generate_premaster_secret.c
+
+ Files are modified to assure that CBC padding values are properly checked:
+ nx_secure_tls_record_payload_decrypt.c
+
+ Files are modified to assure that MAC hash checking happens even if
+ decryption padding checking fails:
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_process_record.c
+
+ Files are modified to free all allocated remote certificates in a
+ TLS server session as soon as certificate chain validation is
+ complete. TLS clients need the remote certificates until after
+ the key echange is complete so they are cleared later:
+ nx_secure_tls_process_remote_certificate.c
+ nx_secure_tls_send_client_key_exchange.c
+
+ Files are modified to fix the usage of crypto metadata for hash method:
+ nx_secure_tls_local_certificate_add.c
+ nx_secure_tls_process_remote_certificate.c
+ nx_secure_tls_remote_certificate_verify.c
+ nx_secure_tls_session_create.c
+ nx_secure_tls_trusted_certificate_add.c
+ nx_secure_x509.h
+ nx_secure_x509_certificate_verify.c
+ nx_secure_x509_crl_verify.c
+
+ Files are modified to support AEAD cipher:
+ nx_secure_tls.h
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_record_payload_encrypt.c
+
+ Files are modified to reset TLS session state if the TLS connection fails:
+ nx_secure_tls_session_end.c
+ nx_secure_tls_session_start.c
+
+ Files are modified to return errors if cryptographic routines are
+ improperly initialized:
+ nx_secure_tls.h
+ nx_secure_tls_finished_hash_generate.c
+ nx_secure_tls_process_finished.c
+
+ Files are modified to support elliptic curve cryptography:
+ nx_secure_tls.h
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_process_server_key_exchange.c
+ nx_secure_tls_process_serverhello_extensions.c
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_tls_send_clienthello_extensions.c
+ nx_secure_tls_send_server_key_exchange.c
+ nx_secure_tls_send_serverhello_extensions.c
+ nx_secure_dtls_process_clienthello.c
+ nx_secure_dtls_send_clienthello.c
+ nx_secure_dtls_send_serverhello.c
+
+ Files are added or modified to optimize the logic:
+ nx_secure_tls_client_handshake.c
+ nx_secure_tls_payload_encrypt.c
+ nx_secure_tls_process_clienthello_extensions.c
+ nx_secure_tls_process_record.c
+ nx_secure_tls_send_certificate.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_tls_send_clienthello.c
+ nx_secure_tls_send_clienthello_extensions.c
+ nx_secure_tls_send_serverhello.c
+ nx_secure_tls_send_serverhello_extensions.c
+ nx_secure_tls_server_handshake.c
+ nx_secure_tls_session_create.c
+ nx_secure_x509.c
+ nx_secure_x509_certificate_chain_verify.c
+
+ Files are modified to add wait_option to _nx_secure_tls_send_certificate:
+ nx_secure_dtls_client_handshake.c
+ nx_secure_dtls_server_handshake.c
+ nx_secure_tls.h
+ nx_secure_tls_client_handshake.c
+ nx_secure_tls_send_certificate.c
+ nx_secure_tls_server_handshake.c
+
+ Files are modified to fix renegotiation issue with certain browsers due to both
+ SCSV and the Secure Renegotiation extension being required (should be either/or):
+ nx_secure_tls.h
+ nx_secure_tls_map_error_to_alert.c
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_process_clienthello_extensions.c
+ nx_secure_tls_process_serverhello_extensions.c
+ nx_secure_tls_session_renegotiate.c
+ nx_secure_tls_session_reset.c
+
+ Files are modified about server state processing:
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_process_finished.c
+ nx_secure_tls_server_handshake.c
+ nx_secure_dtls_server_handshake.c
+
+ Files are modified to add flexibility of using macros instead of direct C library function calls:
+ nx_secure_dtls_client_handshake.c
+ nx_secure_dtls_hash_record.c
+ nx_secure_dtls_packet_allocate.c
+ nx_secure_dtls_process_clienthello.c
+ nx_secure_dtls_process_clienthello.c
+ nx_secure_dtls_process_header.c
+ nx_secure_dtls_process_helloverifyrequest.c
+ nx_secure_dtls_process_record.c
+ nx_secure_dtls_send_clienthello.c
+ nx_secure_dtls_send_helloverifyrequest.c
+ nx_secure_dtls_send_record.c
+ nx_secure_dtls_send_serverhello.c
+ nx_secure_dtls_server_handshake.c
+ nx_secure_dtls_session_cache.c
+ nx_secure_dtls_session_create.c
+ nx_secure_dtls_session_reset.c
+ nx_secure_dtls_session_send.c
+ nx_secure_dtls_verify_mac.c
+ nx_secure_tls.h
+ nx_secure_tls_client_handshake.c
+ nx_secure_tls_client_psk_set.c
+ nx_secure_tls_finished_hash_generate.c
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_generate_premaster_secret.c
+ nx_secure_tls_key_material_init.c
+ nx_secure_tls_local_certificate_remove.c
+ nx_secure_tls_packet_allocate.c
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_process_changecipherspec.c
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_process_finished.c
+ nx_secure_tls_process_remote_certificate.c
+ nx_secure_tls_process_serverhello.c
+ nx_secure_tls_process_serverhello_extensions.c
+ nx_secure_tls_psk_add.c
+ nx_secure_tls_psk_find.c
+ nx_secure_tls_record_payload_encrypt.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_clienthello.c
+ nx_secure_tls_send_finished.c
+ nx_secure_tls_send_serverhello.c
+ nx_secure_tls_session_create.c
+ nx_secure_tls_session_keys_set.c
+ nx_secure_tls_session_reset.c
+ nx_secure_tls_session_sni_extension_parse.c
+ nx_secure_tls_verify_mac.c
+ nx_secure_x509_certificate_initialize.c
+ nx_secure_x509_certificate_revocation_list_parse.c
+ nx_secure_x509_certificate_verify.c
+ nx_secure_x509_crl_revocation_check.c
+ nx_secure_x509_distinguished_name_compare.c
+ nx_secure_x509_dns_name_initialize.c
+ nx_secure_x509_oid_parse.c
+
+ Files are modified to add extension hook:
+ nx_secure_tls.h
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_generate_premaster_secret.c
+ nx_secure_tls_process_certificate_request.c
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_process_clienthello_extensions.c
+ nx_secure_tls_process_serverhello_extensions.c
+ nx_secure_tls_process_server_key_exchange.c
+ nx_secure_tls_send_certificate_request.c
+ nx_secure_x509.h
+ nx_secure_x509_crl_verify.c
+
+ Files are modified to properly initialize the crypto control block and pass crypto handled
+ into crypto internal functions:
+ nx_secure_tls.h
+ nx_secure_tls_finished_hash_generate.c
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_handshake_hash_init.c
+ nx_secure_tls_handshake_hash_update.c
+ nx_secure_tls_hash_record.c
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_process_serverhello_extensions.c
+ nx_secure_tls_process_server_key_exchange.c
+ nx_secure_tls_record_hash_initialize.c
+ nx_secure_tls_record_hash_update.c
+ nx_secure_x509_certificate_verify.c
+ nx_secure_x509_crl_verify.c
+
+ Files are modified to clear encryption key and other secret data:
+ nx_secure_dtls_send_record.c
+ nx_secure_dtls_session_end.c
+ nx_secure_dtls_session_receive.c
+ nx_secure_dtls_session_start.c
+ nx_secure_tls_client_handshake.c
+ nx_secure_tls_finished_hash_generate.c
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_handshake_process.c
+ nx_secure_tls_hash_record.c
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_process_record.c
+ nx_secure_tls_record_hash_calculate.c
+ nx_secure_tls_record_payload_encrypt.c
+ nx_secure_tls_send_record.c
+ nx_secure_tls_session_receive.c
+ nx_secure_tls_session_receive_records.c
+ nx_secure_tls_session_renegotiate.c
+ nx_secure_x509_crl_verify.c
+
+ Files are added for crypto method self test:
+ nx_secure_crypto_method_self_test_3des.c
+ nx_secure_crypto_method_self_test_aes.c
+ nx_secure_crypto_method_self_test_des.c
+ nx_secure_crypto_method_self_test_hmac_md5.c
+ nx_secure_crypto_method_self_test_hmac_sha.c
+ nx_secure_crypto_method_self_test_md5.c
+ nx_secure_crypto_method_self_test_prf.c
+ nx_secure_crypto_method_self_test_rsa.c
+ nx_secure_crypto_method_self_test_sha.c
+ nx_secure_crypto_rng_self_test.c
+ nx_secure_crypto_table_self_test.c
+ nx_secure_crypto_table_self_test.h
+
+ Other modified files:
+ nx_secure_dtls_process_clienthello.c Adjusted the function name.
+ nx_secure_dtls_send_clienthello.c Fixed endian issue.
+ nx_secure_module_hash_compute.c Compute the hash value of module.
+ nx_secure_tls_ecc_send_client_key_exchange.c Fixed swapped PSK identity and hint parameters.
+ nx_secure_tls_process_record.c Removed unused function parameter (internal API).
+ nx_secure_tls_session_receive_records.c Removed unused function parameter (internal API).
+ nx_secure_tls.h Supported ECC ciphersuite.
+ Disabled AEAD by default.
+ nx_secure_tls_api.h Modified the format slightly.
+ nx_secure_tls_check_protocol_version.c Fix compiler errors for position independence.
+ nx_secure_tls_ecc_process_certificate_request.c Fix the issue with no client certificate added.
+ nx_secure_tls_finished_hash_generate.c Fixed the function pointer checking.
+ nx_secure_tls_generate_keys.c Rearranged code sequence for static analysis.
+ nx_secure_tls_generate_premaster_secret.c Rearranged code sequence for static analysis.
+ nx_secure_tls_metadata_size_calculate.c Fixed the usage of crypto metadata for hash method.
+ nx_secure_tls_newest_supported_version.c Moved version override support to a separate API.
+ nx_secure_tls_process_certificate_verify.c Fixed compiler warnings.
+ nx_secure_tls_process_client_key_exchange.c Used random premaster for incorrect message.
+ Fixed endian issue.
+ nx_secure_tls_process_clienthello.c Corrected the index of compress method.
+ nx_secure_tls_process_clienthello_extensions.c Added buffer size checking.
+ nx_secure_tls_process_record.c Modified the format slightly.
+ nx_secure_tls_process_server_key_exchange.c Fixed endian issue.
+ nx_secure_tls_process_serverhello_extensions.c Fixed compiler warnings.
+ nx_secure_tls_protocol_version_get.c Moved version override support to a separate API.
+
+ nx_secure_tls_record_payload_decrypt.c Modified the format slightly.
+ Fixed compiler issues.
+ nx_secure_tls_record_payload_encrypt.c Added CBC mode checking for chained packet.
+ Fixed packet buffer overflow while padding for AES-CBC.
+ nx_secure_tls_remote_certificate_buffer_allocate.c
+ Rearranged code sequence for static analysis.
+ nx_secure_tls_send_clienthello_extensions.c Send ClientHello extensions.
+ nx_secure_tls_send_record.c Skipped the hash when it was not required.
+ nx_secure_tls_send_server_key_exchange.c Fixed endian issue.
+ nx_secure_tls_send_serverhello_extensions.c Send ServerHello extensions.
+ nx_secure_tls_send_serverhello.c Fixed compiler warnings.
+ nx_secure_tls_session_create.c Fixed the usage of crypto metadata for hash method.
+ nx_secure_tls_session_iv_size_get.c Fixed IV size for TLS 1.0.
+ nx_secure_tls_session_keys_set.c Rearranged code sequence for static analysis.
+ nx_secure_tls_session_reset.c Optimized the logic.
+ nx_secure_tls_session_time_function_set.c Set a function pointer to get the current time.
+ nx_secure_tls_verify_mac.c Supported zero-length TLS application data records.
+ nx_secure_x509.c Fixed issues with parsing offsets and
+ version check in parsing unique IDs.
+ nx_secure_x509.h Fixed compiler warnings.
+ nx_secure_x509_certificate_revocation_list_parse.c
+ Improved CRL parsing.
+ nx_secure_x509_certificate_initialize.c Released mutex when return.
+ nx_secure_x509_oid_parse.c Fix compiler errors for position independence.
+ nx_secure_x509_pkcs1_rsa_private_key_parse.c Removed obsolete comment.
+ nxe_secure_tls_remote_certificate_buffer_allocate.c
+ Rearranged code sequence for static analysis.
+ nxe_secure_tls_session_create.c Checked duplicate creation.
+ nxe_secure_tls_session_delete.c Verified the session before it is deleted.
+
+ Files renamed:
+
+ File Name in Release 5.11 File Name in Release 5.12
+ nx_secure_tls_session_timestamp_function_set.c nx_secure_tls_session_time_function_set.c
+ nxe_secure_tls_session_timestamp_function_set.c nxe_secure_tls_session_time_function_set.c
+
+12/15/2017 NX Secure generic code version 5.11. This release includes the
+ following major features:
+
+ Session renegotiation and the Secure Renegotiation Indication extension
+ Full TLS session renegotiation is now supported, along with the
+ Secure Renegotiation Indication extension which prevents certain
+ Man-in-the-Middle attacks against renegotiation.
+
+ Certificate verification callback
+ Added support to allow application to perform additional checks on
+ a certificate provided by a remote host during the TLS handshake utilizing
+ a user-supplied callback.
+
+ Session callbacks for TLS Client and TLS Server
+ Added support to allow the application to process TLS extensions following
+ the reception of a Hello message from the remote host. This allows for
+ the application to respond to extensions requiring decisions such as
+ the Server Name Indication (SNI) extension which allows a client to specify
+ the name of the server it wishes to connect with.
+
+ Multiple Server Certificate support
+ Added new API to support adding multiple device identity certificates,
+ possibly with the same Subject (Common Name, etc.) using a new unique
+ numeric identifier (supplied by the application). This allows a TLS server
+ to host multiple identity certificates and choose an approriate certificate
+ to send to a connecting client. Used with the TLS Server session callback,
+ the application can search for the appropriate certificate during the TLS
+ handshake, and the numeric identifier allows for name conflicts between
+ multiple server certificates used for the same device.
+
+ Server Name Indication TLS extension
+ Added support for the TLS Server Name Indication (SNI) extension. This
+ extension allows a client to specify the server with which it is trying
+ to connect, allowing the server to select parameters and credentials
+ in the case where a single endpoint services multiple different server
+ identities.
+
+ X.509 Certificate Revocation List parsing
+ Added support for X.509 CRLs. A new API (used with the certificate verification
+ callback) is provided to check revocation status for certificates recieved
+ during the TLS handshake.
+
+ X.509 Key Usage and Extended Key Usage extensions support
+ Added helper functions to allow an application to check the Key Usage
+ and Extended Key Usage extensions in the certificate verification callback.
+ The extensions allow an application to determine if a certificate supplied
+ by a remote host is valid for a particular operation (e.g. identifying a
+ TLS server).
+
+ DNS verification
+ Added support for checking the URL top-level domain name for a remote host
+ against the certificate provided by that remote host. A new API (used
+ with the certificate verification callback) is provided to compare the TLD
+ name of the URL used to access a host with the Common Name and subjectAltName
+ DNSName fields in the X.509 certificate provided by the remote host.
+
+ Vendor-defined private key types
+ Added support for private key types beyond the standard DER-encoded RSA
+ keys. Vendor-defined private keys will be passed directly to the hardware
+ driver for the appropriate cryptographic operations, with the assumption
+ that all parsing, unwrapping, and processing of those keys will be handled
+ by the hardware or hardware driver.
+
+ Files are modified or added to add session callbacks:
+ nx_secure_tls.h
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_session_client_callback_set.c
+ nx_secure_tls_process_serverhello.c
+ nx_secure_tls_session_server_callback_set.c
+ nxe_secure_tls_session_client_callback_set.c
+ nxe_secure_tls_session_server_callback_set.c
+
+ Files are modified to match the certificate ID:
+ nx_secure_tls_local_certificate_remove.c
+ nx_secure_tls_trusted_certificate_remove.c
+ nx_secure_x509.h
+ nx_secure_x509_certificate_chain_verify.c
+ nx_secure_x509_certificate_list_add.c
+ nx_secure_x509_certificate_list_find.c
+ nx_secure_x509_certificate_list_remove.c
+ nx_secure_x509_local_device_certificate_get.c
+ nx_secure_x509_store_certificate_find.c
+ nx_secure_x509_store_certificate_add.c
+ nx_secure_x509_store_certificate_remove.c
+
+ Files are modified or added to support multiple extensions:
+ nx_secure_tls.h
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_process_clienthello_extensions.c
+ nx_secure_tls_process_serverhello.c
+ nx_secure_tls_process_serverhello_extensions.c
+ nx_secure_tls_session_sni_extension_parse.c
+ nx_secure_tls_session_sni_extension_set.c
+ nxe_secure_tls_session_sni_extension_parse.c
+ nxe_secure_tls_session_sni_extension_set.c
+
+ Files are modified or added to support DTLS:
+ nxe_secure_dtls_packet_allocate.c
+ nxe_secure_dtls_session_create.c
+ nxe_secure_dtls_session_delete.c
+ nxe_secure_dtls_session_end.c
+ nxe_secure_dtls_session_receive.c
+ nxe_secure_dtls_session_reset.c
+ nxe_secure_dtls_session_send.c
+ nxe_secure_dtls_session_start.c
+ nx_secure_dtls_allocate_handshake_packet.c
+ nx_secure_dtls_api.h
+ nx_secure_dtls_client_handshake.c
+ nx_secure_dtls.h
+ nx_secure_dtls_hash_record.c
+ nx_secure_dtls_packet_allocate.c
+ nx_secure_dtls_process_clienthello.c
+ nx_secure_dtls_process_handshake_header.c
+ nx_secure_dtls_process_header.c
+ nx_secure_dtls_process_helloverifyrequest.c
+ nx_secure_dtls_process_record.c
+ nx_secure_dtls_retransmit.c
+ nx_secure_dtls_retransmit_queue_flush.c
+ nx_secure_dtls_send_clienthello.c
+ nx_secure_dtls_send_handshake_record.c
+ nx_secure_dtls_send_helloverifyrequest.c
+ nx_secure_dtls_send_record.c
+ nx_secure_dtls_send_serverhello.c
+ nx_secure_dtls_server_handshake.c
+ nx_secure_dtls_session_cache.c
+ nx_secure_dtls_session_create.c
+ nx_secure_dtls_session_delete.c
+ nx_secure_dtls_session_end.c
+ nx_secure_dtls_session_receive.c
+ nx_secure_dtls_session_reset.c
+ nx_secure_dtls_session_send.c
+ nx_secure_dtls_session_start.c
+ nx_secure_dtls_verify_mac.c
+ nx_secure_tls_check_protocol_version.c
+ nx_secure_tls_finished_hash_generate.c
+ nx_secure_tls_handshake_hash_update.c
+ nx_secure_tls_newest_supported_version.c
+ nx_secure_tls_process_certificate_request.c
+ nx_secure_tls_send_certificate_verify.c
+
+ Files are modified or added to optimize the logic:
+ nx_secure_tls_client_handshake.c
+ nx_secure_tls_ciphersuite_lookup.c
+ nx_secure_tls_finished_hash_generate.c
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_handshake_process.c
+ nx_secure_tls_key_material_init.c
+ nx_secure_tls_process_certificate_request.c
+ nx_secure_tls_process_certificate_verify.c
+ nx_secure_tls_process_changecipherspec.c
+ nx_secure_tls_process_header.c
+ nx_secure_tls_process_remote_certificate.c
+ nx_secure_tls_send_alert.c
+ nx_secure_tls_send_certificate.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_changecipherspec.c
+ nx_secure_tls_send_clienthello.c
+ nx_secure_tls_send_record.c
+ nx_secure_tls_send_server_key_exchange.c
+ nx_secure_tls_send_serverhello.c
+ nx_secure_tls_server_handshake.c
+ nx_secure_tls_session_create.c
+ nx_secure_tls_session_iv_size_get.c
+ nx_secure_tls_session_keys_set.c
+ nx_secure_tls_session_start.c
+ nx_secure_tls_verify_mac.c
+ nx_secure_x509_certificate_list_find.c
+ nx_secure_x509_remote_endpoint_certificate_get.c
+ nx_secure_x509_store_certificate_add.c
+ nxe_secure_tls_packet_allocate.c
+ nxe_secure_tls_session_create.c
+
+ Files are modified or added to support renegotiation:
+ nx_secure_tls.h
+ nx_secure_tls_client_handshake.c
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_process_finished.c
+ nx_secure_tls_send_clienthello.c
+ nx_secure_tls_send_finished.c
+ nx_secure_tls_send_hellorequest.c
+ nx_secure_tls_send_serverhello.c
+ nx_secure_tls_session_receive.c
+ nx_secure_tls_session_receive_records.c
+ nx_secure_tls_session_renegotiate.c
+ nx_secure_tls_session_renegotiation_callback_set.c
+ nx_secure_tls_session_reset.c
+ nxe_secure_tls_session_renegotiate.c
+ nxe_secure_tls_session_renegotiation_callback_set.c
+
+ Files are modified to support more ciphersuites:
+ nx_secure_tls.h
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_record_payload_encrypt.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_tls_send_clienthello.c
+
+ Files are modified to support ECJPAKE for DTLS:
+ nx_secure_tls.h
+ nx_secure_tls_generate_keys.c
+ nx_secure_tls_generate_premaster_secret.c
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_process_server_key_exchange.c
+ nx_secure_tls_psk_add.c
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_tls_send_server_key_exchange.c
+ nxe_secure_tls_psk_add.c
+
+ Files are modified to fix compiler warnings:
+ nx_secure_tls_process_clienthello.c
+ nx_secure_tls_record_payload_decrypt.c
+ nx_secure_tls_remote_certificate_verify.c
+ nx_secure_tls_send_certificate.c
+ nx_secure_tls_session_end.c
+ nx_secure_x509.c
+ nx_secure_x509_certificate_chain_verify.c
+ nx_secure_x509_certificate_list_add.c
+ nx_secure_x509_certificate_list_find.c
+ nx_secure_x509_certificate_list_remove.c
+ nx_secure_x509_certificate_verify.c
+ nx_secure_x509_remote_endpoint_certificate_get.c
+
+ Files are modified to support TLS protocol version override:
+ nx_secure_tls_check_protocol_version.c
+ nx_secure_tls_newest_supported_version.c
+ nx_secure_tls_session_reset.c
+
+ Files are modified to support context specific ASN.1 tags:
+ nx_secure_x509_asn1_tlv_block_parse.c
+ nx_secure_x509_pkcs1_rsa_private_key_parse.c
+ nx_secure_x509_pkcs7_decode.c
+
+ Files are added to hash record:
+ nx_secure_tls_record_hash_calculate.c
+ nx_secure_tls_record_hash_initialize.c
+ nx_secure_tls_record_hash_update.c
+
+ Files are added to free remote certificate:
+ nx_secure_tls_remote_certificate_free.c
+ nx_secure_tls_remote_certificate_free_all.c
+ nxe_secure_tls_remote_certificate_free_all.c
+
+ Files are added to support vendor-defined private key type:
+ nx_secure_tls_process_client_key_exchange.c
+ nx_secure_tls_send_certificate_verify.c
+ nx_secure_tls_send_client_key_exchange.c
+ nx_secure_x509.c
+ nx_secure_x509_certificate_initialize.c
+ nx_secure_x509_certificate_verify.c
+ nx_secure_x509_pkcs1_rsa_private_key_parse.c
+ nxe_secure_x509_certificate_initialize.c
+
+ Files are added to support empty certificate messages:
+ nx_secure_tls_send_certificate.c
+ nx_secure_tls_send_certificate_verify.c
+
+ Files are added for server certificate API:
+ nx_secure_tls_server_certificate_add.c
+ nx_secure_tls_server_certificate_find.c
+ nx_secure_tls_server_certificate_remove.c
+ nxe_secure_tls_server_certificate_add.c
+ nxe_secure_tls_server_certificate_find.c
+ nxe_secure_tls_server_certificate_remove.c
+
+ Files are modified to add compare bit fields:
+ nx_secure_tls_send_certificate.c
+ nx_secure_x509.h
+ nx_secure_x509_certificate_chain_verify.c
+ nx_secure_x509_certificate_list_remove.c
+ nx_secure_x509_distinguished_name_compare.c
+ nx_secure_x509_remote_endpoint_certificate_get.c
+
+ Other modified files:
+ nx_secure_tls.h Supported to configure symbols for PSK buffers.
+ Sorted the functions by alphabet order.
+ nx_secure_tls_api.h Sorted the API by alphabet order.
+ nx_secure_tls_check_protocol_version.c Supported TLS protocol version override.
+ nx_secure_tls_client_handshake.c Handled the return values.
+ Fixed packet leak issue.
+ nx_secure_tls_initialize.c Fixed the function name.
+ nx_secure_port.h Fixed a typo.
+ nx_secure_tls_generate_keys.c Added additional check for missing PRF.
+ nx_secure_tls_map_error_to_alert.c Updated mapping for certificate
+ verification failure.
+ nx_secure_tls_process_client_key_exchange.c Updated to new crypto API.
+ nx_secure_tls_process_record.c Fixed record length check.
+ nx_secure_tls_psk_find.c Returned the first associated PSK when
+ no hint is received.
+ nx_secure_tls_record_payload_encrypt.c Supported data in packet chain.
+ nx_secure_tls_remote_certificate_verify.c Added expiration data check.
+ nx_secure_tls_send_certificate.c Released mutex before block operation.
+ nx_secure_tls_send_clienthello.c Supported extensions.
+ nx_secure_tls_send_handshake_record.c Released packet on error.
+ nx_secure_tls_send_record.c Let the caller release packet when TCP send failed.
+ nx_secure_tls_send_serverhello.c Supported extensions.
+ nx_secure_tls_server_handshake.c Added support for server-side client
+ certificate verification.
+ Released packet on send failed.
+ nx_secure_tls_session_end.c Improved TLS session shutdown.
+ Released packet on send failed.
+ nx_secure_tls_session_reset.c Cleaned up existing certificate.
+ nx_secure_x509.c Added support for extension parsing.
+ nx_secure_x509.h Added support for extension parsing and fixed typos for API names.
+ nx_secure_x509_certificate_list_add.c Fixed the logic to add certificate with duplicate ID.
+ nx_secure_x509_distinguished_name_compare.c Supported empty name comparison.
+ Improved the distinguished name comparison logic.
+ nx_secure_x509_find_certificate_methods.c Updated API to take an ID for the
+ algorithm desired.
+ nx_secure_x509_local_device_certificate_get.c Used pre-defined symbols instead of
+ hardcoded values.
+ nx_secure_x509_pkcs7_decode.c Fixed signature length check.
+
+ Other added files:
+ nx_secure_tls_active_certificate_set.c Set the active local certificate.
+ nx_secure_tls_local_certificate_find.c New API to find certificates by Common Name.
+ nx_secure_tls_send_certificate_request.c Populated an NX_PACKET with a CertificateRequest message.
+ nx_secure_tls_session_certificate_callback_set.c
+ Set up a function pointer that TLS will
+ invoke when a certificate is received.
+ nx_secure_tls_session_client_verify_disable.c Disabled client certificate verification.
+ nx_secure_tls_session_client_verify_enable.c Enabled client certificate verification.
+ nx_secure_tls_session_protocol_version_override.c
+ Overrided the TLS protocol version.
+ nx_secure_x509_certificate_revocation_list_parse.c
+ Supported revocation list parse.
+ nx_secure_x509_common_name_dns_check.c Checked a certificate's Common Name
+ against a Top Level Domain name (TLD).
+ nx_secure_x509_crl_revocation_check.c Supported revocation check.
+ nx_secure_x509_crl_verify.c Verified CRL.
+ nx_secure_x509_distinguished_name_parse.c Parsed a DER-encoded X.509 Distinguished Name.
+ nx_secure_x509_dns_name_initialize.c Initialized an X.509 DNS name.
+ nx_secure_x509_expiration_check.c Checked a certificate's validity period.
+ nx_secure_x509_extended_key_usage_extension_parse.c
+ Parse through an X.509 certificate for
+ an Extended KeyUsage extension.
+ nx_secure_x509_extension_find.c Added support for X.509 extension parsing.
+ nx_secure_x509_key_usage_extension_parse.c Parse through an X.509 certificate for
+ a KeyUsage extension.
+ nx_secure_x509_local_certificate_find.c Searched a given certificate store.
+ nx_secure_x509_oid_parse.c Parsed a DER-encoded Object Identifier string.
+ nx_secure_x509_subject_alt_names_find.c Searched X.509 subjectAltName.
+ nx_secure_x509_wildcard_compare.c Compared wildcard names.
+ nxe_secure_tls_active_certificate_set.c Set the active local certificate.
+ nxe_secure_tls_local_certificate_find.c New API to find local certificate by Common Name.
+ nxe_secure_tls_session_certificate_callback_set.c
+ Set up a function pointer that TLS will
+ invoke when a certificate is received.
+ nxe_secure_tls_session_client_verify_disable.c Disabled client certificate verification.
+ nxe_secure_tls_session_client_verify_enable.c Enabled client certificate verification.
+ nxe_secure_tls_session_protocol_version_override.c
+ Overrided the TLS protocol version.
+ nxe_secure_x509_common_name_dns_check.c Checked a certificate's Common Name
+ against a Top Level Domain name (TLD).
+ nxe_secure_x509_crl_revocation_check.c Supported revocation check.
+ nxe_secure_x509_dns_name_initialize.c Initialized an X.509 DNS name.
+ nxe_secure_x509_extension_find.c Added support for X.509 extension parsing.
+ nxe_secure_x509_extended_key_usage_extension_parse.c
+ Parse through an X.509 certificate for
+ an Extended KeyUsage extension.
+ nxe_secure_x509_key_usage_extension_parse.c Parse through an X.509 certificate for
+ a KeyUsage extension.
+
+ Files renamed:
+
+ File Name in Release 5.10 File Name in Release 5.11
+ nx_secure_tls_process_server_certificate.c nx_secure_tls_process_remote_certificate.c
+
+06/09/2017 Initial NX Secure generic code version 5.10.
+
+
+3. NetXDuo Secure Crypto
+
+08/15/2019 NX Secure generic code version 5.12. This release includes the
+ following major features:
+
+ Files are modified to provide consistent error checking of return
+ values from generic NX_CRYPTO cipher routine APIs:
+ nx_crypto_const.h
+ nx_crypto_drbg.c
+ nx_crypto_ecjpake.c
+ nx_crypto_ecjpake.h
+ nx_crypto_phash.c
+ nx_crypto_pkcs1_v1.5.c
+
+ Files are modified to improve error checking:
+ nx_crypto_ec.c
+ nx_crypto_ec.h
+ nx_crypto_ecdh.c
+ nx_crypto_ecdsa.c
+ nx_crypto_ecjpake.c
+
+ Files are modified to fix the compiler warnings for cast-function-type:
+ nx_crypto_3des.c
+ nx_crypto_des.c
+ nx_crypto_des.h
+ nx_crypto_md5.c
+ nx_crypto_md5.h
+ nx_crypto_sha1.c
+ nx_crypto_sha1.h
+
+ Files are modified to address issues raised by static anaylsis tools:
+ nx_crypto_aes.c
+ nx_crypto_cbc.c
+ nx_crypto_drbg.c
+ nx_crypto_ec.c
+ nx_crypto_ecjpake.c
+ nx_crypto_huge_number.c
+ nx_crypto_phash.c
+ nx_crypto_sha5.c
+
+ Files are modified to add an "extern 'C'" wrapper for C++ compilers:
+ nx_crypto.h
+ nx_crypto_3des.h
+ nx_crypto_const.h
+ nx_crypto_des.h
+ nx_crypto_ecdsa.h
+ nx_crypto_hkdf.h
+ nx_crypto_hmac_md5.h
+ nx_crypto_hmac_sha1.h
+ nx_crypto_hmac_sha2.h
+ nx_crypto_hmac_sha5.h
+ nx_crypto_md5.h
+ nx_crypto_phash.h
+ nx_crypto_pkcs1_v1.5.h
+ nx_crypto_sha1.h
+ nx_crypto_sha2.h
+ nx_crypto_sha5.h
+ nx_crypto_tls_prf_1.h
+ nx_crypto_tls_prf_sha256.h
+ nx_crypto_tls_prf_sha384.h
+ nx_crypto_tls_prf_sha512.h
+
+ Files are modified to avoid unaligned memory access:
+ nx_crypto_aes.c
+ nx_crypto_ccm.c
+ nx_crypto_ctr.c
+ nx_crypto_drbg.c
+ nx_crypto_xcbc_mac.c
+
+ Files are modified or added to be FIPS 140-2 compliant:
+ nx_crypto.h
+ nx_crypto_3des.c
+ nx_crypto_3des.h
+ nx_crypto_aes.c
+ nx_crypto_cbc.c
+ nx_crypto_cbc.h
+ nx_crypto_ccm.c
+ nx_crypto_ccm.h
+ nx_crypto_const.h
+ nx_crypto_ctr.c
+ nx_crypto_ctr.h
+ nx_crypto_des.c
+ nx_crypto_des.h
+ nx_crypto_dh.c
+ nx_crypto_dh.h
+ nx_crypto_ec.c
+ nx_crypto_ec.h
+ nx_crypto_ecjpake.c
+ nx_crypto_ecjpake.h
+ nx_crypto_generic_ciphersuites.c
+ nx_crypto_hmac.c
+ nx_crypto_hmac.h
+ nx_crypto_hmac_md5.c
+ nx_crypto_hmac_md5.h
+ nx_crypto_hmac_sha1.c
+ nx_crypto_hmac_sha1.h
+ nx_crypto_hmac_sha2.c
+ nx_crypto_hmac_sha2.h
+ nx_crypto_hmac_sha5.c
+ nx_crypto_hmac_sha5.h
+ nx_crypto_huge_number.c
+ nx_crypto_huge_number.h
+ nx_crypto_huge_number_extended.c
+ nx_crypto_initialize.c
+ nx_crypto_md5.c
+ nx_crypto_md5.h
+ nx_crypto_method_self_test.c
+ nx_crypto_method_self_test.h
+ nx_crypto_method_self_test_3des.c
+ nx_crypto_method_self_test_aes.c
+ nx_crypto_method_self_test_des.c
+ nx_crypto_method_self_test_drbg.c
+ nx_crypto_method_self_test_ecdh.c
+ nx_crypto_method_self_test_ecdsa.c
+ nx_crypto_method_self_test_hmac_md5.c
+ nx_crypto_method_self_test_hmac_sha.c
+ nx_crypto_method_self_test_md5.c
+ nx_crypto_method_self_test_pkcs1.c
+ nx_crypto_method_self_test_prf.c
+ nx_crypto_method_self_test_rsa.c
+ nx_crypto_method_self_test_sha.c
+ nx_crypto_module_start.c
+ nx_crypto_null.h
+ nx_crypto_null_cipher.c
+ nx_crypto_phash.c
+ nx_crypto_phash.h
+ nx_crypto_pkcs1_v1.5.c
+ nx_crypto_pkcs1_v1.5.h
+ nx_crypto_rsa.c
+ nx_crypto_sha1.c
+ nx_crypto_sha1.h
+ nx_crypto_sha2.c
+ nx_crypto_sha2.h
+ nx_crypto_sha5.c
+ nx_crypto_sha5.h
+ nx_crypto_tls_prf_1.c
+ nx_crypto_tls_prf_1.h
+ nx_crypto_tls_prf_sha256.c
+ nx_crypto_tls_prf_sha256.h
+ nx_crypto_xcbc_mac.c
+ nx_crypto_xcbc_mac.h
+
+ Files are modified to add operation method for elliptic curve cryptography:
+ nx_crypto.h
+ nx_crypto_const.h
+ nx_crypto_ec.c
+ nx_crypto_ec.h
+ nx_crypto_ecjpake.c
+ nx_crypto_ecjpake.h
+ nx_crypto_generic_ciphersuites.c
+
+ Other modified files:
+ nx_crypto.h Avoided unexpected optimization on memset.
+ nx_crypto_aes.h Split operation functions for different modes.
+ nx_crypto_aes.c Split operation functions for different modes.
+ nx_crypto_const.h Set algorithm IDs to unique values.
+ nx_crypto_dh.c Fixed key length check.
+ nx_crypto_ecjpake.c Generated key pair using extra bits.
+ nx_crypto_generic_ciphersuites.c Split crypto methods to nx_crypto_methods.c,
+ remove CCM ciphersuites when AEAD was disabled.
+ nx_crypto_huge_number.c Optimized the logic.
+ nx_crypto_method_self_test_drbg.c Added return value checking of nx_crypto_init.
+ nx_crypto_rsa.h Modified to support RSA 4096 bits by default.
+ nx_crypto_generic_ciphersuites.c Removed CCM ciphersuites when AEAD was disabled.
+
+ Other added files:
+ nx_crypto_drbg.c Supported DRBG.
+ nx_crypto_drbg.h Supported DRBG.
+ nx_crypto_ecdh.c Supported ECDH.
+ nx_crypto_ecdh.h Supported ECDH.
+ nx_crypto_ecdsa.c Supported ECDSA.
+ nx_crypto_ecdsa.h Supported ECDSA.
+ nx_crypto_methods.c Split from nx_crypto_generic_ciphersuites.c
+ nx_crypto_tls_prf_sha384.c Supported PRF SHA384
+ nx_crypto_tls_prf_sha384.h Supported PRF SHA384
+ nx_crypto_tls_prf_sha512.c Supported PRF SHA512
+ nx_crypto_tls_prf_sha512.h Supported PRF SHA512
+
+12/15/2017 Initial Crypto generic code version 5.11.
+
+
+4. NetXDuo Addons
+
+Release 5.12 08-15-2019
+
+ demo_netx_auto_ip.c Improved string length verification.
+ nx_auto_ip.c Modified comments.
+ nx_auto_ip.h Modified comments.
+
+ bsd_demo_raw.c Improved string length verification.
+ bsd_demo_tcp.c Improved string length verification.
+ bsd_demo_udp.c Improved string length verification.
+ nxd_bsd.h Supported BSD raw socket.
+ Added C++ extern wrapper.
+ nxd_bsd.c Supported BSD raw socket.
+ Added mutex protection.
+ Fixed BSD time calculation.
+ Improved packet length verification.
+ Modified API functions:
+ connect - Initialized the local interface after bind.
+ getaddrinfo - Fixed NULL pointer access.
+ inet_pton - Corrected dst buffer check.
+
+ nxd_dhcp_client.c Improved string length verification.
+ Improved packet length verification.
+ Corrected the logic for checking DHCP message.
+ Fixed the outgoing interface.
+ Function is modified:
+ _nx_dhcp_client_send_with_zero_source_address()
+ Added check for invalid address.
+ nxd_dhcp_server.c Improved string length verification.
+ Corrected the interface for sending response in _nx_dhcp_respond_to_client_message().
+ demo_netxduo_dhcpv6.c Improved string length verification.
+ nxd_dhcpv6_client.c Improved string length verification.
+ Validated the available payload in _nx_dhcpv6_send_request().
+ Improved packet length verification.
+ nxd_dhcpv6_client.h Improved string length verification.
+ nxd_dhcpv6_server.c Added new APIs to improve buffer/string length verification.
+ Validated the DUID private length in _nx_dhcpv6_add_client_record().
+ Improved packet length verification.
+ nxd_dhcpv6_server.h Added new APIs to improve buffer/string length verification.
+
+ nxd_dns.h Improved internal logic.
+ nxd_dns.c Improved packet payload verification in _nx_dns_packet_pool_set().
+ Improved string length verification.
+ Functions are modified:
+ _nx_dns_cache_delete_string()
+ _nx_dns_cache_find_answer()
+ _nx_dns_host_by_address_get_internal()
+ _nx_dns_process_a_type()
+ _nx_dns_process_aaaa_type()
+ _nx_dns_process_cname_type()
+ _nx_dns_process_mx_type()
+ _nx_dns_process_ns_type()
+ _nx_dns_process_soa_type()
+ _nx_dns_process_srv_type()
+ _nx_dns_process_txt_type()
+ _nx_dns_question_add()
+ _nx_dns_send_query_by_address()
+ Improved internal logic.
+ Functions are modified:
+ _nx_dns_send_query_by_address()
+ _nx_dns_send_query_get_rdata_by_name()
+ _nx_dns_name_string_unencode()
+ _nxde_dns_host_by_name_get()
+ Fixed compiler warnings in _nx_dns_process_txt_type().
+
+ demo_netxduo_ftp.c Improved string length verification.
+ demo_netxduo_ftp_client_pasv.c Improved string length verification.
+ nxd_ftp_client.c Improved internal logic.
+ Improved string length verification.
+ Improved buffer length verification.
+ nxd_ftp_client.h Removed FileX dependency.
+ Improved string length verification.
+ nxd_ftp_server.c Fixed a bug when there were more than one connection.
+ Fixed socket state check on receiving RST packet.
+ Improved string length verification.
+ Improved buffer length verification.
+
+ nxd_http_client.h Included necessary headers.
+ Improved string length verification.
+ nxd_http_server.h Included necessary headers.
+ Improved string length verification.
+ nxd_http_client.c Added check of null pointer for username and password.
+ Improved packet length verification.
+ Improved string length verification.
+ nxd_http_server.c Fixed buffer size for DELETE method in _nx_http_server_digest_authenticate().
+ Fixed compiler warnings in _nx_http_server_hex_ascii_convert().
+ Improved logic to avoid timing attack in _nx_http_server_digest_authenticate()
+ and _nx_http_server_basic_authenticate().
+ Improved string length verification.
+ Created function nx_http_server_type_retrieve() as
+ an alternative to nx_http_server_type_get().
+ Added digest authentication callback support.
+ Improved packet length verification.
+
+ demo_netx_duo_mdns.c Added simultaneous interface support.
+ nxd_mdns.c Added local resource records as known answer.
+ Functions are modified:
+ _nx_mdns_data_send()
+ _nx_mdns_known_answer_find()
+ Initialized is_present to fix the bug for processing service change notify.
+ Functions is modified:
+ _nx_mdns_cache_add_resource_record()
+ Corrected the cache pointer.
+ Functions is modified:
+ _nx_mdns_service_lookup()
+ Added simultaneous interface support.
+ Functions are modified or added or deleted:
+ _nx_mdns_additional_a_aaaa_find()
+ _nx_mdns_additional_resource_record_find()
+ _nx_mdns_address_change_process()
+ _nx_mdns_announcing_send()
+ _nx_mdns_cache_add_resource_record()
+ _nx_mdns_cache_find_resource_record()
+ _nx_mdns_continuous_query()
+ _nx_mdns_create()
+ _nx_mdns_data_send()
+ _nx_mdns_disable()
+ _nx_mdns_enable()
+ _nx_mdns_host_address_get()
+ _nx_mdns_host_name_register()
+ _nx_mdns_known_answer_find()
+ _nx_mdns_one_shot_query()
+ _nx_mdns_packet_process()
+ _nx_mdns_packet_rr_process()
+ _nx_mdns_packet_rr_set()
+ _nx_mdns_packet_send()
+ _nx_mdns_probing_send()
+ _nx_mdns_query_check()
+ _nx_mdns_query_send()
+ _nx_mdns_response_send()
+ _nx_mdns_rr_a_aaaa_add()
+ _nx_mdns_rr_nsec_add()
+ _nx_mdns_rr_parameter_set()
+ _nx_mdns_rr_ptr_add()
+ _nx_mdns_rr_txt_add()
+ _nx_mdns_service_add()
+ _nx_mdns_service_addition_info_get()
+ _nx_mdns_service_change_notify_process()
+ _nx_mdns_service_continuous_query()
+ _nx_mdns_service_delete()
+ _nx_mdns_service_interface_delete()
+ _nx_mdns_service_lookup()
+ _nx_mdns_service_one_shot_query()
+ _nx_mdns_service_query_stop()
+ _nx_mdns_timer_event_process()
+ _nx_mdns_thread_entry()
+ _nxe_mdns_service_add()
+ Fixed compiler warnings in _nx_mdns_ipv6_address_change_notify().
+ Fixed ipv6 address string.
+ Functions are modified:
+ _nx_mdns_cache_delete_rr_string()
+ _nx_mdns_cache_find_resource_record()
+ _nx_mdns_packet_rr_data_set()
+ _nx_mdns_rr_a_aaaa_add()
+ Improve string length verification.
+ Functions are modified:
+ _nx_mdns_create()
+ _nx_mdns_disable()
+ _nxe_mdns_create()
+ _nxe_mdns_domain_name_set()
+ _nxe_mdns_service_add()
+ _nx_mdns_service_add()
+ _nxe_mdns_service_delete()
+ _nx_mdns_service_interface_delete()
+ _nxe_mdns_service_one_shot_query()
+ _nx_mdns_service_one_shot_query()
+ _nx_mdns_one_shot_query()
+ _nxe_mdns_service_continuous_query()
+ _nx_mdns_continuous_query()
+ _nxe_mdns_service_query_stop()
+ _nx_mdns_service_query_stop()
+ _nxe_mdns_service_lookup()
+ _nx_mdns_service_lookup()
+ _nxe_mdns_host_address_get()
+ _nx_mdns_host_address_get()
+ _nx_mdns_rr_ptr_add()
+ _nx_mdns_rr_srv_add()
+ _nx_mdns_rr_txt_add()
+ _nx_mdns_rr_nsec_add()
+ _nx_mdns_rr_parameter_set()
+ _nx_mdns_service_name_resolve()
+ _nx_mdns_service_name_assemble()
+ _nx_mdns_host_name_register()
+ _nx_mdns_timer_event_process()
+ _nx_mdns_probing_send()
+ _nx_mdns_packet_rr_add()
+ _nx_mdns_packet_rr_set()
+ _nx_mdns_packet_rr_process()
+ _nx_mdns_packet_rr_data_set()
+ _nx_mdns_conflict_process()
+ _nx_mdns_service_change_notify_process()
+ _nx_mdns_service_addition_info_get()
+ _nx_mdns_cache_add_resource_record()
+ _nx_mdns_cache_delete_string()
+ _nx_mdns_known_answer_find()
+ _nx_mdns_query_check()
+ _nx_mdns_service_mask_match()
+ Improve packet length verification.
+ Functions are modified:
+ _nx_mdns_packet_create()
+ _nx_mdns_packet_process()
+ nxd_mdns.h Added simultaneous interface support.
+ Fixed ipv6 address string.
+ Improve string length verification.
+
+ nxd_mqtt_client.c Corrected the mutex processing for receiving MQTT CONNACK.
+ Added packet receive notify.
+ Checked return status of TLS setup in _nxd_mqtt_client_secure_connect().
+ Deleted TLS session when disconnecting MQTT in _nxd_mqtt_process_disconnect().
+ Deleted TLS session when MQTT connect failed.
+ Improved internal logic.
+ Corrected timeout for TLS session.
+ Improved packet length verification.
+ nxd_mqtt_client.h Added packet receive notify.
+ Changed the return type of tls_setup to UINT.
+
+ demo_netx_nat.c Improved string length verification.
+
+ nxd_pop3_client.c Improved packet length verification.
+ Improved internal logic.
+ Improved string length verification.
+ nxd_pop3_client.h Improved string length verification.
+
+ demo_netx_ppp.c Improved string length verification.
+ Improved the logic.
+
+
+ nx_ppp.c Improved buffer length verification.
+ Functions are modified or added:
+ _nx_ppp_ipcp_configure_check()
+ _nx_ppp_lcp_configuration_retrieve()
+ Improved packet length verification.
+ Functions are modified or added:
+ _nx_ppp_chap_challenge_respond()
+ _nx_ppp_chap_challenge_send()
+ _nx_ppp_create()
+ _nx_ppp_ipcp_configure_check()
+ _nx_ppp_lcp_code_reject()
+ _nx_ppp_lcp_configuration_retrieve()
+ _nx_ppp_lcp_configure_reply_send()
+ _nx_ppp_pap_authentication_request()
+ _nx_ppp_ping_request()
+ _nx_ppp_receive_packet_process()
+ Improved internal logic.
+ Function is modified:
+ _nx_ppp_receive_packet_get()
+ Fixed the bug for chained packet.
+ Function is modified:
+ _nx_ppp_netx_packet_transfer()
+ Improved string length verification.
+ Functions are modified:
+ _nx_ppp_pap_authentication_request()
+ _nx_ppp_pap_login_valid()
+ _nx_ppp_chap_challenge_send()
+ _nx_ppp_chap_challenge_respond()
+ _nx_ppp_chap_challenge_validate()
+ _nx_ppp_pap_login_valid()
+ nx_ppp.h Improved string length verification.
+ Improved packet length verification.
+
+ nx_pppoe_client.c Improved string length verification.
+ Corrected the function name.
+ Improved internal logic.
+ Improved buffer length verification.
+ Fixed system state check.
+ nx_pppoe_client.h Improved internal logic.
+ Improved string length verification.
+ nx_pppoe_server.c Improved string length verification.
+ Improved buffer length verification.
+
+ nxd_smtp_client.h Improved string length verification.
+ nxd_smtp_client.c Improved string length verification.
+ Improved buffer length verification.
+
+ nxd_snmp.h Improved string length verification.
+
+ nxd_snmp.c Improved buffer length verification.
+ Improved string length verification.
+ Fixed a compiler warning.
+ Modified nx_snmp_version_3_process to check for string size before writing PDU Engine name.
+
+ demo_netxduo_sntp_client.c Fixed compiler warnings.
+ nxd_sntp_client.c Improved packet length verification.
+ Corrected the length of memset.
+ Adjusted local time before updating SNTP server time.
+ Kept microseconds precision while adding milliseconds.
+ nxd_sntp_client.h Adjusted local time before updating SNTP server time.
+
+ nxd_telnet_server.c Improved packet length verification.
+ Fixed socket state check on receiving RST packet.
+ Fixed a bug when there were more than one connection.
+
+ demo_netxduo_tftp.c Improved string length verification.
+ nxd_tftp_client.c Improved string length verification.
+ Improved packet length verification.
+ nxd_tftp_server.c Improved string length verificaiton.
+ Improved packet length verification.
+
+ demo_netxduo_https.c Improved string length verification.
+ nx_web_http_common.h Improved string length verification.
+ nx_web_http_client.c Deleted TLS session in _nx_web_http_client_error_exit().
+ Cleared request packet.
+ Functions are modified:
+ _nx_web_http_client_delete()
+ _nx_web_http_client_request_initialize()
+ _nx_web_http_client_cleanup()
+ Added check of client state in _nx_web_http_client_response_body_get().
+ Checked if request packet was allocated.
+ Functions are modified:
+ _nx_web_http_client_request_header_add()
+ _nxe_web_http_client_request_send()
+ _nx_web_http_client_request_send()
+ Improved packet length verification.
+ Fixed the issue of reconnection.
+ Improved string length verification.
+ Fixed the bug of packet release.
+ nx_web_http_client.h Included necessary headers.
+ Improved string length verification.
+ nx_web_http_server.c Check content length in _nxe_web_http_server_packet_content_find().
+ Fixed buffer size for DELETE method in _nx_web_http_server_digest_authenticate().
+ Improved logic to avoid timing attack in _nx_web_http_server_digest_authenticate()
+ and _nx_web_http_server_basic_authenticate().
+ Added digest authentication callback support.
+ Improved packet length verification.
+ Fixed return value when suffix was not found.
+ Improved string length verification.
+ Created function nx_web_http_server_type_retrieve() as
+ an alternative to nx_web_http_server_type_get().
+ nx_web_http_server.h Included necessary headers.
+ Added digest authentication callback support.
+ Improved string length verification.
+ nx_tcpserver.c Fixed socket state check on receiving RST packet.
+ Fixed session reuse issue in _nx_tcpserver_data_process().
+
+
+Release 5.11 07-15-2018
+
+ nx_auto_ip.c Modified comments.
+ nx_auto_ip.h Modified comments.
+
+ bsd_demo_raw.c Supported for disabling IPv4 feature.
+ bsd_demo_tcp.c Supported for disabling IPv4 feature.
+ bsd_demo_udp.c Supported for disabling IPv4 feature.
+ nxd_bsd.c Improved internal logic.
+ Modified API functions:
+ getaddrinfo - Fixed a bug that AF_INET info was returned even ai_family was set to AF_INET6.
+ inet_pton - Fixed compiler warnings.
+ Fixed endian issue for IPv6 address when ntohl is not defined.
+ nx_bsd_socket_set_inherited_settings - Removed NX_BSD_INHERIT_LISTENER_SOCKET_SETTINGS.
+ nx_bsd_raw_packet_info_extract - Used interface index since nx_interface_ip_instance
+ is removed from interface structure.
+ Removed NetX trace event.
+ Supported for disabling IPv4 feature.
+ Modified internal functions:
+ nx_bsd_udp_receive_notify - used API to receive UDP packet to verify checksum.
+ nx_bsd_udp_packet_received - used API to receive UDP packet to verify checksum.
+ _nxd_bsd_ipv6_packet_send - Checked interface for router lookup.
+ Moved destination and ND cache tables to IP structure.
+ nxd_bsd.h Removed NX_BSD_INHERIT_LISTENER_SOCKET_SETTINGS which is now enabled, not optional
+ and NX_BSD_TIMED_WAIT_TIMEOUT - no longer in use.
+ Used time_t from time.h.
+
+ demo_netxduo_dhcp.c Corrected the host name.
+ nxd_dhcp_client.c Returned the option value as host byte order.
+ Function is modified:
+ _nx_dhcp_interface_user_option_retrieve()
+ Fixed compiler errors when event trace is enabled.
+ Function is modified:
+ _nx_dhcp_client_send_with_zero_source_address()
+ Added a check for invalid characters in the host name.
+ Function is modified:
+ _nx_dhcp_create()
+ Improved packet length verification.
+ Function is modified:
+ _nx_dhcp_packet_process()
+ Supported for adding user supplied options.
+ Functions are added or modified:
+ _nx_dhcp_send_request_internal()
+ _nx_dhcp_user_option_add_callback_set()
+ _nxe_dhcp_user_option_add_callback_set()
+ Fixed a bug that mutex is not released before return.
+ Function is modified:
+ _nx_dhcp_client_send_with_zero_source_address()
+ nxd_dhcp_client.h Added a status for invalid characters in the host name.
+ Supported for adding user supplied options.
+ Updated the default value of NX_DHCP_CLIENT_MAX_RECORDS.
+ nxd_dhcp_server.c Fixed an error checking for interface index in _nx_dhcp_create_server_ip_address_list().
+ Removed #if 0 code for feature never implemented in
+ _nx_dhcp_server_extract_information().
+ Improved internal logic.
+ Fixed a compiler warning.
+ nxd_dhcp_server.h Removed unused symbol:NX_DHCP_CLIENT_IDENTIFIER_MAX.
+ demo_netxduo_dhcpv6.c Corrected the symbol name and value for hardware type.
+ demo_netxduo_dhcpv6_client.c Corrected the symbol name and value for hardware type.
+ nxd_dhcpv6_client.c Corrected the symbol name and value for hardware type.
+ Function is modified:
+ _nxe_dhcpv6_create_client_duid()
+ Added support for EUI-64 hardware type.
+ Functions are modified:
+ _nx_dhcpv6_add_client_duid()
+ _nx_dhcpv6_add_server_duid()
+ _nx_dhcpv6_create_client_duid()
+ _nx_dhcpv6_process_client_duid()
+ _nx_dhcpv6_process_server_duid()
+ _nxe_dhcpv6_create_client_duid()
+ Added function to set the destination address where DHCP message should be sent.
+ Functions are modified:
+ _nx_dhcpv6_client_create()
+ _nx_dhcpv6_client_set_destination_address()
+ _nxe_dhcpv6_client_set_destination_address()
+ Corrected the logic for setting the source address.
+ Function is modified:
+ _nx_dhcpv6_send_request()
+ Supported for rapid option.
+ Function is modified:
+ _nx_dhcpv6_scan_packet_options()
+ Improved packet length verification.
+ Function is modified:
+ _nx_dhcpv6_packet_process()
+ Improved internal logic.
+ Function is modified:
+ _nx_dhcpv6_add_client_ia()
+ _nx_dhcpv6_client_create()
+ _nx_dhcpv6_create_client_duid()
+ _nx_dhcpv6_get_valid_ip_address_lease_time()
+ _nx_dhcpv6_process_domain_name()
+ _nx_dhcpv6_process_server_duid()
+ _nx_dhcpv6_remove_assigned_address()
+ Added support for setting DHCPv6 server as default router.
+ Functions are modified:
+ _nx_dhcpv6_packet_process()
+ _nx_dhcpv6_register_IP_address()
+ _nx_dhcpv6_remove_assigned_address()
+ nxd_dhcpv6_server.c Fixed the bug for checking length.
+ Function is modified:
+ _nx_dhcpv6_server_process_iana()
+ Improved packet length verification.
+ Function is modified:
+ _nx_dhcpv6_listen_for_messages()
+ Improved internal logic.
+ Functions are modified:
+ _nx_dhcpv6_assign_ip_address()
+ _nx_dhcpv6_find_client_record_by_duid()
+ _nx_dhcpv6_add_ip_address_lease()
+ _nx_dhcpv6_create_ip_address_range()
+ _nx_dhcpv6_reserve_ip_address_range()
+ _nx_dhcpv6_retrieve_client_record()
+ _nx_dhcpv6_server_utility_time_randomize()
+ nxd_dhcpv6_server.h Corrected the symbol name and value for hardware type.
+
+ demo_netxduo_dns.c Supported for disabling IPv4 feature.
+ nxd_dns.c Added the check for record count pointer.
+ Functions are modified:
+ _nxe_dns_ipv4_address_by_name_get()
+ _nxde_dns_ipv6_address_by_name_get()
+ _nxe_dns_domain_name_server_get()
+ _nxe_dns_domain_mail_exchange_get()
+ _nxe_dns_domain_service_get()
+ Supported for disabling IPv4 feature.
+ Dropped the chained packet to avoid memory overflow.
+ Improved packet length verification.
+ Fixed a bug that mutex is not released before return.
+ Improved internal logic.
+ Functions are modified:
+ _nx_dns_cname_get()
+ _nx_dns_host_text_get()
+ _nx_dns_authority_zone_start_get()
+ _nx_dns_host_resource_data_by_name_get()
+ _nx_dns_response_process()
+ _nx_dns_server_remove_internal()
+ _nx_dns_process_cname_type()
+ _nx_dns_process_txt_type()
+ _nx_dns_process_soa_type()
+ _nx_dns_cache_add_string()
+ _nx_dns_cache_delete_string()
+
+ nxd_ftp_client.c Supported for disabling IPv4 feature.
+ Dropped the chained packet to avoid memory overflow.
+ Improved internal logic.
+ nxd_ftp_server.c Made the sprintf formats the same for LIST the command case in nx_ftp_server_command_process().
+ Added a sanity check for minimum packet payload size of the FTP server in _nx_ftp_server_create_internal().
+ Supported for disabling IPv4 feature.
+ Dropped the chained packet to avoid memory overflow.
+ Improved internal logic.
+ Corrected the logic for processing login/out.
+ Fixed a bug that causes crash when month is invalid.
+ nxd_ftp_server.h Created a configuration option for defining minimum FTP server packet pool payload, NX_FTP_SERVER_MIN_PACKET_PAYLOAD,
+ and created an error status NX_FTP_INSUFFICIENT_PACKET_PAYLOAD if the payload is too small.
+ Supported for disabling IPv4 feature.
+
+ demo_netxduo_http.c Supported for disabling IPv4 feature.
+ nxd_http_server.c Fixed the logic for multi packet GET request.
+ Improved internal logic.
+ nxd_http_client.c Supported for disabling IPv4 feature.
+
+ nxd_mqtt_client.c Improved packet length verification.
+ Removed the usage of global variable for MQTT client.
+ Added logic to prevent packet ID value from being zero.
+ Fixed a bug that packet may be queued by TLS and can not be received.
+ Added a symbol for user to set initial packet ID value.
+ Improved internal logic.
+ Modified _nxd_mqtt_process_disconnect to use the NXD_MQTT_SOCKET_TIMEOUT as the wait option
+ Modified _nxd_mqtt_packet_allocate to use TLS packet allocate for TLS socket. TLS packet allocate routine is able to
+ take into consideration the TLS header size, including the crypto initial vector area.
+ Modified _nxd_mqtt_client_publish to fix packet leak, and use packet append API instead of memcpy to prevent data
+ overflow the packet strcutre.
+ Modified _nxd_mqtt_client_sub_unsub to fix a ptoential packet leak under error conditions.
+ Modified _nxd_mqtt_client_disconnect to not exit if the send message calls returns an error. Added a call to delete the timer
+ so that a subsequent connect call will not error out when it tries to create the already existing timer.
+ Modified _nxd_mqtt_thread_entry to delete the TCP socket. Added logic to check if
+ timer, event flag group are already deleted before deleting. Moved the socket delete call to the end of the function
+ Modified _nxd_mqtt_client_create to create the socket instead of in the connect call. Delete the MQTT thread if an error occurs.
+ Modified _nxd_mqtt_client_connect to remove the socket create call, and removed socket delete calls where an error is handled.
+ Delete the timer if an error occurs. Replaced NX_WAIT_FOREVER with NXD_MQTT_SOCKET_TIMEOUT on the socket receive calls.
+ Modified _nxd_mqtt_client_delete to wait for the nxd_mqtt_client_thread_entry to complete processing the DELETE event.
+ Modified _nxde_mqtt_client_login_set to allow user to set username but not password.
+ Added call to delete the MQTT thread after the DELETE event is finished processing.
+ Supported user defined memory functions.
+ Added symbols NXD_MQTT_REQUIRE_TLS, NXD_MQTT_SECURE_MEMCPY, NXD_MQTT_SECURE_MEMCMP, NXD_MQTT_SECURE_MEMSET, NXD_MQTT_SECURE_MEMMOVE for
+ security requirement.
+ Checked topic name and message lengths in runtime.
+ Allowed zero length of username and password.
+ nxd_mqtt_client.h Added NXD_MQTT_SOCKET_TIMEOUT to put a finite timeout for nx_tcp_socket_disconnect.
+ The default value is NX_WAIT_FOREVER so no difference in behavior should be observed.
+ Supported user defined memory functions.
+
+ nx_nat.c Set different timeout for TCP and non-TCP seesion.
+ Functions are modified:
+ _nx_nat_inbound_entry_find()
+ _nx_nat_outbound_entry_find()
+ Added support for replacement when cache is full.
+ Function is modified:
+ _nx_nat_entry_create()
+ Corrected the logic for appending the overflowing data to the new packet.
+ Function is modified:
+ _nx_nat_ip_packet_send()
+ Improved packet length verification.
+ Function is modified:
+ _nx_nat_process_packet()
+ nx_nat.h Added symbols for TCP and non-TCP session timeout.
+ Added NX_NAT_ENABLE_REPLACEMENT.
+
+ demo_netxduo_pop3_client.c Increased packet payload to 1460 from 500, and clear final_packet local variable in
+ the loop that iterates to capture all the packets in a mail item.
+
+ nxd_pop3_client.c Corrected the logic in _nx_pop3_client_mail_item_message_get for handling packets with only
+ the POP3 end marker tag indicating end of mail message.
+ Supported for disabling IPv4 feature.
+ Dropped the chained packet to avoid memory overflow.
+ Improved internal logic.
+ Fixed the logic for handling message and command in one packet.
+ nxd_pop3_client.h Fixed the logic for handling message and command in one packet.
+
+ nx_ppp.c Supported for transmitting PPP over Ethernet.
+ Functions are modified or added:
+ _nx_ppp_netx_packet_transfer()
+ _nx_ppp_packet_receive()
+ _nx_ppp_packet_send_set()
+ _nx_ppp_packet_transmit()
+ _nx_ppp_process_deferred_raw_string_send()
+ _nx_ppp_receive_packet_get()
+ _nx_ppp_thread_entry()
+ _nxe_ppp_packet_receive()
+ _nxe_ppp_packet_send_set()
+ _nxe_ppp_create()
+
+ _nx_ppp_crc_append()
+ _nx_ppp_process_deferred_ip_packet_send()
+ _nx_ppp_lcp_code_reject()
+ _nx_ppp_lcp_configure_reply_send()
+ _nx_ppp_lcp_configure_request_send()
+ _nx_ppp_lcp_configuration_retrieve()
+ _nx_ppp_lcp_state_machine_update()
+ _nx_ppp_lcp_terminate_ack_send()
+ _nx_ppp_lcp_terminate_request_send()
+ _nx_ppp_pap_authentication_request()
+ _nx_ppp_pap_authentication_ack()
+ _nx_ppp_pap_authentication_nak()
+ _nx_ppp_pap_login_valid()
+ _nx_ppp_pap_state_machine_update()
+ _nx_ppp_chap_challenge_send()
+ _nx_ppp_chap_challenge_respond()
+ _nx_ppp_chap_challenge_validate()
+ _nx_ppp_chap_state_machine_update()
+ _nx_ppp_ipcp_configure_check()
+ _nx_ppp_ipcp_configure_request_send()
+ _nx_ppp_ipcp_response_extract()
+ _nx_ppp_ipcp_response_send()
+ _nx_ppp_ipcp_state_machine_update()
+ _nx_ppp_ipcp_terminate_ack_send()
+ _nx_ppp_ipcp_terminate_send()
+ _nx_ppp_raw_string_send()
+ _nx_ppp_receive_packet_process()
+ Added state check before start PAP, CHAP and IPCP.
+ _nx_ppp_packet_receive()
+ Corrected the logic for stopping PPP.
+ Functions are modified:
+ _nx_ppp_thread_entry()
+ _nx_ppp_lcp_state_machine_update()
+ Corrected the logic for processing LCP message.
+ Function is modified:
+ _nx_ppp_receive_packet_process()
+ Corrected the logic for setting gateway address.
+ Function is modified:
+ _nx_ppp_ipcp_state_machine_update()
+ Set the flag to distinguish PPP Server and PPP Client.
+ Function is modified:
+ _nx_ppp_receive_packet_process()
+ Added functions to stop/start PPP.
+ Function are modified:
+ _nx_ppp_start()
+ _nx_ppp_stop()
+ _nxe_ppp_start()
+ _nxe_ppp_stop()
+ Improved packet length verification.
+ Function are modified:
+ _nx_ppp_chap_challenge_respond()
+ _nx_ppp_chap_challenge_validate()
+ _nx_ppp_ipcp_configure_check()
+ _nx_ppp_ipcp_response_extract()
+ _nx_ppp_pap_login_valid()
+ _nx_ppp_receive_packet_process()
+ Improved internal logic.
+ Function are modified:
+ _nx_ppp_chap_challenge_respond()
+ _nx_ppp_chap_challenge_validate()
+ _nx_ppp_chap_state_machine_update()
+ _nx_ppp_ipcp_state_machine_update()
+ _nx_ppp_lcp_state_machine_update()
+ _nx_ppp_pap_state_machine_update()
+ Added echo request statistics and corrected the length field in _nx_ppp_ping_request().
+ nx_ppp.h Supported for transmitting PPP over Ethernet.
+ Added functions to stop/start PPP.
+
+ demo_netxduo_smtp_client.c Supported for disabling IPv4 feature.
+ nxd_smtp_client.c Fix compiler errors when event trace is enabled.
+ Supported for disabling IPv4 feature.
+ Dropped the chained packet to avoid memory overflow.
+ Improved packet length verification.
+ nxd_smtp_client.h Removed unused API macro nxd_smtp_mail_send.
+
+ nxd_snmp.c Supported for disabling IPv4 feature.
+ Dropped the chained packet to avoid memory overflow.
+ Added buffer length check.
+ Fixed packet leak issue.
+ Modified logic of converting to UCHARs for the buffer.
+ Removed logic setting boot count to one if not set.
+ Fixed a bug to use the trap security flags instead of the agent security flags.
+ Fixed bug to use context name from get request if agent context name not set.
+ Improved internal logic.
+ Modified nx_snmpv3_agent_engineboot_set to accept boot count of zero
+ Fixed nx_snmp_utility_object_data_get, nx_snmp_object_counter64_get/set,
+ nx_snmp_object_octet_string.get for errors in data processing.
+ Added new parsing route nx_snmp_tlv_parse_data to parse the Type-Length-Value
+ field as per ASN1 specificactions, this also handles the 'long form' for integer types
+ Added check for counter64 type to nx_snmp_v1/v2/v3_processing
+ Added an error response to nx_snmp_v1/v2/v3_processing if nx_snmp_object_data_get returns an error
+ instead of failing silently.
+ Modified nx_snmp_utility_object_data_get to accept a null IPv4 address.
+ nxd_snmp.h Removed #include nx_tcp.h
+ Added macros for ASN1/BER standard symbols used in TLV parsing routine
+ Added new error returns relevant to the TLV parsing added.
+ Redefined IPv6 address type as NX_SNMP_ASN1_OCTET_STRING
+ demo_snmp_helper.h Removed #include nx_tcp.h and references to TCP configuration options defined in nx_tcp.h.
+ Added a get_octet_callback() which is similar to the get_callback except that it includes the length
+ arguement to accomodate the nx_snmp_object_octet_string_get API
+ Added a length field to MIB table for reading octet strings which not 0x0 delimited.
+ Simplified the table to a few dozen OIDs instead of a hundreds of OID for ease of use.
+ Added atIPv6NetworkAddress[16] and MIB table entry for it for testing IPv6 address types
+ demo_netxduo_snmp.c Simplified mib2_variable_update to be a comment that this is where MIB data can be updated at runtime.
+ Removed printf statements.
+ Added check of status returns from SNMP API that were missing them.
+ demo_netxduo_mib2.c Removed the demo file since demo_netx_snmp.c is sufficient to demonstrate the use of SNMP API
+ for managing the MIB table.
+
+ nxd_sntp_client.c Modified nx_sntp_client_utility_convert_seconds_to_date causing the date to be off by one day if NX_SNTP_CURRENT_YEAR
+ is older than the current date and a leapyear has occurred between that year and the current date.
+ Removed useless code.
+ Supported for disabling IPv4 feature.
+ Improved internal logic.
+ nxd_sntp_client.h Modified comments.
+
+ nxd_telnet_client.h Removed NX_TELNET_MAX_OPTION_SIZE option and
+ nx_telnet_client_request_option from CLIENT_REQUEST structure.
+ nxd_telnet_client.c Supported for disabling IPv4 feature.
+ nxd_telnet_server.c Dropped the chained packet to avoid memory overflow.
+
+ nxd_tftp_client.c Supported for disabling IPv4 feature.
+ Improved packet length verification.
+ Corrected the field size of block number.
+ nxd_tftp_server.c Improved packet length verification.
+ Improved internal logic.
+ Corrected the field size of block number.
+ nxd_tftp_client.h Corrected the field size of block number.
+ nxd_tftp_server.h Corrected the field size of block number.
+
+ nx_web_http_client.c Added support for chunked transfer. Functions are added or modified:
+ _nx_web_http_client_chunked_size_get()
+ _nx_web_http_client_cleanup()
+ _nx_web_http_client_memicmp()
+ _nx_web_http_client_process_header_fields()
+ _nx_web_http_client_response_body_get()
+ _nx_web_http_client_response_read()
+ _nx_web_http_client_response_byte_expect()
+ _nx_web_http_client_response_chunked_get()
+ _nx_web_http_client_request_chunked_set()
+ _nx_web_http_client_request_packet_send()
+ _nx_web_http_client_request_initialize()
+ _nxe_web_http_client_request_chunked_set()
+ _nxe_web_http_client_request_packet_send()
+ _nx_web_http_client_delete()
+ Corrected the TCP header size in _nxe_web_http_client_put_packet().
+ Added support for keep-alive. Functions are added or modified:
+ _nx_web_http_client_connect()
+ _nx_web_http_client_process_header_fields()
+ _nx_web_http_client_secure_connect()
+ Corrected the wait option.
+ Functions are modified:
+ _nx_web_http_client_request_initialize()
+ _nx_web_http_client_request_header_add()
+ _nx_web_http_client_request_send()
+ Added support for returning all the status code in _nx_web_http_client_response_body_get().
+ Fixed the issue of TCP socket cleanup in _nx_web_http_client_secure_connect().
+ nx_web_http_client.h Added support for chunked transfer.
+ Added support for keep-alive.
+ Added support for returning all the status code.
+ nx_web_http_server.c Added support for chunked transfer. Functions are added or modified:
+ _nx_web_http_server_content_get()
+ _nx_web_http_server_packet_content_find()
+ _nx_web_http_server_packet_get()
+ _nx_web_http_server_content_get_extended()
+ _nx_web_http_server_receive_data()
+ _nx_web_http_server_get_process()
+ _nx_web_http_server_put_process()
+ _nx_web_http_server_callback_packet_send()
+ _nx_web_http_server_request_read()
+ _nx_web_http_server_request_byte_expect()
+ _nx_web_http_server_chunked_size_get()
+ _nx_web_http_server_request_chunked_get()
+ _nxe_web_http_server_response_chunked_set()
+ _nx_web_http_server_response_chunked_set()
+ _nx_web_http_server_chunked_check()
+ _nx_web_http_server_get_entity_header()
+ _nx_web_http_server_boundary_find()
+ Modified packet allocation function. Functions are added or modified:
+ _nx_web_http_server_basic_authenticate()
+ _nx_web_http_server_calculate_content_offset()
+ _nx_web_http_server_callback_data_send()
+ _nx_web_http_server_digest_authenticate()
+ _nx_web_http_server_get_process()
+ _nx_web_http_server_generate_response_header()
+ _nx_web_http_server_response_packet_allocate()
+ _nxe_web_http_server_response_packet_allocate()
+ nx_web_http_server.h Added support for chunked transfer.
+ Added packet allocation function.
+ nx_tcpserver.c Corrected the wait time of TCP server socket accepting in _nx_tcpserver_connect_process().
+ nx_tcpserver.h Modified the default thread priority of TCP server.
+ nx_web_http_common.h Added support for returning all the status code.
+ demo_netxduo_https.c Fixed the compile errors.
+
+
+Release 5.10 05-10-2016
+
+ nx_auto_ip.c Optimized the logic for detecting address conflict.
+ Functions are modified or deleted:
+ _nx_auto_ip_arp_packet_send()
+ _nx_auto_ip_conflict()
+ _nx_auto_ip_create()
+ _nx_auto_ip_delete()
+ _nx_auto_ip_thread_entry()
+ Fixed the bug for checking interface status.
+ Function is modified:
+ _nx_auto_ip_thread_entry()
+ nx_auto_ip.h Optimized the logic for detecting address conflict.
+
+ nxd_bsd.c Included internal header file in C file.
+ Modified API functions:
+ getsockopt - Optimized the logic for keepalive feature.
+ recv - Added support for thread preemption.
+ setsockopt - Optimized the logic for keepalive feature.
+ socket - Optimized the logic for keepalive feature.
+ inet_ntop - Fixed endian swap when ntohl is not defined.
+ Modified internal functions:
+ _nxd_bsd_ipv6_packet_send - Modified the parameter list of _nx_icmpv6_send_ns.
+ inet_ntoa_internal - Fixed endian swap when ntohl is not defined.
+ nx_bsd_find_interface_by_source_addr - Fixed endian swap when ntohl is not defined.
+ nx_bsd_send_internal - Added a case for the error status NX_NO_PACKET.
+ nxd_bsd.h Included internal header file in C file.
+
+ nxd_dhcp_client.c Optimized the logic for detecting address conflict.
+ The following functions are modified or added:
+ _nx_dhcp_client_send_arp_probe()
+ _nx_dhcp_create()
+ _nx_dhcp_delete()
+ _nx_dhcp_ip_conflict()
+ _nx_dhcp_process()
+ Corrected the logic for setting the broadcast bit.
+ The following functions are modified:
+ _nx_dhcp_send_request_internal()
+ Corrected the logic for setting the target IP address.
+ The following functions are modified:
+ _nx_dhcp_send_request_internal()
+ Modified the logic for processing DHCP options.
+ The following functions are modified:
+ _nx_dhcp_extract_information()
+ _nx_dhcp_user_option_retrieve()
+ _nx_dhcp_get_option_value()
+ _nx_dhcp_search_buffer()
+ Added support for DHCP on multiple interfaces.
+ The following API are modified or added:
+ _nx_dhcp_create()
+ _nx_dhcp_clear_broadcast_flag()
+ _nx_dhcp_client_send_with_zero_source_address()
+ _nx_dhcp_delete()
+ _nx_dhcp_decline()
+ _nx_dhcp_extract_information()
+ _nx_dhcp_force_renew()
+ _nx_dhcp_packet_process()
+ _nx_dhcp_reinitialize()
+ _nx_dhcp_release()
+ _nx_dhcp_request_client_ip()
+ _nx_dhcp_resume()
+ _nx_dhcp_suspend()
+ _nx_dhcp_send_request()
+ _nx_dhcp_send_request_internal()
+ _nx_dhcp_server_address_get()
+ _nx_dhcp_set_interface_index()
+ _nx_dhcp_start()
+ _nx_dhcp_stop()
+ _nx_dhcp_thread_entry()
+ _nx_dhcp_timeout_entry()
+ _nx_dhcp_timeout_process()
+ _nx_dhcp_udp_receive_notify()
+ _nx_dhcp_user_option_retrieve()
+ _nx_dhcp_client_get_record()
+ _nx_dhcp_client_restore_record()
+ _nx_dhcp_client_update_time_remaining()
+ _nx_dhcp_client_interface_get_record()
+ _nx_dhcp_client_interface_restore_record()
+ _nx_dhcp_client_interface_update_time_remaining()
+ _nx_dhcp_interface_clear_broadcast_flag()
+ _nx_dhcp_interface_enable()
+ _nx_dhcp_interface_disable()
+ _nx_dhcp_interface_decline()
+ _nx_dhcp_interface_force_renew()
+ _nx_dhcp_interface_reinitialize()
+ _nx_dhcp_interface_release()
+ _nx_dhcp_interface_request_client_ip()
+ _nx_dhcp_interface_start()
+ _nx_dhcp_interface_stop()
+ _nx_dhcp_interface_send_request()
+ _nx_dhcp_interface_server_address_get()
+ _nx_dhcp_interface_state_change_notify()
+ _nx_dhcp_interface_user_option_retrieve()
+ _nx_dhcp_interface_record_find()
+ _nxe_dhcp_interface_clear_broadcast_flag()
+ _nxe_dhcp_interface_enable()
+ _nxe_dhcp_interface_disable()
+ _nxe_dhcp_interface_decline()
+ _nxe_dhcp_interface_force_renew()
+ _nxe_dhcp_interface_reinitialize()
+ _nxe_dhcp_interface_release()
+ _nxe_dhcp_interface_request_client_ip()
+ _nxe_dhcp_interface_start()
+ _nxe_dhcp_interface_stop()
+ _nxe_dhcp_interface_send_request()
+ _nxe_dhcp_interface_server_address_get()
+ _nxe_dhcp_interface_state_change_notify()
+ _nxe_dhcp_interface_user_option_retrieve()
+ _nxe_dhcp_client_interface_get_record()
+ _nxe_dhcp_client_interface_restore_record()
+ _nxe_dhcp_client_interface_update_time_remaining()
+ Modified the logic for updating DHCP timeout.
+ The following functions are modified:
+ _nx_dhcp_update_timeout()
+ _nx_dhcp_packet_process()
+ _nx_dhcp_timeout_entry()
+ _nx_dhcp_interface_record_find()
+ _nx_dhcp_ip_conflict()
+ _nx_dhcp_thread_entry()
+ nxd_dhcp_client.h Fixed compiler warnings.
+ Modified the logic for processing DHCP options.
+ Added support for DHCP on multiple interfaces.
+ nxd_dhcp_server.c Added flag events to process packet receive event, fast periodic event and slow periodic event.
+ Functions are modified or renamed:
+ _nx_dhcp_server_create()
+ _nx_dhcp_server_delete()
+ _nx_dhcp_fast_periodic_timer_entry()
+ _nx_dhcp_slow_periodic_timer_entry()
+ _nx_dhcp_server_thread_entry()
+ _nx_dhcp_listen_for_messages()
+ _nx_dhcp_server_packet_process()
+ Fixed packet leaks in _nx_dhcp_respond_to_client_message().
+ Added mutex protection.
+ Functions are modified:
+ _nx_dhcp_create_server_ip_address_list()
+ _nx_dhcp_set_interface_network_parameters()
+ _nx_dhcp_clear_client_record()
+ nxd_dhcp_server.h Added flag events to process packet receive event, fast periodic event and slow periodic event.
+ nxd_dhcpv6_server.c Fixed the typo, rename NX_DHCPV6_STATUS_NO_ADDRS_AVAILABLE to NX_DHCPV6_STATUS_MESSAGE_NO_ADDRS_AVAILABLE.
+ nxd_dhcpv6_server.h Fixed the typo, rename NX_DHCPV6_STATUS_NO_ADDRS_AVAILABLE to NX_DHCPV6_STATUS_MESSAGE_NO_ADDRS_AVAILABLE.
+
+ nxd_ftp_server.c Renamed _nx_ftp_server_control_disonnect_processing to nx_ftp_server_control_disconnect_processing.
+ Added a check on status return from FileX file write and file create calls in _nx_ftp_server_command_process
+ and _nx_ftp_server_data_process.
+ nxd_ftp_server.h Renamed _nx_ftp_server_control_disonnect_processing to nx_ftp_server_control_disconnect_processing.
+ nxd_ftp_client.c Added support for PASV, passive transfer mode
+ Added IPv6 support to nx_ftp_client_directory_listing_get
+ nxd_ftp_client.h Added support for PASV, passive transfer mode
+
+ demo_netxduo_http.c Fix a bug that memory of ram disk is corrupted.
+ nxd_http_client.c Allow zero or more whitespaces between Content-Length and value
+ in nx_http_client_content_length_get()
+ Optimized the code.
+ _nx_http_client_content_length_get()
+ Fixed packet leak for invalid HTTP packet in _nxd_http_client_get_start
+ and _nx_http_client_get_packet.
+ Corrected the logic in _nxd_http_client_get_start when checking
+ offset against the packet length
+ Modified nxd_http_client_get_start() and nxd_http_client_put_start()
+ to accept a URI resource string that refers to a full website
+ e.g. http://abc.def.com/index.htm.
+ Added nx_http_client_set_connect_port() service to allow the Client
+ to change the HTTP server port at runtime.
+ nxd_http_client.h Declare the nx_http_client_set_connect_port() service
+
+ nxd_pop3_client.c Returned NX_SUCCESS only if the positive response consists of "+OK".
+ Functions are modified:
+ _nx_pop3_client_mail_item_get()
+ _nx_pop3_client_mail_item_delete()
+ _nx_pop3_client_quit()
+
+
+Release 5.9 02-22-2016
+
+ demo_netx_auto_ip.c Used TX_TIMER_TICKS_PER_SECOND as default value of NX_IP_PERIODIC_RATE.
+ Fixed compiler warnings.
+
+ nx_auto_ip.c Fixed one bug that hardware address is set as zero if IP instance is uninitialized.
+ Fixed compiler warnings.
+ Corrected the value of NX_AUTO_IP_END_ADDRESS.
+
+ bsd_demo_raw.c Unified ticks per second.
+ Fixed compiler warnings.
+ bsd_demo_tcp.c Unified ticks per second.
+ Fixed compiler warnings.
+ bsd_demo_udp.c Unified ticks per second.
+ Fixed compiler warnings.
+ nxd_bsd.c Fixed compiler warnings.
+ Modified API functions:
+ bsd_initialize - Returned error when extended notify feature was disabled.
+ recv - Fixed return value when peer shutdown orderly.
+ Fixed statistics of TCP socket.
+ send - Fixed length of data sent.
+ sendto - Fixed length of data sent.
+ connect - Fixed errno when connection timeouts.
+ bind - Added logic to allow TCP IPv4 and IPv6 sockets to share a port if reuse is enabled
+ on the sockets (which it is by default. This lets BSD emulate a TCP client socket that accepts
+ and transmits IPv4 and IPv6 packets.
+ inet_addr - Corrected the status process of inet_aton.
+ setsockopt - Unified ticks per second.
+ Added support for SO_SNDTIMEO option.
+ Renamed symbols from NX_TCP_ENABLE_KEEPALIVE to NX_ENABLE_TCP_KEEPALIVE,
+ and from NX_TCP_ENABLE_WINDOW_SCALING to NX_ENABLE_TCP_WINDOW_SCALING.
+ select - Unified ticks per second.
+ Fixed statistics of TCP socket.
+ Modified internal functions:
+ bsd_initialize - Used tx_thread_sleep instead of setting event from timer.
+ nx_bsd_select_wakeup - Cleared fd_sets in suspend info if they were not met.
+ nx_bsd_send_internal - Supported to return length of data sent.
+ Fixed timeout for packet process.
+ Added support for SO_SNDTIMEO option.
+ nx_bsd_socket_set_inherited_settings - Renamed symbols from NX_TCP_ENABLE_KEEPALIVE to NX_ENABLE_TCP_KEEPALIVE,
+ and from NX_TCP_ENABLE_WINDOW_SCALING to NX_ENABLE_TCP_WINDOW_SCALING.
+ nx_bsd_tcp_socket_disconnect_notify - Fixed errno when connection timeouts.
+ nx_bsd_timer_entry - Used tx_thread_sleep instead of setting event from timer.
+ nx_bsd_thread_entry - Used tx_thread_sleep instead of setting event from timer.
+ nxd_bsd.h Added support for unified timer tick macros.
+ Defined return code for environment error.
+ Modified the type of time_t and suseconds_t from ULONG to LONG.
+
+ demo_netxduo_dhcp.c Unified ticks per second.
+ Simplified the demo.
+ Fixed compiler warnings.
+
+ nxd_dhcp_client.c Unified ticks per second.
+ Added support for sending maximum DHCP message size option.
+ Changed the logic to check the DHCP state to update the time remaining in renew and rebind states.
+ Optimized the algorithm for calculating random time.
+ Corrected the logic for sending ARP probe and restarting configuration.
+ Fixed compiler warnings.
+ Set the source address field in the IP header to 0 for DHCP messages that client obtaining its IP address.
+ nxd_dhcp_client.h Unified ticks per second.
+ Added support for sending maximum DHCP message size option.
+ Added symbol names for sending ARP probe and restarting configuration.
+ Fixed compiler warnings.
+ nxd_dhcp_server.c Unified ticks per second in nx_dhcp_server_create().
+ Optimized process logic in nx_dhcp_server_thread_entry().
+ Fixed a packet leak in nx_dhcp_listen_for_message().
+ Fixed the bug for user options seek in nx_dhcp_server_extract_information.
+ Initialized dhcp client in nx_dhcp_listen_for_message.
+ Copied the incoming data in one packet from dhcp server pool in nx_dhcp_listen_for_messages.
+ Fixed a bug in nx_dhcp_server_extract_information to initialize the dhcp_client_ptr to NULL in the event
+ the function encounters an invalid packet. Previously, the function returned a garbage dhcp_client_ptr to
+ the caller which would then dereference it and get an exception.
+ Send NACK message if the client's requested IP address is incorrect in _nx_dhcp_validate_client_message.
+ Simplified the logic to find, record and clear the IP address owner.
+ Fixed compiler warnings.
+ nxd_dhcp_server.h Unified ticks per second.
+ Adjusted the default value of configuration options.
+ Optimized the structure.
+ demo_netxduo_dhcpv6.c Unified ticks per second.
+ Simplified the demo.
+ Fixed compiler warnings.
+ demo_netxduo_dhcpv6_client.c Unified ticks per second.
+ Fixed compiler warnings.
+ nxd_dhcpv6_client.c Unified ticks per second.
+ Verified the incoming data does not exceed our DHCPv6 Client packet payload in _nx_dhcpv6_packet_process().
+ Fixed the bug for setting IPv6 address change notify in _nx_dhcpv6_client_create().
+ Fixed the bug for setting address status in _nx_dhcpv6_register_IP_address().
+ Renamed symbols from NX_IPV6_ADDRESS_CHANGE_NOTIFY_ENABLE to NX_ENABLE_IPV6_ADDRESS_CHANGE_NOTIFY,
+ NXDUO_DISABLE_DAD to NX_DISABLE_IPV6_DAD since NetX Duo renamed these symbols.
+ Fixed compiler warnings.
+ nxd_dhcpv6_client.h Unified ticks per second.
+ Added conditional code for DAD notify declaration.
+ Renamed symbols from NX_IPV6_ADDRESS_CHANGE_NOTIFY_ENABLE to NX_ENABLE_IPV6_ADDRESS_CHANGE_NOTIFY,
+ NXDUO_DISABLE_DAD to NX_DISABLE_IPV6_DAD since NetX Duo renamed these symbols.
+ Fixed compiler warnings.
+ nxd_dhcpv6_server.c Unified ticks per second.
+ Copied the incoming data in one packet from dhcpv6 server pool in nx_dhcpv6_listen_for_messages.
+ Fixed the bug for IPv6 address get.
+ Fixed compiler warnings.
+ nxd_dhcpv6_server.h Unified ticks per second.
+ Fixed the bug for IPv6 address get.
+
+ demo_netxduo_dns.c Unified ticks per second.
+ Fixed compiler warnings.
+ nxd_dns.h Unified ticks per second.
+ Removed the symbol NX_DNS_CLIENT_IP_GATEWAY_ADDRESS.
+ nxd_dns.c Unified ticks per second.
+ Modified the logic to send DNS query in _nx_dns_host_resource_rdata_by_name_get and
+ _nx_dns_host_by_address_get_internal.
+ Modified the return status in _nx_dns_send_query_by_address.
+ Modified the return status if answer_found is true in _nx_dns_response_process.
+ Modified the logic for setting the IP gateway server to be the DNS Server in _nx_dns_create.
+ Added check for malformed packet.
+ Fixed compiler warnings.
+ Added the check for record_count_pointer.
+
+ demo_netxduo_ftp.c Unified ticks per second.
+ Fixed compiler warnings.
+ nxd_ftp_client.c Fixed compiler warnings.
+ nxd_ftp_server.c Cleared socket resource when ftp server is stopped.
+ Optimized the logic.
+ Fixed a bug for calculating the length of file info.
+ Fixed compiler warnings.
+ nxd_ftp_server.h Unified ticks per second.
+ Added event to stop ftp server.
+
+ demo_netxduo_http.c Unified ticks per second.
+ Fixed compiler warnings.
+ nxd_http_client.h Unified ticks per second.
+ nxd_http_client.c Removed trailing space on HTTP/1.0.
+ nxd_http_server.h Unified ticks per second.
+ Declared missing function headers.
+ nxd_http_server.c Cleared socket resource when stopped.
+ Fixed first MIME type in the default array.
+ Fixed compiler warnings.
+
+ demo_netx_nat.c Unified ticks per second.
+ nx_nat.c Unified ticks per second.
+ Fixed compiler warnings.
+ Modified the logic for packet processing and sending since all
+ the fragments are assembled before forwarding.
+ Functions are modified:
+ _nx_nat_process_packet()
+ _nx_nat_ip_packet_send()
+ nx_nat.h Unified ticks per second.
+
+ demo_netxduo_pop3_client.c Unified ticks per second. Used TX_TIMER_TICKS_PER_SECOND as default value of NX_IP_PERIODIC_RATE.
+ Fixed compiler errors.
+ nxd_pop3_client.c Unified ticks per second. Used TX_TIMER_TICKS_PER_SECOND as default value of NX_IP_PERIODIC_RATE.
+ Fixed compiler errors.
+ Fixed number checking.
+ nxd_pop3_client.h Unified ticks per second. Used TX_TIMER_TICKS_PER_SECOND as default value of NX_IP_PERIODIC_RATE.
+
+ demo_netx_ppp.c Unified ticks per second.
+ Fixed compiler warnings.
+ nx_ppp.c Replaced hard numbers with PPP symbols for PPP codes, protocols, options and protocol states.
+ Added _nx_ppp_debug_log_capture_protocol function to outputs the status of various protocols and timeouts of the specified PPP instance.
+ Added support for the secondary DNS option in the IPCP protocol.
+ Added a retry limit on IPCP NAK list requests with primary and secondary DNS options so that
+ IPCP can complete if either address is not available.
+ Added NXE function for error checking.
+ Fixed compiler warnings.
+ nx_ppp.h Unified ticks per second.
+ Defined PPP symbols for naked list options.
+ Added _nx_ppp_debug_log_capture_protocol prototype.
+ Modified the NX_PPP data block to contain a secondary DNS address and count of retries on IPCP
+ config requests with DNS address options.
+ Added #defines for maximum retries on IPCP requests containing DNS options.
+ Added services for setting and getting the primary and secondary DNS addresses.
+ Added NXE function for error checking.
+ Fixed the compiler error if defined NX_PPP_DISABLE_INFO.
+
+ demo_netxduo_smtp_client.c Unified ticks per second.
+ Fixed compiler warnings.
+ nxd_smtp_client.c Unified ticks per second.
+ Removed unused code and simplified SMTP client data types
+ Fixed packet leaks in various functions
+ Added logic for SMTP servers not configured for authentication
+ Added option for SMTP Client to skip authentication (NX_SMTP_CLIENT_AUTH_NONE)
+ Fixed problems handling multi-packet response from the server to client EHLO
+ Check socket state and delete TCP socket in nx_smtp_client_delete() before clearing SMTP Client memory
+ Modified _nx_smtp_utility_parse_server_services() not to set AUTH type if the current 250 packet does not
+ contain the AUTH keyword. Otherwise the client authentication type may not be set correctly.
+ Fixed compiler warnings.
+ nxd_smtp_client.h Unified ticks per second. Remove definitions of NX_SMTP_MILLISECONDS_PER_TICK and NX_SMTP_TICKS_PER_SECOND.
+ Added logic for SMTP servers not configured for authentication
+ Added option for SMTP Client to skip authentication (NX_SMTP_CLIENT_AUTH_NONE)
+ Removed unused code and simplified SMTP client data types
+
+ demo_netxduo_mib2.c Unified ticks per second.
+ Fixed compiler warnings.
+ demo_netxduo_snmp.c Unified ticks per second.
+ Fixed compiler warnings.
+ Replace #ifdef ENABLE_V3 with #ifndef NX_SNMP_DISABLE_V3 to eliminate compile errors
+ if NX_SNMP_DISABLE_V3 is defined in SNMP.
+ demo_snmp_helper.h Fixed compiler warnings.
+ nxd_snmp.c Modified nx_snmp_version3_report_send() :
+ 1) never encrypt data in a report response
+ 2) never to set encryption or reportable bit in security header flags field,
+ 3) if sending time synchronization report, only use authentication even if encryption is enabled,
+ 4) never send boot data in response to a discovery request.
+ Modified nx_snmp_version3_process() :
+ 1) Flags in the security header should never have reportable bit sent
+ 2) never send boot data if authentication is not enabled.
+ Modified nx_snmp_version3_process where it sets the request_type_ptr
+ for returning the request packet with an error status.
+ Renamed _nx_snmp_utility_request_type_set_A5 to _nx_snmp_utility_request_type_set_multibyte
+ Removed _nx_snmp_utility_request_type_set (use only _nx_snmp_utility_request_type_set_1byte)
+ Modified nx_snmp_send_error_response() and nx_snmp_encrypt_pdu for handling SNMPV3 request packet PDUs
+ for error messages when security is enabled.
+ Replaced 1 byte data size fields with 2 byte data size fields in sequence headers in trap send,
+ and SNMP message process functions, wherever there is a possibility the data may exceed 128 bytes
+ (and thus require 2 bytes).
+ Modified logic in data object get functions to determine the size of the data size field rather than
+ assume 2 bytes (e.g. _nx_snmp_utility_community_get, _nx_snmp_utility_object_id_get,
+ _nx_snmp_utility_object_data_get).
+ Fixed a bug in _nx_snmp_agent_encrypt_pdu for not adjusting encrypted PDU length for non-zero padding.
+ Added a null pointer check for the object list pointer in the trap functions when going through
+ the PDU object list items.
+ Added NX_SNMP_V3_DISABLE conditional compile directives around global PDU processing variables and in
+ _nx_snmp_version_error_response relevant for V3 security specific processing.
+ Fixed compiler warnings.
+ Minor correction masking the length variable.
+ nxd_snmp.h Renamed _nx_snmp_utility_request_type_set_A5 to _nx_snmp_utility_request_type_set_multibyte.
+ Removed _nx_snmp_utility_request_type_set (use only _nx_snmp_utility_request_type_set_1byte).
+ Changed the order of internal functions for more logical grouping.
+ Unified ticks per second.
+ Added #ifdef NX_SNMP_V3_DISABLE checks around #includes for authentication
+ and encryption key processing, and around API fucntions that compute and activate keys.
+ Removed unused extern nx_system_ticks_per_second.
+
+ demo_netxduo_sntp_client.c Unified ticks per second.
+ Updated the demo for creating SNTP client packet pool.
+ Fixed compiler warnings.
+ nxd_sntp_client.c Modified nx_sntp_client_get_msecs_diff to simplify the logic
+ Modified nx_sntp_client_server_clock_dispersion_check to simplify the logic
+ Reworked the logic in nx_sntp_client_utility_get_msec_diff to add back in flag for postive or
+ negative difference. Some use cases in NetX SNTP Client regard a negative difference as an error.
+ Modified nx_sntp_client_utility_convert_secs_to_date to handle a date stamp in a year
+ after NX_SNTP_CURRENT_YEAR.
+ Created new API _nx_sntp_client_request_unicast_time to request unicast updates asynchronously of the
+ SNTP Client thread task.
+ Simplified the completion status logic for _nx_sntp_client_process_update_packet
+ Removed unnecessary input for _nx_sntp_client_receive_time_update and _nx_sntp_client_apply_sanity_checks,
+ Fixed the logic to check if the update time has expired without a response.
+ Modified nx_sntp_client_initialize_broadcast to handle invalid parameter input.
+ Created nx_sntp_client_set_time_update_notify to set a callback when the SNTP Client receives a valid
+ SNTP update.
+ Simplified logic for valid packet processing in _nx_sntp_client_process_broadcast.
+ Simplified error code in _nx_sntp_client_apply_sanity_checks.
+ Modifiied _nx_sntp_client_process_time_data to add status check for adding msec to ntp time.
+ Unified ticks per second.
+ Fixed a bug when multiple packets were received and the first one was invalid,
+ other packets were not processed in time.
+ Fixed compiler warnings.
+ nxd_sntp_client.h Modified nx_sntp_client_server_clock_dispersion_check declaration for changes to input args
+ Created new API nx_sntp_client_request_unicast_time()
+ Removed unnecessary input for _nx_sntp_client_receive_time_update and _nx_sntp_client_apply_sanity_checks,
+ Added support for nx_sntp_client_set_time_update_notify() callback.
+ Unified ticks per second.
+ Removed unused macros.
+ Fixed compiler warnings.
+
+ demo_netxduo_telnet.c Unified ticks per second.
+ Fixed compiler warnings.
+ nxd_telnet_server.c Added support for external packet pool creation for use when NX_TELNET_SERVER_OPTION_DISABLE
+ is not defined and the Telnet Server needs a packet pool to send Telnet options.
+ Created _nx_telnet_server_packet_pool_set() API for applications to set the Telnet Server packet
+ pool if NX_TELNET_SERVER_USER_CREATE_PACKET_POOL is defined. The default is the Telnet Server
+ creates the packet pool.
+ Cleared socket resource when telnet server is stopped.
+ Modified nx_telnet_server_process_options to move the offset for all responses to the ECHO request.
+ Fixed a bug when packet contains command and data, data are not processed.
+ Fixed compiler warnings.
+ nxd_telnet_server.h Added support for for external packet pool creation with configuration option
+ NX_TELNET_SERVER_USER_CREATE_PACKET_POOL and API nx_telnet_server_packet_pool_set().
+ Unified ticks per second.
+ Added event to stop telnet server.
+ nxd_telnet_client.h Removed unused macro.
+
+ demo_netxduo_tftp.c Unified ticks per second.
+ Fixed compiler warnings.
+ nxd_tftp_server.c Added support for a retransmit feature where a packet is
+ retransmitted if the correct data or ACK from the TFTP Client
+ is not received within user specified timeout period.
+ Added logic to handle duplicate WRITE or READ requests e.g. the
+ TFTP server is delayed responding to the first request and while
+ processing it receives one or more duplicate requests (which are dropped).
+ Fixed packet leak.
+ Fixed compiler warnings.
+ nxd_tftp_server.h Added support for a retransmit feature.
+ nxd_tftp_client.c Fixed compiler warnings.
+
+
+Release 5.8 01-12-2015
+
+ nx_auto_ip.c Added NX_RAND to replace rand to get the random value.
+
+ nxd_bsd.c Added API functions:
+ inet_pton - This function converts an IP address from presentation to numeric.
+ inet_ntop - This function converts an IP address from numeric to presentation.
+ getaddrinfo - This function returns one or more addrinfo structures according
+ to the specified node and service.
+ freeaddrinfo - This function releases the memory allocated by getaddrinfo.
+ getnameinfo - This function converts a socket address to a corresponding host and service.
+ Modified API functions:
+ socket - Improved UDP and raw socket performance.
+ connect - Fixed error status when connection fails in blocking mode.
+ bind - Fixed a bug in local bound port, improved UDP socket performance.
+ accept - Cleared the INPROGRESS flag when connection is established.
+ getsockname - Fixed port value for UDP socket.
+ recv - Fixed how socket timeout is handled. Socket doing blocked receive
+ with timeout value would not wake up if there are other BSD sockets
+ receiving data. Fixed return code. Supported flags MSG_PEEK and MSG_DONTWAIT.
+ recvfrom - Supported flags MSG_PEEK and MSG_DONTWAIT.
+ select - Fixed fd_set value when socket is not in use.
+ Removed an obsolete for loop clearing blocked sockets for new connection requests.
+ send - Supported raw PPPOE. Supported flags MSG_DONTWAIT.
+ sendto - Supported raw PPPOE. Supported flags MSG_DONTWAIT.
+ soc_close - Improved UDP and raw socket performance.
+ Added support for NX_BSD_TCP_SOCKET_DISCONNECT_TIMEOUT in the nx_tcp_socket_disconnect call.
+ Fixed a bug that secondary socket was not disconnected.
+ ioctl - Added logic for applications to clear the non-blocking flag.
+ Modified FIONREAD option to capture the correct number of bytes received on the UDP socket
+ inet_ntoa - Move logic to internal function inet_ntoa_internal.
+ inet_aton - Added an error return if an invalid character is received
+ for base-16 address buffer. Fixed a bug of processing hex number.
+ FD_SET - Fixed FD_SETSIZE check
+ FD_CLR - Fixed FD_SETSIZE check
+ FD_ISSET - Fixed FD_SETSIZE check
+ FD_ZERO - Fixed FD_SETSIZE value
+ Added internal functions:
+ nx_bsd_pppoe_internal_sendto - This function sends raw PPPOE packet to driver directly.
+ _nx_bsd_pppoe_packet_received - This function receives raw PPPOE packet from driver directly.
+ inet_ntoa_internal - This function converts an IPv4 address to a string and
+ returns the size of the string.
+ bsd_string_to_number - This function converts string to number.
+ nx_bsd_set_service_list - This function lets user set the service list used by getaddrinfo.
+ _nx_bsd_string_length - This function returns the length of string.
+ Modified internal functions:
+ bsd_initialize - Supported getaddrinfo and getnameinfo APIs.
+ nx_bsd_timeout_process - Corrected the logic and comment to skip client sockets.
+ nx_bsd_send_internal - Remove unnecessary code. Supported flags MSG_DONTWAIT.
+ bsd_number_convert - Added support for HEX number. Added argument to avoid overflow.
+ nx_bsd_raw_socket_filter - Improved the raw socket search logic.
+ nx_bsd_tcp_create_listen_socket - Fixed a bug to allow accept from remote end.
+ nx_packet_data_extract_offset - Fixed a bug when offset and length of packet are both zero.
+ nx_bsd_udp_packet_received - Improved the UDP socket search logic
+ nx_bsd_tcp_syn_received_notify - Fixed connection status
+ _nxd_bsd_ipv4_packet_send - Encapsulated all IGMP-related infomation.
+ Removed internal functions: nx_bsd_isascii
+ nxd_bsd.h Fixed FD_SETSIZE, added PPPOE and DNS support,
+ added inet_pton, inet_ntop, getnameinfo, getaddrinfo, freeaddrinfo services,
+ supported flags MSG_PEEK.
+ New configuration option for TCP socket disconnect, NX_BSD_TCP_SOCKET_DISCONNECT_TIMEOUT.
+ The default value is 1 (timer tick)
+
+ nxd_dhcp_client.c Removed MULTI_HOME_NETXDUO/MULTI_HOME_NETX macro definition.
+ Fixed a bug in nx_dhcp_search_buffer() that could potentially casue buffer overflow
+ Fixed a packet leak in nx_dhcp_process() in the REQUEST state.
+ Replaced rand() with NetX Duo macro NX_RAND
+ Updated nx_dhcp_process and nx_dhcp_send_request_internal for updating the 'secs' field
+ in the DHCP client header for those DHCP servers that expect this field to be updated.
+ Fixed a bug in nx_dhcp_add_randomize that could potentially cause a huge random delay factor
+ Added nx_dhcp_clear_broadcast_flag service for cases where the DHCP server is behind
+ a router and the server must be able to send unicast messages.
+ Added nx_dhcp_seconds to the DHCP Client structure for filling in the 'secs' field in
+ the DHCP header.
+ Modified calls for allocating packets so that NetX Duo DHCP CLient will also compile and run
+ in a NetX environment.
+ Modified nx_dhcp_process for DHCP CLient to update the IP router and IP address from ACKs received
+ from the server in the RENEW and REBIND state.
+ Modified the clear gateway address call function to match NetX Duo 5.8
+ Remove the nx_packet_data_extract_offset function since nx_packet_data_extract_offset function
+ is defined in NetX/NetXDuo 5.8
+ Fixed the bug of DHCPv4 Client option added operation: added Server identifier option in DHCP Decline and Release messages,
+ removed Host name option in DHCP Decline and Release messages.
+ Remove the internal function from nxd_dhcp_client.h into nxd_dhcp_client.c.
+ _nx_dhcp_client_send_arp_probe modified to check if an arp entry with matching IP address
+ does not have a non-zero MAC address.
+ Modified the logic to get DHCP option value to avoid using the released packet in _nx_dhcp_user_option_retrieve.
+ Processed the DNS and NTP server options in _nx_dhcp_extract_information.
+
+ nxd_dhcp_client.h Modified definition of NX_DHCP_PACKET_PAYLOAD so that NetX Duo DHCP CLient will also compile and run
+ in a NetX environment.
+ Added nx_dhcp_seconds to the DHCP CLIENT struct.
+ Added nx_dhcp_clear_broadcast_flag service for cases where the DHCP server is behind
+ a router and the server must be able to send unicast messages.
+ Added variables to store DNS and NTP server addresses.
+ nxd_dhcp_server.c Modified the process of DHCP Server response message, set the correct destination address
+ and destination port according to the 'giaddr', 'ciaddr' and broadcast bit.
+ Modified the logic in nx_dhcp_server_validate_client_message to delay
+ NACKs to finish checking for invalid data which requires the Server
+ to respond silently.
+ Added logic in nx_dhcp_listen_for_messages to check for invalid DHCP packet length
+ being less than NX_DHCP_HEADER_SIZE.
+ Removed the MULTI_HOME_NETXDUO macro definition.
+ Fixed a bug of DHCPv4 Server option added operation
+ Removed the internal function from nxd_dhcp_server.h into nxd_dhcp_server.c.
+ Used API to get the interface instead of directly getting the internal parameters.
+ Corrected memset in nx_dhcp_server_create_ip_list() for the size input arguement.
+ nxd_dhcp_server.h Created a new error status for malformed packets (0xA4). Added a new define for
+ DHCP header size (no option bytes) NX_DHCP_HEADER_SIZE.
+ Removed the MULTI_HOME_NETXDUO macro definition.
+ Removed useless function declaration (nx_dhcp_create_server_ip_address_list_text).
+ nxd_dhcpv6_client.c Created nx_dhcpv6_get_valid_ip_address_prefix service for obtaining the prefix of
+ addresses assigned by DHCPv6 servers.
+ Modified nx_dhcpv6_thread_entry to automatically restart the SOLICIT messages if the DHCPv6 Client
+ IPv6 address expires. Previously it put the DHCPv6 Client in the INIT state, requiring the DHCPv6
+ Client app to manually restart the SOLICIT messages.
+ Created nx_dhcpv6_get_time_server_address service for obtaining the time server address assigned by DHCPv6 Servers.
+ Added support for the FQDN option to the DHCPv6 Client, with new API nx_dhcpv6_request_option_FQDN
+ Fixed the bug for NoAddrsAvail status in nx_dhcpv6_process()
+ Modified the nx_dhcpv6_server_error_handler function; the message type should be the type of received message
+ and defined status codes to reflect the error (see nxd_dhcpv6_client.h).
+ Modified the nx_dhcpv6_resume function to support for DHCPv6 state restore feature.
+ Added nx_dhcpv6_client_get_record and nx_dhcpv6_client_restore_record functions to realize the DHCPv6 Client restore feature.
+ Added _nx_dhcpv6_flush_queue_packets function to flush the useless queue packets
+ Loop to receive the queue packets until get the valid answer or timeout.
+ nxd_dhcpv6_client.h Added support for the FQDN option, including defining FQDN settings and creating a new NX_DHCPV6_CLIENT_FQDN struct
+ Added declaration of nx_dhcpv6_get_valid_ip_address_prefix service API service.
+ Added declaration of nx_dhcpv6_get_time_server_address service API service.
+ Added nx_dhcp_seconds to the DHCP CLIENT struct.
+ Defined error status codes for server error handler op codes; NX_DHCPV6_ERROR_STATUS_CODE_IN_OPTION_FIELD,
+ NX_DHCPV6_ERROR_STATUS_CODE_IN_IA_NA, and NX_DHCPV6_ERROR_STATUS_CODE_IN_IA_ADDRESS.
+ Added nx_dhcpv6_client_get_record and nx_dhcpv6_client_restore_record functions to realize the DHCPv6 Client restore feature.
+ Added _nx_dhcpv6_flush_queue_packets function to flush the useless queue packets.
+ Optimized DHCPv6 struct, removed nx_dhcpv6_valid_advertise_or_reply_flag.
+ nxd_dhcpv6_server.c Fixed the compiler warnings
+ Removed MULTI_HOME macro definition.
+ Used NetX Duo API to get the interface instead of directly getting the internal parameters.
+ Fixed the bug for physical address check.
+
+ nxd_dns.c Added two new services, nx_dns_server_remove_all() which removes all DNS servers
+ registered with the DNS Client, and nx_dns_info_by_name_get() which gets the
+ Service record associated with the specified host name. These services sere
+ previously only available in NetX DNS Client.
+ Fixed a bug in nxd_dns_response_process() that return error code if the packet
+ does not contain the RR the application expects.
+ Fixed a bug in nx_dns_name_string_unencode() that return error code if the buffer
+ size can not store the all name string.
+ Change the internal nxd_* function and nxd_* variables to nx_* function and nx_* variables.
+ Added DNS CACHE feature.
+ nxd_dns.h Added two new services, nx_dns_server_remove_all() and nx_dns_info_by_name_get().
+ Added DNS CACHE feature.
+
+ nxd_ftp_client.c Added _nx_ftp_client_connect_internal function and modified the _nxd_ftp_client_connect function.
+ Added '|' character as the delimiter type for EPRT.
+ nxd_ftp_client.h Added declaration for _nx_ftp_client_connect_internal function.
+ nxd_ftp_server.c Added support for packet chain
+ Fixed complier warning
+ Added _nx_ftp_server_create_internal function and modified the _nx_ftp_server_create function.
+ nxd_ftp_server.h Added declaration for _nx_ftp_server_create_internal function.
+
+ nxd_http_client.c Fixed a bug that username and password might be NULL.
+ Added size check for nxe_http_client_create.
+ nxd_http_client.h Added size check for nxe_http_client_create.
+ nxd_http_server.c Fixed the logic in _nx_http_server_get_client_request to handle
+ multipacket Get requests.
+ Added cache feature.
+ Supported user defined MIME maps.
+ Supported packet chain feature.
+ Supported multipart upload feature.
+ Unified response line.
+ Fixed compiler warnings.
+ Fixed memory leak when packet is chained.
+ Supported escape character.
+ Supported absolute URI.
+ Added separate input pointer to authenticate function if authentication is required.
+ Return on internal error code.
+ Added size check for nxe_http_server_create.
+ Added timeouts for receive, accept, send and disconnect.
+ Defined values and structures for new features in nxd_http_server.c.
+ Added new services for new features in nxd_http_server.c.
+ Supported invalid user/password callback function.
+ nxd_http_server.h Supported multipart upload feature.
+ Unified response line.
+ Supported to response date in header.
+ Removed declarations for _nxe version.
+ Added cache feature.
+ Supported user defined MIME maps.
+ Added new services for new features in nxd_http_server.c.
+ Added size check for nxe_http_server_create.
+ Added timeouts for receive, accept, send and disconnect.
+ Modified NX_HTTP_MAX_STRING to ensure room for encoded string.
+
+ nx_ppp.c Modified logic in nx_ppp_packet_receive_get() to ensure that multipacket PPP messages cleave off
+ packets with junk data from the datagram (e.g. ppp crc computation and the 0x7e marker).
+ Modified logic in nx_ppp_lcp_configure_request() and nx_ppp_lcp_terminate_request_sent() to
+ remove logic decementing the nx_ppp_protocol_retry_counter. The logic is that the counter is
+ incremented up to NX_PPP_MAX_LCP_PROTOCOL_RETRIES, not down to zero. By decrementing the counter
+ effectively there was no limit to the retries in the LCP stage.
+ Removed unnecessary NX_PPP_IPCP_CONFIGURE_REQUEST case in the NX_PPP_IPCP_PEER_CONFIGURE_REQUEST_ACKED state
+ Added support for DNS request option configuration option.
+ Added support for LCP echo, both responding to echo requests and sending ping requests with the new service
+ nx_ppp_ping_request.
+ Modified the _nx_ppp_hash_generator, and all callers of this function to include a length arguement,
+ rather than assume the rand_value is null terminated (0x0 is a valid random octet).
+ Modified nx_ppp_delete to terminate the PPP thread before deleting it.
+ Fixed nx_ppp_pap_authenticate_nak not to set the PPP authenticated status to TRUE.
+ Fixed nx_ppp_pap_login to only return TRUE or FALSE, not status, so that mismatched user/passwords will be detected.
+ Corrected the logic in nx_ppp_thread_entry() determining if the PPP should be set to authenticated.
+ Modified _nx_ppp_lcp_state_machine_update() to accept LCP requests if already in the completed state (WIP).
+ Corrected logic in _nx_ppp_pap_state_machine_update() setting the PPP PAP state if PAP authentication fails.
+ nx_ppp.h Added DNS request option configuration option to disable the DNS request in IPCP messages.
+ Added support for LCP echo, both responding to echo requests and sending ping requests with the new service
+ nx_ppp_ping_request.
+ Modified the _nx_ppp_hash_generator to include a length arguement,
+ rather than assume the rand_value is null terminated (0x0 is a valid random octet).
+
+ nxd_smtp_client.c Fixed error in invalid pointer check in _nxe_smtp_mail_send.
+ Fixed compiler error when IPv6 is disabled in _nxd_smtp_client_create.
+ Fixed bug checking for invalid pointers.
+ Fixed a typo in _nx_smtp_cmd_message.
+ Fixed case insensitive compare for challenge word.
+ Corrected 5.2 release date from 04-15-13 to 04-15-2013
+ nxd_smtp_client.h Corrected 5.2 release date from 04-15-13 to 04-15-2013
+
+ nxd_snmp.c Renamed API to be consistent with Express Logic names:
+ nx_snmp_agent_get_current_version to nx_snmp_agent_current_version_get
+ nx_snmp_agent_set_current_version to nx_snmp_agent_current_version_set
+ nx_snmp_agent_set_private_string to nx_snmp_agent_private_string_set
+ nx_snmp_agent_set_public_string to nx_snmp_agent_public_string_set
+ nx_snmp_agent_received_private_string to nx_snmp_agent_private_string_test
+ Simplified the logic in _nx_snmp_agent_private_string_test.
+ Used zero as terminal of string in _nx_snmp_agent_private_string_set
+ and _nx_snmp_agent_public_string_set.
+ Created nx_snmp_agent_public_string_set to set the SNMP Agent public string.
+ Created nx_snmp_agent_get_type_test to determine if an SNMP message received
+ is a GET or SET type.
+ Modified nx_snmp_version_1_process, nx_snmp_version_2_process and nx_snmp_version_3_process
+ to support the nx_snmp_agent_get_type_test service (save the request
+ type of the current received message).
+ Created nxd_snmp_agent_trapv2_oid_send and nxd_snmp_agent_trapv3_oid_send services.
+ nxd_snmp.h Renamed API to be consistent with Express Logic names:
+ nx_snmp_agent_get_current_version to nx_snmp_agent_current_version_get
+ nx_snmp_agent_set_version to nx_snmp_agent_version_set
+ nx_snmp_agent_set_private_string to nx_snmp_agent_private_string_set
+ nx_snmp_agent_set_public_string to nx_snmp_agent_public_string_set
+ nx_snmp_agent_received_private_string to nx_snmp_agent_private_string_test
+ Added new API nx_snmp_agent_public_string_set and nx_snmp_agent_request_get_type_test
+ Created nxd_snmp_agent_trapv2_oid_send and nxd_snmp_agent_trapv3_oid_send services.
+
+ nxd_sntp_client.c Fixed a bug in setting flags of request packet.
+ Fixed a compiler error when IPv6 is disabled.
+ Fixed compiler warnings.
+ Fixed a bug that dispersion check is disabled, the return
+ status should be success.
+ nxd_sntp_client.h Fixed default value for packet size.
+ Fixed predefined value of current year and NTP time at 1999-01-01.
+
+ nxd_telnet_server.c Added support for option negotiation. The supported options are "ECHO" and "Suppress Go Ahead".
+ Fixed a bug that connection end callback function was not invoked.
+ Added logic to handle a RST where the socket is already closed.
+ Added a callback to set remote echo (used by the NetX Duo SHELL Telnet driver).
+ nxd_telnet_server.h Added support for option negotiation. The supported options are "ECHO" and "Suppress Go Ahead".
+
+ nxd_tftp_server.c Remove the MULTI_HOME macro definition.
+ Added support for packet chaining.
+ nxd_tftp_server.h Remove the MULTI_HOME macro definition.
+ nxd_tftp_client.c Fixed packet leaks in nx_tftp_client_file_read and nx_tftp_client_file_open.
+ Remove the MULTI_HOME macro definition.
+ Modified nx_tftp_client_file_write and nx_tftp_client_file_open (write request) to save server
+ error type and message to TFTP Client if an ACK is not received after data is sent.
+ Modified nx_tftp_client_file_read to fix bug parsing the server error type from the server
+ if an error code is received.
+
+
+Release 5.4 11-23-2009
+
+ nxd_dhcp_client.c Added logic to clear non specific DHCP broadcast packets from the DHCP Client
+ receive queue in nx_dhcp_thread_entry() and nx_dhcp_get_response(). This is enabled by
+ defining the NX_DHCP_CLIENT_CLEAR_QUEUE option in nx_dhcp.h.
+ Made corrections to nx_dhcp_process for more accurate handling of retransmission
+ intervals in both the process of reaching the BOUND state and in the RENEW and REBIND
+ states.
+ Simplified the logic for extracting network parameters from the Server DHCP messages
+ between nx_dhcp_extract_information and nx_dhcp_process, in particular if the
+ ARP probe is enabled. This also fixed a bug with using nx_dhcp_send_arp_probe of
+ calling the state change notify function before the probe completed and the DHCP Client
+ properly promoted to the BOUND state.
+ Simplified the logic in nx_dhcp_start and nx_dhcp_request_client_ip for setting the DHCP
+ Client state with respect to the Client requesting a particular IP address.
+ Modified nx_dhcp_get_response() to prevent invalid packet releases.
+ Removed the requirement for having the DHCP CLient to have a non zero interface IP address for using
+ the option to skip the discovery step.
+ Modified nx_dhcp_process, nx_dhcp_release, nx_dhcp_decline and nx_dhcp_reinitialize to clear the DHCP
+ Client copy of network parameters (e.g. network mask, gateway) if the DHCP Client is clearing the
+ interface IP address and gateway.
+ Made a correction to nx_dhcp_send_response_internal to always send DISCOVERY messages
+ as broadcast packets as per the RFC 2131.
+ Made a correction to nx_dhcp_send_response_internal to always send REQUEST messages
+ as broadcast packets if the DHCP Client is in the REBIND or REQUESTING state as per the RFC 2131.
+ Made corrections for creating and sending the INFORM_REQUEST message.
+ Created nx_dhcp_decline() to send DECLINE messages
+ Modified nx_dhcp_send_request() to disallow RELEASE and DECLINE messages.
+ Removed logic in nx_dhcp_client_arp_probe_send() setting IP network parameters. Modified to only
+ return status if the IP address is not in use.
+ Modified nx_dhcp_release to set the start flag to false which is required to be able to restart the client with nx_dhcp_start().
+ Modified nx_dhcp_delete() to unbind the socket before deleting.
+ Modified nx_dhcp_delete() and nx_dhcp_create() to delete the DHCP Client packet pool only if the DHCP
+ Client task created it.
+ Modified nx_dhcp_option_retrieve() for an error in parsing the option buffer.
+ Modified nx_dhcp_process() to sleep for the NX_DHCP_TIME_INTERVAL only if the
+ DHCP client is at or beyond the bound state.
+ Modified nx_dhcp_process() to set the IP network address to zero if the ARP probe
+ fails. This ensures the DHCP Client sends the subsequent DHCP messages out as broadcast
+ (not unicast).
+ Modified nx_dhcp_process() to adjust the DHCP Client time remaining on its IP lease for
+ the length of time of the ARP probe.
+ nxd_dhcp_client.h Added nx_dhcp_decline to the list of DHCP Client API services
+ Modified nx_dhcp_client_arp_probe_send definition
+ Added internal flags to the DHCP CLient struct to simplify internal logic of the DHCP
+ Client processing messages from the Server.
+ nxd_dhcp_server.c Replaced an array of CHAR pointers with a single CHAR array for the DHCP
+ Server dhcp_name field. Modified nx_dhcp_server_create() to copy the input
+ name to the server dhcp_name field.
+
+
+Release 5.3 08-03-2009
+ nxd_bsd.c nx_bsd_raw_filter_set - sets a function pointer to the BSD function that filters packets when raw
+ sockets are enabled in NetX Duo and NX_RAW_PACKET_FILTER_ENABLE is defined at NetX Duo
+ library build time. Note that if there are multiple BSD raw sockets using the same protocol,
+ the behavior in NetX Duo is undefined. BSD sockets should copy received packets to all raw sockets
+ having the same protocol, but this is not implemented in BSD 5.3
+ nx_bsd_packet_receive- Retrieves packets enqueued on the BSD raw socket queue.
+ nx_bsd_raw_packet_info_extract - Extracts the raw packet sender and physical interface.
+ nx_bsd_raw_receive_notify - This is the callback function NetX Duo uses when a raw packet has been received
+ and raw sockets are enabled in NetX Duo.
+ nx_bsd_raw_packet_filter - receives packets from NetX Duo if raw sockets are enabled and determines if
+ BSD will consume the packet or let NetX Duo continue processing the packet e.g. hand off to TCP,
+ UDP, ICMP and other protocol handlers.
+ Modified functions
+ sendto - modified to send raw packets out the BSD socket if raw sockets are enabled.
+ recv - modified to receive raw packets if raw sockets enabled in NetX Duo
+ select - modified to receive raw packets if raw sockets enabled in NetX Duo
+ connect - modified to check for and disallow raw sockets to use this service
+ send - modified to check for and disallow raw sockets to use this service
+ soc_close - modified for closing BSD sockets enabled for raw socket handling, including
+ manully clearing packet from the raw receive queue
+ nxd_bsd.h Added the NX_BSD_PRINT_ERROR macro definition (disbaled by default0 for debug output
+
+ nxd_dhcp_client.c Added _nx_dhcp_server_address_get, for obtaining the DHCP server address and
+ _nx_dhcp_packet_pool_set to allow the host application to create the packet pool instead
+ of the default DHCP Client packet pool.
+ Added critical section and mutex protection to the DHCPv6 Client
+ Modified nx_dhcp_get_response to add missing nx_packet_release calls to prevent packet leaks.
+ nxd_dhcp_client.h Corrected the definition for NX_PACKET_ALLOCATE_TIMEOUT
+ Created a configuration option NX_DHCP_CLIENT_USER_CREATE_PACKET_POOL for the new feature for the
+ host application to optionally create the DHCP Client packet pool
+ nxd_dhcp_server.c Renamed internal functions, error constants and definitions to avoid conflicts with the
+ DHCP client.
+ nxd_dhcp_server.h Renamed internal functions, error constants and definitions to avoid conflicts with the
+ DHCP client.
+ nxd_dhcpv6_client.c Modified the DHCPv6 Client thread task to be stoppable at any time
+ Added nx_dhcpv6_stop and nx_dhcpv6_reinitialize for stopping and restarting the Client
+ Added nx_dhcpv6_register_IP_address for updating NetX Duo with the DHCPv6 Client assigned IP address
+ Modified DHCPv6 Client to remove IP address from the IP instance address table if an IP address is not reassigned
+ for example if rebind fails or host decides to release or decline an assigned address
+ Added critical section and mutex protection to the DHCPv6 Client
+ nxd_dhcpv6_client.h Corrected the timer interval for the accrued lifetime entry function to use seconds, not ticks
+ Created a BOUND state and removed the FAILURE state (not useful); the BOUND state is a drop through
+ state in the DHCPv6 Client processing thread (does nothing)
+
+
+Release 5.2 12-30-2007
+
+ nx_auto_ip.c Fixed a bug causing an infinate loop
+ Added support for NetX Duo (5.5 and later) to run over IPv4 when IPv6 is enabled.
+ nx_auto_ip.h Added support for NetX Duo (5.5 and later) to run over IPv4 when IPv6 is enabled.
+
+ nxd_bsd.c Fixed compile error caused by NX_BSD_ADDRESS_FAMILY_ERROR and NX_BSD_ERROR(NX_BSD_ERROR, __LINE__).
+ nxd_bsd.h NX_BSD_INHERIT_LISTENER_SOCKET_SETTINGS corrected to be enabled by default
+
+ nxd_dhcp_client.c First release of NetX Duo DHCP Client (branched from NetX DHCP Client)
+ Renamed the NetX Duo Client source code file from nx_dhpc.c to nxd_dhcp_client.c to specify the
+ DHCP Client and to indicate that the DHCP Client will work properly in an IPv6 enabled NetX Duo
+ environment.
+ nxd_dhcp_client.h Renamed the NetX Duo Client header file from nx_dhpc.h to nxd_dhcp_client.h
+ nxd_dhcp_server.c First release of NetX Duo DHCP Server (branched from NetX DHCP Server)
+ Renamed the NetX Duo Server source code file from nx_dhpc_server.c to nxd_dhcp_server.c to
+ indicate that the DHCP Server will work properly in an IPv6 enabled NetX Duo
+ environment.
+ nxd_dhcp_server.h Renamed the NetX Duo Server header file from nx_dhpc_server.h to nxd_dhcp_server.h
+ nxd_dhcpv6_client.c Fixed compile errors in the NetX duo 5.6 environment.
+ v5.1 patches:
+ Modified nx_dhcpv6_start() for DHCPv6 client hosts rebooting with a valid IP lease already assigned.
+ Modified nx_dhcpv6_client_create_duid() not to set the link local address. The host application must do this
+ Added support for multihoming and NetX Duo v5.5 and later.
+ nxd_dhcpv6_client.h Fixed compile errors in the NetX duo 5.6 environment.
+
+ nxd_ftp_client.c Moved data socket disconnect ahead of releasing the
+ port and removing from the listen queue, flush server
+ FTP messages from previous open request before starting
+ the current open file request, added an unnaccept call
+ if the data socket accept call fails, disconnect data
+ socket if an error occurs on the control socket ending
+ the file open request, increment the data port in the
+ event the FTP server puts the data socket in a timed wait,
+ fixed the source of the IPv6 address in the number to
+ ascii converstion routine, flush server FTP messages
+ from previous open request before starting the current
+ open file request, added an unnaccept call if the data
+ socket accept call fails, disconnect data socket if an
+ error occurs on the control socket ending the file open
+ request, increment the data port in the event the FTP
+ server puts the data socket in a timed wait.
+ nxd_ftp_client.h Added client data socket port to increment data port
+ binding on successive connections.
+ nxd_ftp_server.c Added a cast to the FTP server pointer, added a check for
+ whether or not IPv6 is enabled in NetX Duo.
+ nxd_ftp_server.h Added conditional IPv6 check for IPv6 specific
+ function declarations.
+
+ nxd_http_server.c Created _nx_http_server_content_length_get_extended and
+ _nx_http_server_content_get_extended services which will accept
+ empty (content-length = 0) PUT and POST requests.
+ Corrected 411 error codes in HTTP server replies to 400 error codes
+ since 411 error code is when the HTTP server refuses to accept a
+ request without a defined content-length. HTTP 1.0 permits requests
+ without Content-length but does not permit Content-length that does
+ not match the message body.
+
+ nx_ppp.c Added logic in nx_ppp_ipcp_state_machine_update() to handle late configuration requests
+ after the other side has completed the IPCP handshake.
+ Corrected the processing of the CHAP challenge 'name' in nx_ppp_chap_challenge_respond().
+ Fixed a corner case if packet payload size falls on a certain boundary such that the 7E marker
+ terminating PPP message overwrites the end of the packet payload boundary in nx_ppp_packet_receive_get().
+ Also fixed an error in checksum computation for the same packet payloads of the same size.
+ Added packet chaining support
+ Modified nx_ppp_receive_packet_process to only call link up callback if PPP has just transitioned to
+ IPCP complete state, not if it was already in that state.
+
+ nxd_telnet_server.c Added support for activity timeout disconnect callback. When a connection times out
+ NetX Duo Telnet Server calls the disconnect callback. Previously, it simply
+ closed the connection silently.
+ Added a current open connection counter and new API
+ nx_telnet_server_get_open_connection_count for retrieving the open conneciton count.
+ nxd_telnet_server.h Added support for the new API nx_telnet_server_get_open_connection_count
+
+
+Release 5.1 01-12-2012
+
+
+ nxd_dhcpv6_server.c Modified the nx_dhcpv6_server_create function to include a stack size. Defaulted the
+ DHCPv6 server IP address index to 1 instead of requiring the host application to use
+ the nx_dhcpv6_server_set_interface (only necessary if using the non primary interface
+ or global address not at index 1 in the IP address table).
+ Renamed internal functions and #defines to avoid compile erros in projects including the DHCPv6 Client
+ nxd_dhcpv6_server.h Renamed internal functions and #defines to avoid compile erros in projects including the DHCPv6 Client
+
+ nxd_http_client.h Created a separate header file for HTTP Client and HTTP Server
+ nxd_http_server.h Created a separate header file for HTTP Client and HTTP Server
+
+ nxd_snmp.c Added support for packet chaining
+ Moved nx_udp_socket_bind call from nx_snmp_agent_create to nx_snmp_agent_start
+ moved nx_udp_socket_unbind in nx_snmp_agent_stop. This prevent packets from
+ piling up on the receive queue before the SNMP agent thread can start processing them.
+ Corrected how SNMPv3 packets are encrypted by adding an extra sequence between the top level
+ PDU sequence and the engine ID. nx_snmp_version_3_process, nx_snmp_version_3_report_send
+ and nx_snmp_agent_encrypt_pdu modified accordingly.
+ Added trap security to provide authentication and encryption for trap messages. The keys for trap message processing
+ can take separate passwords than the keys for processing responses messages.
+ Added logic to handle empty strings in _nx_snmp_object_id_get
+ Modified nx_snmp_version_3_process and nx_snmp_version_3_discovery to fix bugs handling discovery requests.
+ Modified nx_snmp_version_3_process to fix bugs when authentication enabled.
+ Added support for negative INTEGER data types in _nx_snmp_utility_object_data_get
+ Added _nx_snmp_agent_v3_context_boots_get()
+ Added support for setting SNMP version at run time and creating private community strings:
+ Created nx_snmp_agent_get_current_version to determine the SNMP version of the most recent
+ SNMP manager packet sent to the agent.
+ Created nx_snmp_agent_set_version to set the enable/disable the SNMP agent for SNMPV1,
+ SNMPV2, and SNMPv3. These run time settings are overridden by the #defines
+ (NX_SNMP_DISABLE_V1, NX_SNMP_DISABLE_V2, and NX_SNMP_DISABLE_V3 ). Enabling the SNMP
+ agent for SNMPv1 at run time has no effect if NX_SNMP_DISABLE_V3 is defined.
+ Created nx_snmp_agent_set_private_string to set the SNMP Agent private string. This enables
+ the agent to have public and private data, and if it will accept the SNMP manager
+ packet SET requests.
+ Created nx_snmp_agent_set_public_string to set the SNMP Agent public string. The default value
+ is "public". Previously the NetX Duo SNMP Agent did not evaluate the community string
+ and as such allowed all SET requests and all data was considered public.
+ Created nx_snmp_agent_received_private_string to compare the community string
+ in the received SNMP packet with the Agent private string for a match.
+ Modified nx_snmp_agent_version_1_process and nx_snmp_agent_version_2_process to
+ send an error report if an unsupported object type is received.
+ Modified key use services to accept a null key pointer in the error handler; this allows the caller
+ to disable authentication or encryption at run time.
+ nxd_snmp.h Added new API nx_snmp_agent_get_current_version, nx_snmp_agent_set_version,
+ nx_snmp_agent_set_private_string, nx_snmp_agent_set_public_string, and
+ nx_snmp_agent_received_private_string
+
+ Modified the NX_SNMP_AGENT control block to support the new API/features. \ No newline at end of file