summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrédéric Desbiens <[email protected]>2026-01-12 07:57:11 -0500
committerGitHub <[email protected]>2026-01-12 07:57:11 -0500
commitb54bf0180199be4a9677d55113d6c5f5ed1879bc (patch)
treefdd3740572cc5c700816046c8e0fa72531263bd2
parente306027c2f60db4653e120460da523ec561edd1d (diff)
parentc40d15e8de733b8a29c1f57fe831d5444d013283 (diff)
Merge pull request #362 from eclipse-threadx/devv6.4.5.202504_rel
Merged changes ahead of the v202504 release
-rw-r--r--common/inc/nx_api.h6
-rw-r--r--common/src/nx_icmpv6_process_packet_too_big.c14
2 files changed, 17 insertions, 3 deletions
diff --git a/common/inc/nx_api.h b/common/inc/nx_api.h
index fcc973ec..4f59743c 100644
--- a/common/inc/nx_api.h
+++ b/common/inc/nx_api.h
@@ -529,9 +529,9 @@ VOID _nx_trace_event_update(TX_TRACE_BUFFER_ENTRY *event, ULONG timestamp, ULONG
#define AZURE_RTOS_NETXDUO
#define NETXDUO_MAJOR_VERSION 6
#define NETXDUO_MINOR_VERSION 4
-#define NETXDUO_PATCH_VERSION 4
-#define NETXDUO_BUILD_VERSION 202503
-#define NETXDUO_HOTFIX_VERSION 'a'
+#define NETXDUO_PATCH_VERSION 5
+#define NETXDUO_BUILD_VERSION 202504
+#define NETXDUO_HOTFIX_VERSION ' '
/* Define the following symbols for backward compatibility */
#define EL_PRODUCT_NETXDUO
diff --git a/common/src/nx_icmpv6_process_packet_too_big.c b/common/src/nx_icmpv6_process_packet_too_big.c
index 53294b16..a7adb947 100644
--- a/common/src/nx_icmpv6_process_packet_too_big.c
+++ b/common/src/nx_icmpv6_process_packet_too_big.c
@@ -164,6 +164,20 @@ NX_INTERFACE *if_ptr;
status = _nx_icmpv6_dest_table_add(ip_ptr, original_destination_ip,
&dest_entry_ptr, &default_next_hop_address[0], mtu, 0,
packet_ptr -> nx_packet_address.nx_packet_ipv6_address_ptr);
+
+ /* If a new ND cache is created, force the entry to be "INCOMPLETE" so that the timer logic will
+ re-try, and then timeout if no responses are received. */
+ if(dest_entry_ptr -> nx_ipv6_destination_entry_nd_entry != NX_NULL)
+ {
+ ND_CACHE_ENTRY *nd_entry = dest_entry_ptr -> nx_ipv6_destination_entry_nd_entry;
+ if(nd_entry -> nx_nd_cache_nd_status == ND_CACHE_STATE_CREATED)
+ {
+ _nx_icmpv6_send_ns(ip_ptr, &nd_entry -> nx_nd_cache_dest_ip[0], 1,
+ nd_entry -> nx_nd_cache_outgoing_address, 0, nd_entry);
+ nd_entry->nx_nd_cache_num_solicit = NX_MAX_MULTICAST_SOLICIT - 1;
+ nd_entry->nx_nd_cache_timer_tick = ip_ptr -> nx_ipv6_retrans_timer_ticks;
+ }
+ }
}
/* Release the packet. */