Skip to content

Releases: eclipse-threadx/netxduo

Eclipse ThreadX NetX Duo 6.4.1

29 Feb 02:12
18704ff
Compare
Choose a tag to compare

What's Changed

New Contributors

  • @ericwol-msft made their first contribution in #231
  • @timlt made their first contribution in #241
  • @wickste made their first contribution in #244

Full Changelog: v6.4.0_rel...v6.4.1_rel

Azure RTOS 6.4.0

02 Jan 00:52
6053c3f
Compare
Choose a tag to compare
    In this release, Time Sensitive Networking (TSN) is supported by NetX Duo, including following features.
        1. Generic link layer support
        2. Virtual local area network (VLAN)
        3. Multiple registration protocol (MRP)
          3.1 Multiple VLAN registration protocol (MVRP)
          3.2 Multiple Stream registration protocol (MSRP)
        4. Stream reservation protocol (SRP)
        5. Credit based shaper (CBS/Qav)
        6. Time aware shaper (TAS/Qbv)
        7. Frame preemption (FPE/Qbu)

    Files are modified or added to support time sensitive networking:
        addons/bsd/bsd.c
        addons/bsd/bsd.h
        addons/ptp/nxd_ptp_client.c
        addons/ptp/nxd_ptp_client.h
        addons/rtp/nx_rtp_sender.c
        addons/rtp/nx_rtp_sender.h
        common/inc/nx_api.h
        common/inc/nx_link.h
        common/inc/nx_packet.h
        common/inc/nx_tcp.h
        common/inc/nx_udp.h
        common/inc/nx_user_sample.h
        common/src/nx_ip_deferred_link_status_process.c
        common/src/nx_link.c
        common/src/nx_packet_allocate.c
        common/src/nx_packet_vlan_priority_set.c
        common/src/nx_ram_network_driver.c
        common/src/nx_tcp_packet_send_control.c
        common/src/nx_tcp_socket_create.c
        common/src/nx_tcp_socket_retransmit.c
        common/src/nx_tcp_socket_send_internal.c
        common/src/nx_tcp_socket_transmit_configure.c
        common/src/nx_tcp_socket_vlan_priority_set.c
        common/src/nx_udp_socket_create.c
        common/src/nx_udp_socket_vlan_priority_set.c
        common/src/nxd_udp_socket_send.c
        common/src/nxe_packet_vlan_priority_set.c
        common/src/nxe_tcp_socket_vlan_priority_set.c
        common/src/nxe_udp_socket_vlan_priority_set.c
        tsn/inc/nx_mrp.h
        tsn/inc/nx_msrp.h
        tsn/inc/nx_mvrp.h
        tsn/inc/nx_shaper.h
        tsn/inc/nx_srp.h
        tsn/src/nx_mrp.c
        tsn/src/nx_msrp.c
        tsn/src/nx_mvrp.c
        tsn/src/nx_shaper.c
        tsn/src/nx_srp.c
        utility/iperf/nx_iperf.c

    Files are modified for Azure IoT:
            nx_azure_iot*                                      Corrected the mutex release.
                                                               Fixed compilation warnings for Azure Device Update.
                                                               Added callback for tracking the telemetry ack.
                                                               Removed IoT Security Module.

    Other modified files:
            samples/demo_netxduo_snmp.c                        Improved string length verification.
            samples/demo_netxduo_snmp.h                        Improved string length verification.

    Added regression test systems and setup actions.

Azure RTOS 6.3.0

31 Oct 02:37
Compare
Choose a tag to compare
    Files are added to support new protocols: Real Time Transport Protocol (RTP), RTP Control Protocol (RTCP), and Real Time Streaming Protocol (RTSP)
        addons/rtp/nx_rtp_sender.c
        addons/rtp/nx_rtp_sender.h
        addons/rtsp/nx_rtsp_server.c
        addons/rtsp/nx_rtsp_server.h

    Files are modified to improve the internal logic for finding a free port:
        common/src/nx_tcp_free_port_find.c
        common/src/nx_udp_free_port_find.c

    Files are modified to improve packet length or buffer length verification:
        common/inc/nx_icmpv6.h
        common/src/nx_icmpv6_packet_process.c
        common/src/nx_icmpv6_process_na.c
        common/src/nx_icmpv6_process_ns.c
        common/src/nx_icmpv6_process_packet_too_big.c
        common/src/nx_icmpv6_process_redirect.c
        common/src/nx_icmpv6_process_ra.c

    Files are modified to support random IP id:
        common/inc/nx_api.h
        common/inc/nx_user_sample.h
        common/src/nx_ip_create.c
        common/src/nx_ip_header_add.c
        common/src/nx_ipv6_fragment_process.c

    Files are modified to fix typo in the comments:
        crypto_libraries/src/nx_crypto_3des.c
        crypto_libraries/src/nx_crypto_aes.c
        crypto_libraries/src/nx_crypto_des.c
        crypto_libraries/src/nx_crypto_drbg.c
        crypto_libraries/src/nx_crypto_ecdh.c
        crypto_libraries/src/nx_crypto_ecdsa.c
        crypto_libraries/src/nx_crypto_ecjpake.c
        crypto_libraries/src/nx_crypto_hkdf.c
        crypto_libraries/src/nx_crypto_hmac.c
        crypto_libraries/src/nx_crypto_hmac_md5.c
        crypto_libraries/src/nx_crypto_hmac_sha1.c
        crypto_libraries/src/nx_crypto_hmac_sha2.c
        crypto_libraries/src/nx_crypto_hmac_sha5.c
        crypto_libraries/src/nx_crypto_md5.c
        crypto_libraries/src/nx_crypto_pkcs1_v1.5.c
        crypto_libraries/src/nx_crypto_rsa.c
        crypto_libraries/src/nx_crypto_sha1.c
        crypto_libraries/src/nx_crypto_sha2.c
        crypto_libraries/src/nx_crypto_sha5.c
        crypto_libraries/src/nx_crypto_tls_prf_1.c
        crypto_libraries/src/nx_crypto_tls_prf_sha256.c
        crypto_libraries/src/nx_crypto_tls_prf_sha384.c
        crypto_libraries/src/nx_crypto_tls_prf_sha512.c

    File is modified to fix packet buffer overrun:
        nx_secure/src/nx_secure_tls_send_certificate.c

    File is modified to check length before sending:
        nx_secure/src/nxe_secure_tls_session_send.c

    File is modified to fix the logic of handling close notify packet from peer:
        nx_secure/src/nx_secure_dtls_session_end.c

    Files are modified to avoid duplicate packet release when DTLS send fails:
        nx_secure/src/nx_secure_dtls_send_record.c
        nx_secure/src/nx_secure_dtls_server_handshake.c
        nx_secure/src/nx_secure_dtls_session_receive.c

    Files are modified for Azure IoT:
        nx_azure_iot*                                      Corrected the include order for IoT security module.
                                                           Added error state in notification callback to let user application have the chance to retry new update for Azure Device Update.
                                                           Reported the result of each step for Azure Device Update.
                                                           Improved the code to ignore null file url for Azure Device Update.
                                                           Added the PnP check for Azure Device Update.
                                                           Added sha256 in driver preprocess command for Azure Device Update.
                                                           Fixed multiple proxy update issue for Azure Device Update.
                                                           Added support for skipping failed step/update for Azure Device Update.
                                                           Corrected the packet allocation for MQTT over WebSocket.
    Other modified files:
        common/src/nx_ipv4_packet_receive.c                Validated packet length for fragments. Make sure length of packet with more bit flag is multiple of 8.
        common/src/nx_igmp_packet_process.c                Unified checksum calculation by function call.
        common/src/nx_tcp_packet_process.c                 Validated TCP header buffer to avoid span in multiple packets.
        common/src/nx_tcp_socket_state_data_check.c        Corrected the acked packet count.

        addons/bsd/nxd_bsd.h                               Added options to disable OS BSD APIs overriding.
        addons/bsd/nxd_bsd.c                               Support random IP id.
                                                           Used new APIs/structs naming.

        addons/dhcp/nxd_dhcp_client.c                      Support random IP id.
                                                           Corrected caller checking for the function _nxe_dhcp_state_change_notify.
        addons/dhcp/nxd_dhcp_server.c                      Fixed local variable type issue for the function _nx_dhcp_server_extract_information under strict aliasing compiling option.
                                                           Corrected the logic of verifying the incoming packet length.
        addons/dhcp/nxd_dhcpv6_server.c                    Fixed server not update client record issue when continuous CONFIRM message received.
                                                           Corrected server for ignoring both preferred-lifetime and valid-lifetime in client request message(s).

        addons/dns/nxd_dns.c                               Reset the receive status for mismatch ID to avoid processing and releasing null packet.

        addons/ftp/nxd_ftp_client.c                        Corrected the length of packet buffer to avoid write overflow.
                                                           Fixed packet double release issue in _nx_ftp_client_file_write.
        addons/ftp/nxd_ftp_server.c                        Set packet pointer to NULL after released to fix duplicate packet release issue.
                                                           Avoided duplicate creation for data socket when previous command is not finished.
                                                           Fixed data length underflow when TCP MSS is less than 255.
                                                           Removed deletion of control socket in stop API which is only needed in delete API.

        addons/mdns/nxd_mdns.h                             Corrected mDNS symbols check for NX_MDNS_ENABLE_IPV6.

        addons/mqtt/nxd_mqtt_client.c                      Improved internal logic for MQTT packet allocation.

        addons/nat/nx_nat.c                                Fixed packet double release issue in _nx_nat_process_packet.

        addons/ppp/nx_ppp.c                                Supported processing compressed data.
        addons/ppp/nx_ppp.h                                Supported processing compressed data.

        addons/smtp/nxd_smtp_client.c                      Set nx_smtp_server_packet to NULL to avoided duplicate packet release in _nx_smtp_utility_read_server_code.

        addons/snmp/nxd_snmp_.c                            Combined the functions of processing snmp v1 and v2.
                                                           Improved packet length or buffer length verification.
                                                           Fixed packet double release issue.
        addons/snmp/nxd_snmp_.h                            Combined the functions of processing snmp v1 and v2.

        addons/sntp/nxd_sntp_client.c                      Dropped packet chain for SNTP data to avoid write overflow.

Azure RTOS 6.2.1

08 Mar 08:42
Compare
Choose a tag to compare

Azure RTOS NetX Duo 6.2.1 release contains the following features and changes:

Improvements of NetX Duo

        File is modified to remove the invalid check which would disable the function of clearing tcp_receive_notify:
            nxe_tcp_socket_receive_notify.c

        Files are modified to remove duplicated macros in nx_port.h, as same macros are defined in nx_api.h:
            netxduo/ports/cortex_m0/gnu/inc/nx_port.h
            netxduo/ports/cortex_m23/gnu/inc/nx_port.h
            netxduo/ports/cortex_m3/gnu/inc/nx_port.h
            netxduo/ports/cortex_m33/gnu/inc/nx_port.h
            netxduo/ports/cortex_m4/gnu/inc/nx_port.h
            netxduo/ports/cortex_m7/gnu/inc/nx_port.h
            netxduo/ports/cortex_r4/ac6/inc/nx_port.h
            netxduo/ports/cortex_r4/gnu/inc/nx_port.h
            netxduo/ports/cortex_r5/gnu/inc/nx_port.h
            netxduo/ports/rxv2/ccrx/inc/nx_port.h

        File is modified to fix the issue which caused by driver entry pointer is NULL:
            nx_ip_interface_status_check.c

        Files are modified to fix compiler warnings:
            nx_icmpv6_send_queued_packets.c
            nx_ip_packet_checksum_compute.c
            nxd_ipv6_stateless_address_autoconfig_disable.c
            nxd_ipv6_stateless_address_autoconfig_enable.c

        Files are modified to fix compiler errors when x509 is disabled:
            nx_secure_dtls_process_clienthello.c
            nx_secure_dtls_server_local_certificate_add.c
            nx_secure_dtls_server_local_certificate_remove.c
            nx_secure_dtls_server_trusted_certificate_add.c
            nx_secure_dtls_server_trusted_certificate_remove.c
            nx_secure_dtls_session_local_certificate_add.c
            nx_secure_dtls_session_local_certificate_remove.c
            nx_secure_dtls_session_trusted_certificate_add.c
            nx_secure_dtls_session_trusted_certificate_remove.c
            nx_secure_generate_client_key_exchange.c
            nx_secure_generate_premaster_secret.c
            nx_secure_process_client_key_exchange.c
            nx_secure_process_server_key_exchange.c
            nx_secure_tls_active_certificate_set.c
            nx_secure_tls_client_handshake.c
            nx_secure_tls_ecc_generate_keys.c
            nx_secure_tls_local_certificate_add.c
            nx_secure_tls_local_certificate_find.c
            nx_secure_tls_local_certificate_remove.c
            nx_secure_tls_metadata_size_calculate.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_finished.c
            nx_secure_tls_process_remote_certificate.c
            nx_secure_tls_remote_certificate_allocate.c
            nx_secure_tls_remote_certificate_buffer_allocate.c
            nx_secure_tls_remote_certificate_free.c
            nx_secure_tls_remote_certificate_free_all.c
            nx_secure_tls_remote_certificate_verify.c
            nx_secure_tls_send_certificate.c
            nx_secure_tls_send_certificate_verify.c
            nx_secure_tls_send_clienthello_extensions.c
            nx_secure_tls_send_finished.c
            nx_secure_tls_server_certificate_find.c
            nx_secure_tls_server_certificate_remove.c
            nx_secure_tls_session_create_ext.c
            nx_secure_tls_session_renegotiate.c
            nx_secure_tls_session_reset.c
            nx_secure_tls_session_x509_client_verify_configure.c
            nx_secure_tls_trusted_certificate_add.c
            nx_secure_tls_trusted_certificate_remove.c

        File is modified to initialize metadata for certificate using packet buffer:
            nx_secure_tls_process_remote_certificate.c

        File is modified to include TLS port header in X509 header:
            nx_secure_x509.h

        Files are modified to fix compiler warnings when NX_SECURE_KEY_CLEAR and NX_SECURE_TLS_ENABLE_TLS_1_3 are both defined:
            nx_secure_tls_send_clienthello_extensions.c
            nx_secure_tls_send_serverhello_extensions.c

        Files are modified to fix the logic to cleanup key materials:
            nx_secure_tls_1_3_client_handshake.c
            nx_secure_tls_1_3_finished_hash_generate.c
            nx_secure_tls_process_finished.c
            nx_secure_tls_process_record.c

        File is modified to fix packet leak in TLS 1.3:
            nx_secure_tls_session_receive_records.c

        File is modified to fix compiler errors when NX_SECURE_TLS_USE_SCSV_CIPHPERSUITE is defined:
            nx_secure_tls_send_clienthello.c

        File is modified to fix compiler errors when x509 is disabled:
            nx_crypto_generic_ciphersuites.c

        File is modified to align the buffer size of the huge numbers:
            nx_crypto_rsa.c

        Other modified files:
            nx_api.h                                          Updated product constants.

            nx_azure_iot*                           When X509 authentication is used, clear MQTT password field.
                                                    Added ADU version string.
                                                    Reported ADU agent state as IDLE to server after receiving cancel command.

            nx_cloud.c                              Fixed event clear function.

            nxd_ftp_client.c                        Cleared the client ID.

            nxd_sntp_client.c                       Cleared the client ID.

            nxd_telnet_client.c                     Checked the client ID when creating, and cleared the client ID when deleting.

            nxd_telnet_server.c                     Corrected the processing of disconnection to let user get the consistent value of open connections in different cases.

            nxd_bsd.c                               Corrected the result of FIONREAD when using TCP socket.


Azure RTOS 6.2.0

10 Nov 03:33
Compare
Choose a tag to compare

Azure RTOS NetX Duo 6.2.0 release contains the following features and changes:

Device Update for IoT Hub agent

Azure Device Update for IoT Hub (a.k.a ADU) is a service that enables you to deploy over-the-air updates (OTA) to your IoT devices. Azure RTOS has included the ADU agent as part of the IoT Middleware.

Improvements of NetX Duo

            nx_utility.c                            Improved the internal logic.

            nx_azure_iot*                           Supported Device Update for IoT Hub.
                                                    Supported mqtt over websocket.
            
            nx_websocket_client.c                   Initial release.

            nx_websocket_client.h                   Initial release.

            nx_web_http_server.c                    Supported random nonce for digest authentication.
                                                    Fixed the issue of processing empty password.

            nx_web_http_server.h                    Supported random nonce for digest authentication.

            nxd_http_server.c                       Fixed the issue of processing empty password.
                                                    Supported random nonce for digest authentication.

            nxd_http_server.h                       Supported random nonce for digest authentication.
            
            nxd_mqtt_client.c                       Supported mqtt over websocket.
                                                    Improved the logic of sending packet.

            nxd_mqtt_client.h                       Supported mqtt over websocket.

            nxd_snmp.c                              Fixed compiler warnings.

            nxd_sntp_client.c                       Fixed the typo of August string.

        Files are modified or added to support HTTP Proxy:
            nx_api.h
            nx_http_proxy_client.h
            nx_http_proxy_client.c
            nx_tcp_socket_block_cleanup.c
            nx_tcp_socket_packet_process.c
            nx_tcp_socket_state_data_check.c
            nx_tcp_socket_state_established.c
            nx_tcp_socket_state_syn_sent.c
            nx_tcp_socket_state_wait.c
            nxd_tcp_client_socket_connect.c

        Files are modified to fix handling of multiple handshake messages:
            nx_secure_tls_1_3_server_handshake.c
            nx_secure_tls_server_handshake.c

        Files are modified to fix TLS 1.3 version negotiation with no extensions in hello message:
            nx_secure_tls_process_clienthello.c
            nx_secure_tls_process_serverhello.c

        Files are modified to fix compilation error:
            nx_secure_tls_send_clienthello_extensions.c
            nx_secure_tls_session_sni_extension_set.c

        Files are modified to fix renegotiation when receiving in non-blocking mode:
            nx_secure_tls.h
            nx_secure_tls_session_receive.c
            nx_secure_tls_session_renegotiate.c
            nx_secure_tls_session_reset.c

        Files are modified or added to support custom key generation:
            nx_secure_tls.h
            nx_secure_generate_client_key_exchange.c
            nx_secure_generate_master_secret.c
            nx_secure_generate_premaster_secret.c
            nx_secure_generate_server_key_exchange.c
            nx_secure_generate_session_keys.c
            nx_secure_process_client_key_exchange.c
            nx_secure_process_server_key_exchange.c
            nx_secure_remote_certificate_verify.c
            nx_secure_session_keys_set.c
            nx_secure_tls_1_3_crypto_init.c
            nx_secure_tls_ecc_generate_keys.c
            nx_secure_tls_find_curve_method.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_extensions.c
            nx_secure_tls_process_server_key_exchange.c
            nx_secure_tls_process_serverhello_extensions.c
            nx_secure_tls_psk_add.c
            nx_secure_tls_remote_certificate_verify.c
            nx_secure_tls_send_certificate_verify.c
            nx_secure_tls_send_client_key_exchange.c
            nx_secure_tls_send_server_key_exchange.c
            nx_secure_tls_session_create_ext.c
            nx_secure_tls_session_keys_set.c
            nx_secure_tls_trusted_certificate_add.c
            nx_secure_tls_verify_mac.c
            nx_secure_trusted_certificate_add.c
            nx_secure_verify_mac.c

        Files are modified or added to add an API that sets a custom packet pool for TLS session:
            nx_secure_tls.h
            nx_secure_tls_api.h
            nx_secure_tls_session_packet_pool_set.c
            nx_secure_tls_session_start.c
            nxe_secure_tls_session_packet_pool_set.c

        File is modified to add macro of EC curve types:
            nx_crypto_const.h

        Other modified file:
            nx_crypto_generic_ciphersuites.c                  Modified comments.
            nx_crypto_aes.c                                   Fixed compiler warnings.

Azure RTOS 6.1.12

29 Jul 07:19
Compare
Choose a tag to compare

Azure RTOS NetX Duo 6.1.12 release contains the following features and changes:

            nx_api.h                                Fixed compiler errors when TX_SAFETY_CRITICAL is enabled.

            nx_tcp_socket_connection_reset.c        Corrected the logic of flushing receive queue after RST is received.

            nxd_mqtt_client.c                       Improved internal logic for coverage.

            nx_azure_iot*                           Fixed the bug of getting component property.

            nxd_dhcp_client.c                       Corrected the logic of adding server identifier option if skipping DHCP discover.
                                                    Cleaned up error check logic.
                                                    Properly terminated thread.
                                                    Improved internal logic.

            nxd_dhcpv6_client.c                     Supported adding user options.

            nxd_dhcpv6_client.h                     Supported adding user options.

            nxd_sntp_client.c                       Corrected the port check.

            nx_auto_ip.c                            Fixed compiler errors when TX_SAFETY_CRITICAL is enabled.

            nx_ppp.c                                Fixed compiler errors when TX_SAFETY_CRITICAL is enabled.

            nx_pppoe_client.c                       Fixed compiler errors when TX_SAFETY_CRITICAL is enabled.

            nx_pppoe_server.c                       Fixed compiler errors when TX_SAFETY_CRITICAL is enabled.

            nxd_bsd.c                               Fixed compiler warnings.

            nx_web_http_client.c                    Fixed the invalid packet release issue when sending user-allocated packet.

            nx_tcpserver.c                          Corrected the index of the remote certificate list.

            nxd_dns.c                               Cleaned up error check logic.


        File is modified to clear out the entire key material:
            nx_secure_tls_key_material_init.c

        Files are modified to fix compiler errors when IPv4 is disabled:
            nx_secure_dtls_session_cache.c
            nx_secure_dtls_session_receive.c
            nx_secure_dtls_session_send.c

        Files are modified to support 64-byte PSKs to be used:
            nx_secure_tls.h
            nx_secure_tls_psk_add.c

        Files are modified to add checking for overflow of 64-bit sequence number:
            nx_secure_dtls_send_record.c
            nx_secure_tls_process_record.c
            nx_secure_tls_send_record.c
            nx_secure_tls_verify_mac.c

        Files are modified to check expiration for all the certificates in the certificate chain:
            nx_secure_tls_remote_certificate_verify.c
            nx_secure_x509_certificate_chain_verify.c
            nx_secure_x509_crl_revocation_check.c
            nx_secure_x509.h

        Files are modified to correct alert message for downgrade protection:
            nx_secure_tls.h
            nx_secure_tls_1_3_client_handshake.c
            nx_secure_tls_map_error_to_alert.c

        Files are modified to remove duplicated alerts:
            nx_secure_dtls_client_handshake.c
            nx_secure_dtls_server_handshake.c
            nx_secure_tls_1_3_client_handshake.c
            nx_secure_tls_1_3_server_handshake.c
            nx_secure_tls_client_handshake.c
            nx_secure_tls_server_handshake.c

        Files are modified to improve buffer length verification:
            nx_secure_tls_process_certificate_request.c
            nx_secure_tls_process_client_key_exchange.c
            nx_secure_tls_process_record.c
            nx_secure_tls_process_server_key_exchange.c

        Files are modified to add support of curve448:
            nx_crypto_ec.h
            nx_crypto_ec.c
            nx_crypto_ecdh.c
            nx_crypto_generic_ciphersuites.c
            nx_crypto_methods.c

Azure RTOS 6.1.11

26 Apr 07:00
Compare
Choose a tag to compare

Azure RTOS NetX Duo 6.1.11 release contains the following features and changes:

    Files are modified to correct the random value in case NX_RAND returns negative value:
        nx_tcp_client_socket_bind.c
        nx_udp_socket_bind.c

    Files are modified to add internal IP address change notification for mDNS:
        nx_api.h
        nx_icmpv6_perform_DAD.c
        nx_icmpv6_process_ra.c
        nx_ip_interface_address_set.c
        nx_rarp_packet_receive.c
        nxd_ipv6_address_set.c

    Other modified file:
        nx_api.h                                Updated product constants.
        nx_arp_packet_receive.c                 Fixed compiler errors.

        nx_azure_iot*                           Updated the source code to be compatible with azure-sdk-for-c 1.3.0.
                                                Corrected the mutex timeout of getting packet id.

        nx_web_http_client.c                    Released invalid packet.

        nx_web_http_server.c                    Supported ECC configuration.

        nx_web_http_server.h                    Supported ECC configuration.

        nx_tcpserver.c                          Supported ECC configuration.
                                                Corrected the wait option of TLS connection.

        nx_tcpserver.h                          Supported ECC configuration.

        nxd_mdns.c                              Corrected the random value.
                                                Fixed compiler warnings.
                                                Fixed the issue of timer when NX_IP_PERIODIC_RATE is redefined.
                                                Used internal ip address change notification.

        nxd_mdns.h                              Fixed the issue of timer when NX_IP_PERIODIC_RATE is redefined.


        nxd_dhcp_client.c                       Set the IP header pointer.

        nxd_http_client.c                       Corrected the status when received error code.

        nx_auto_ip.c                            Fixed compiler warnings.


        nx_secure_tls.h                         Enabled AEAD when TLS 1.3 is enabled.
        nx_secure_tls_session_renegotiate.c     Changed from error checking to assert.
        nx_secure_x509_expiration_check.c       Changed LONG to ULONG to extend the time range.
        nx_secure_tls_remote_certificate_buffer_allocate.c
                                                Added assert to check for zero
        nx_secure_x509.c                        Improved internal logic
        nx_secure_x509_certificate_revocation_list_parse.c
                                                Improved internal logic    
        nx_secure_tls_session_keys_set.c        Improved internal logic    


    Files are modified to improve code coverage results:
        nx_secure_tls_process_certificate_verify.c
        nx_secure_tls_verify_mac.c
        nx_secure_tls_record_payload_encrypt.c
        nx_secure_x509_certificate_verify.c
        nx_secure_x509_crl_revocation_check.c
        nx_secure_tls_send_record.c
        nx_secure_x509_certificate_chain_verify.c
        nx_secure_tls_session_receive.c
        nx_secure_tls_session_receive_records.c
        nx_secure_tls_record_payload_decrypt.c

    Files are modified to remove unnecessary checking for coverage:
        nx_secure_tls_ecc_generate_keys.c
        nx_secure_tls_generate_premaster_secret.c
        nx_secure_tls_process_record.c
        nx_secure_tls_process_remote_certificate.c
        nx_secure_tls_process_server_key_exchange.c
        nx_secure_tls_send_certificate.c
        nx_secure_tls_send_certificate_verify.c
        nx_secure_tls_session_start.c
        nx_secure_tls_process_certificate_verify.c 
        nx_secure_tls_process_handshake_header.c   
        nx_secure_tls_send_clienthello_extensions.c
        nx_secure_tls_send_serverhello_extensions.c
        nx_secure_tls_session_create_ext.c
        nx_secure_x509_expiration_check.c
        nx_secure_tls_send_clienthello.c


    File is modified to add null pointer checking:
        nx_secure_tls_session_create_ext.c

    File is modified to correct the number of the extensions to fix the crash issue when processing ClientHello without extensions:
        nx_secure_tls_process_clienthello.c

    File is modified to check data size used for pkcs#1.5 padding when sending ClientKeyExchange message:
        nx_secure_tls_send_client_key_exchange.c            

    File is modified to add exception case:
        nx_secure_tls_send_clienthello_extensions.c

    File is modified to fix the issue of endless loop:
        nx_secure_tls_record_payload_decrypt.c

    Files are modified to remove public key format checking in key share extension handling and allow the crypto method to check the format:
        nx_secure_tls_process_clienthello_extensions.c
        nx_secure_tls_process_serverhello_extensions.c

    File is modified to correct the operation for verification:
        nx_crypto_pkcs1_v1.5.c

    File is modified to clean up the memory functions for self test:
        nx_crypto.h

    File is moved to vendor-specific folder:
        nx_crypto_module_start.c

    Files are modified to add support of curve25519:
        nx_crypto_const.h
        nx_crypto_ec.h
        nx_crypto_ecdh.h
        nx_crypto_ec.c
        nx_crypto_ecdh.c
        nx_crypto_generic_ciphersuites.c
        nx_crypto_methods.c

    File is modified to fix integer division by zero bug:
        nx_crypto_huge_number.c

Azure RTOS 6.1.10

03 Feb 19:13
Compare
Choose a tag to compare

Azure RTOS NetX Duo 6.1.10 release contains the following features and changes:

    Files are modified to fix unsigned integers comparison that signed overflow in C is undefined:
        common/src/nx_icmpv6_send_error_message.c
        common/src/nx_tcp_socket_packet_process.c
        common/src/nx_tcp_socket_state_ack_check.c
        common/src/nx_tcp_socket_state_data_check.c

    Other modified files:
        common/inc/nx_api.h                        Updated product constants.
        common/src/nx_tcp_socket_send_internal.c   Improved the throughput of TCP transmission.
        common/src/nxd_udp_socket_send.c           Corrected the logic for queued packet on TCP/IP offload interface since
                                                     the upper layer always treats the prepend pointer at UDP header for retransmission.
        common/src/nx_utility.c                    Fixed the issue of reading overflow.



        addons/azure_iot/nx_azure_iot*             Handled throttling response from DPS.
                                                   Corrected the logic of getting bool value in nx_azure_iot_json_reader_token_bool_get().
                                                   Improved the output in nx_azure_iot_hub_client_reported_properties_create().
                                                   Corrected the return value of nx_azure_iot_hub_client_reported_properties_send().

        addons/BSD/nxd_bsd.c                       Fixed block pool buffer alignment.

        addons/dhcp/nxd_dhcp_client.c              Supported multiple client instances.

        addons/tftp/nxd_tftp_server.c              Improved the logic of processing chained packet.
                                                   Checked the format of the received packet.
                                                   Fixed the issue of cleaning up the client request entry.

        addons/snmp/nxd_snmp.c                     Initialized the sequence byte value.

        addons/web/nx_web_http_server.c            Fixed the HTTP Server state issue with basic authorization.

        addons/web/nxd_http_server.c               Fixed the HTTP Server state issue with basic authorization.

        addons/sntp/nxd_sntp_client.c              Corrected the Reference Identifier.


    Files are modified to improve code coverage results:
        nx_secure/src/nx_secure_tls_remote_certificate_free.c
        nx_secure/src/nx_secure_tls_remote_certificate_verify.c

    File is modified to fix packet leak bug in TLS packet allocation:
        nx_secure/src/nx_secure_tls_packet_allocate.c

    File is modified to remove unnecessary checking for coverage:
        nx_secure/src/nx_secure_tls_remote_certificate_buffer_allocate.c

    File is modified to fix packet leak in DTLS:
        nx_secure/src/nx_secure_dtls_retransmit_queue_flush.c

    File is modified to add null pointer checking:
        nx_secure/src/nx_secure_tls_session_create_ext.c

    Files are modified or added to fix DTLS out-of-order message processing:
        nx_secure/inc/nx_secure_dtls.h
        nx_secure/src/nx_secure_dtls_client_handshake.c
        nx_secure/src/nx_secure_dtls_server_handshake.c
        nx_secure/src/nx_secure_dtls_process_header.c
        nx_secure/src/nx_secure_dtls_process_record.c
        nx_secure/src/nx_secure_dtls_session_end.c
        nx_secure/src/nx_secure_dtls_session_receive.c
        nx_secure/src/nx_secure_dtls_session_sliding_window_check.c
        nx_secure/src/nx_secure_dtls_session_sliding_window_update.c

    Files are modified to update cookie handling in DTLS client:
        nx_secure/inc/nx_secure_dtls.h
        nx_secure/src/nx_secure_dtls_process_helloverifyrequest.c
        nx_secure/src/nx_secure_dtls_send_clienthello.c
        nx_secure/src/nx_secure_dtls_session_reset.c

    File is modified to update product constants:
        nx_secure/incnx_secure_tls.h

    File is modified to be excluded from build:
        crypto_libraries/src/nx_crypto_module_start.c

    Files are modified to improve performance:
        crypto_libraries/inc/nx_crypto.h
        crypto_libraries/src/nx_crypto_aes.c
        crypto_libraries/inc/nx_crypto_aes.h
        crypto_libraries/src/nx_crypto_ec.c
        crypto_libraries/inc/nx_crypto_ec.h
        crypto_libraries/src/nx_crypto_huge_number.c
        crypto_libraries/src/nx_crypto_sha2.c

Azure RTOS 6.1.9

18 Oct 08:14
Compare
Choose a tag to compare

Azure RTOS NetX Duo 6.1.9 release contains the following features

Files are modified to include necessary header file:
        common/inc/nx_arp.h
        common/inc/nx_icmp.h
        common/inc/nx_igmp.h
        common/inc/nx_ip.h
        common/inc/nx_md5.h
        common/inc/nx_packet.h
        common/inc/nx_rarp.h
        common/inc/nx_tcp.h
        common/inc/nx_udp.h
        addons/auto_ip/nx_auto_ip.h
        addons/ftp/nxd_ftp_server.h
        addons/ftp/nxd_ftp_server.c
        addons/ftp/nxd_ftp_client.h
        addons/dhcp/nxd_dhcp_server.h
        addons/dhcp/nxd_dhcpv6_client.h
        addons/dhcp/nxd_dhcpv6_server.h
        addons/mqtt/nxd_mqtt_client.h
        addons/ppp/nx_ppp.h
        addons/pppoe/nx_pppoe_client.h 
        addons/pppoe/nx_pppoe_server.h 
        addons/smtp/nx_smtp_client.h
        addons/telnet/nx_telnet_client.h
        addons/telnet/nx_telnet_server.h
        addons/tftp/nx_tftp_client.h
        addons/tftp_nx_tftp_server.h
        addons/web/nx_tcpserver.c

Other modified files:
        common/inc/nx_api.h                               Added support for getting interface type.
        common/src/nx_ip_dispatch_process.c               Expanded protocols support for raw packet.
        common/src/nx_ram_network_driver.c                Added sample of returning link's interface type.
        common/src/nx_tcp_socket_state_ack_check.c        Fixed the bug of race condition.
                                                          Removed useless code.
        common/src/nx_tcp_socket_send_internal.c          Fixed the bug of race condition.
        common/src/nx_utility.c                           Removed useless condition.

        addons/azure_iot/*                                Supported Azure IoT Plug and Play.
        addons/bsd/nxd_bsd.c                              Fixed NULL pointer access for raw socket.
        addons/bsd/nxd_bsd.h                              Defined IP protocols for ICMP, IGMP and ICMPv6.
        addons/dns/nxd_dns.c                              Fixed compiler warnings.
        addons/web/nx_tcpserver.c                         Removed debug output.
        addons/web/nx_tcpserver.h                         Deprecated unused macros.
        addons/web/nx_web_http_server.h                   Deprecated unused macros.
        addons/ftp/nxd_ftp_server.c                       Fixed the issue of clearing data socket and processing disconnection event.
                                                          Improved the PASV response.
                                                          Fixed the bug of processing STOR in passive mode.
                                                          Reset the packet prepend pointer for alignment.
        addons/ftp/nxd_ftp_server.h                       Fixed the issue of clearing data socket.           

Files are modified to allow client-initiated renegotiation to be disabled for NetX TLS server instances:
        nx_secure/inc/nx_secure_tls.h
        nx_secure/inc/nx_secure_user_sample.h
        nx_secure/src/nx_secure_tls_process_clienthello.c
        nx_secure/src/nx_secure_tls_process_clienthello_extensions.c
        nx_secure/src/nx_secure_tls_session_renegotiate.c
        nx_secure/src/nx_secure_tls_session_reset.c

Files are modified to fix a compilation issue when TLS 1.3 is enabled but TLS Server is disabled:
        nx_secure/src/nx_secure_tls_handshake_hash_update.c
        nx_secure/src/nx_secure_tls_process_clienthello_extensions.c
        nx_secure/src/nx_secure_tls_process_record.c
        nx_secure/src/nx_secure_tls_process_serverhello_extensions.c
        nx_secure/src/nx_secure_tls_process_serverhello.c
        nx_secure/src/nx_secure_tls_send_serverhello.c
        nx_secure/src/nx_secure_tls_send_serverhello_extensions.c

Azure RTOS 6.1.8

04 Aug 02:46
Compare
Choose a tag to compare

This is an updated release of Azure RTOS NetX Duo that includes the following changes:

  • common

       Files are modified or added to support TCP/IP offload:
          inc/nx_api.h
          inc/nx_ipv4.h
          inc/nx_tcp.h
          inc/nx_udp.h
          inc/nx_user_sample.h
          src/nx_ip_address_set.c
          src/nx_ip_header_add.c
          src/nx_ip_interface_attach.c
          src/nx_ip_packet_send.c
          src/nx_ip_thread_entry.c
          src/nx_ipv6_header_add.c
          src/nx_ipv6_packet_send.c
          src/nx_tcp_server_socket_driver_listen.c
          src/nx_tcp_server_socket_listen.c
          src/nx_tcp_server_socket_relisten.c
          src/nx_tcp_server_socket_unlisten.c
          src/nx_tcp_socket_disconnect.c
          src/nx_tcp_socket_driver_establish.c
          src/nx_tcp_socket_driver_packet_receive.c
          src/nx_tcp_socket_packet_process.c
          src/nx_tcp_socket_send_internal.c
          src/nx_tcp_socket_state_data_check.c
          src/nx_udp_socket_bind.c
          src/nx_udp_socket_driver_packet_receive.c
          src/nx_udp_socket_unbind.c
          src/nxd_tcp_client_socket_connect.c
          src/nxd_udp_socket_send.c
    
      Files are modified to add new IP filter callback:
          nx_api.h
          nx_ip_packet_receive.c
          nx_ip_packet_send.c
    
      Other modified files:
          nx_ip_address_set.c:     Merged duplicated functions.
    
      Other modified files:
          nx_utility.c:            Added function to convert unsigned integer to string.
    
  • addons:

       dhcp/nxd_dhcp_client.c               Supported new ip filter callback. Improved the code.
                                            Supported adding additional request option in parameter request.
       mqtt/nxd_mqtt_client.c               Corrected the logic for non-blocking mode.
                                            Supported maximum transmit queue depth.
       mqtt/nxd_mqtt_client.h               Supported maximum transmit queue depth.
       web/nx_web_http_server.c             Improved the logic of converting number to string.
       web/nx_web_http_server.h             Improved the logic of converting number to string.
       snmp/nxd_snmp.c                      Improved the logic of converting number to string.
       http/nxd_http_server.c               Improved the logic of converting number to string.
       http/nxd_http_server.h               Improved the logic of converting number to string.
       sntp/nxd_sntp_client.c               Improved the logic of converting number to string.
       ppp/nx_ppp.c                         Fixed the logic of retransmission.
       ftp/nxd_ftp_server.c                 Corrected the pad character.
    
  • nx_secure:

      File is modified to fix compiler warnings:
          src/nx_secure_x509_crl_revocation_check.c
    
      Files are modified to add handshake hash clone and cleanup macro:
          inc/nx_secure_tls.h
          src/nx_secure_tls_1_3_transcript_hash_save.c
          src/nx_secure_tls_finished_hash_generate.c
          src/nx_secure_tls_process_certificate_verify.c
          src/nx_secure_tls_process_clienthello_extensions.c
          src/nx_secure_tls_send_certificate_verify.c
          src/nx_secure_tls_send_clienthello_extensions.c
    
      File is modified to use wait forever for transmission mutex:
          src/nx_secure_tls_send_record.c
    
      Files are modified to add cleanup for session cipher:
          inc/nx_secure_tls.h
          src/nx_secure_tls_1_3_generate_keys.c
          src/nx_secure_tls_1_3_session_keys_set.c
          src/nx_secure_tls_session_keys_set.c
          src/nx_secure_tls_session_reset.c
    
      File is modified to fix packet leak bug in TLS renegotiation:
          src/nx_secure_tls_session_renegotiate.c
    
      File is modified to check TLS state before processing:
          src/nx_secure_tls_process_record.c
    
      File is modified to update macro description:
          inc/nx_secure_user_sample.h
    
  • crypto_libraries

      Files are modified to use ULONG64_DEFINED to check whether ULONG64 is defined:
          inc/nx_crypto_huge_number.h
          inc/nx_crypto_sha5.h
    
      The following files are modified or added for arm compiler support.
          ports/cortex_m\*/ac5/inc/nx_crypto_port.h
          ports/cortex_m\*/ac6/inc/nx_crypto_port.h
          ports/cortex_m\*/keil/inc/nx_crypto_port.h