AzureRTOS netxduo unable to download ~16K or larger image using web_http_client secure
- December 11, 2023
- 4 replies
- 3372 views
Netxduo packet pool is using 51K, plenty I would have thought to download a 16K test file.
This problem was initially seen on an F417 board, and then an F429, so moved on to an H723, specifically the NUCLEO-H723ZG.
I filed a bug report at https://github.com/azure-rtos/netxduo/issues/177 but testing this with a Renesas Rx72N envision kit it works flawlessy, hence this seems like an ST problem.
Console output.
After the first attempt to download the free_packets has been corrupted. normally free_packets is 4 packets less than total_packets.
Thus no further downloads happen.
MX_NetXDuo_Init: Start
MX_NetXDuo_Init: NX_APP_PACKET_POOL_SIZE = 51072
MX_NetXDuo_Init: DEFAULT_PAYLOAD_SIZE = 1536
MX_NetXDuo_Init: Started
STM32 IpAddress: 192.168.125.45
download_test
http_web_request: Start httpbin.org
APP:before nx_dns_host_by_name_get total_packets = 32 free_packets = 28 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0
ERROR: httpbin.org nx_dns_host_by_name_get status=[0xa3]
ERROR: download_test: status =[0xa3]
download_test
http_web_request: Start httpbin.org
APP:before nx_dns_host_by_name_get total_packets = 32 free_packets = 28 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0
Client connected to HTTP server: [3.218.223.42]
nx_web_http_client_created
nx_web_http_client_response_header_callback_set
tls_metadata_size mismatch! calculated:10128 actual:18432
nx_web_http_client{_secure]_connect
http client request initialized
nx_web_http_client_request_send
Received header:
Field name: Date (4 bytes)
Value: Mon, 11 Dec 2023 06:20:30 GMT (29 bytes)
Received header:
Field name: Content-Type (12 bytes)
Value: application/octet-stream (24 bytes)
Received header:
Field name: Content-Length (14 bytes)
Value: 16384 (5 bytes)
Received header:
Field name: Connection (10 bytes)
Value: keep-alive (10 bytes)
Received header:
Field name: Server (6 bytes)
Value: gunicorn/19.9.0 (15 bytes)
Received header:
Field name: Access-Control-Allow-Origin (27 bytes)
Value: * (1 bytes)
Received header:
Field name: Access-Control-Allow-Credentials (32 bytes)
Value: true (4 bytes)
DONE: firmware=1 total bytes=0 errors 0
Error with http response body get: get_status=0x1
APP:Error response body get total_packets = 32 free_packets = 9 empty_pool_requests = 1530 empty_pool_suspensions = 5 invalid_packet_releases = 0
APP:before nx_web_http_client_delete total_packets = 32 free_packets = 9 empty_pool_requests = 1530 empty_pool_suspensions = 5 invalid_packet_releases = 0
APP:after nx_web_http_client_delete total_packets = 32 free_packets = 32 empty_pool_requests = 1530 empty_pool_suspensions = 5 invalid_packet_releases = 0
download_test
http_web_request: Start httpbin.org
APP:before nx_dns_host_by_name_get total_packets = 32 free_packets = 32 empty_pool_requests = 1530 empty_pool_suspensions = 5 invalid_packet_releases = 0
ERROR: httpbin.org nx_dns_host_by_name_get status=[0xa3]
ERROR: download_test: status =[0xa3]
download_test
http_web_request: Start httpbin.org
APP:before nx_dns_host_by_name_get total_packets = 32 free_packets = 32 empty_pool_requests = 1530 empty_pool_suspensions = 5 invalid_packet_releases = 0
ERROR: httpbin.org nx_dns_host_by_name_get status=[0xa3]
ERROR: download_test: status =[0xa3]
download_test
Attached project files "nx_httpbin.org.7z" and wireshark capture "stm32h7_httpbin_org_NX_PACKET_POOL_SIZE_32_test-16k.7z" with packet pool count set to 32 and attempting to download 16384 bytes.
Changing to 8192 bytes works fine as below, wireshark file "stm32h7_httpbin_org_NX_PACKET_POOL_SIZE_32_test-8k.7z" attached.
MX_NetXDuo_Init: Start
MX_NetXDuo_Init: NX_APP_PACKET_POOL_SIZE = 51072
MX_NetXDuo_Init: DEFAULT_PAYLOAD_SIZE = 1536
MX_NetXDuo_Init: Started
STM32 IpAddress: 192.168.125.45
download_test
http_web_request: Start httpbin.org
APP:before nx_dns_host_by_name_get total_packets = 32 free_packets = 28 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0
ERROR: httpbin.org nx_dns_host_by_name_get status=[0xa3]
ERROR: download_test: status =[0xa3]
download_test
http_web_request: Start httpbin.org
APP:before nx_dns_host_by_name_get total_packets = 32 free_packets = 28 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0
Client connected to HTTP server: [75.101.131.185]
nx_web_http_client_created
nx_web_http_client_response_header_callback_set
tls_metadata_size mismatch! calculated:10128 actual:18432
nx_web_http_client{_secure]_connect
http client request initialized
nx_web_http_client_request_send
Received header:
Field name: Date (4 bytes)
Value: Mon, 11 Dec 2023 06:49:36 GMT (29 bytes)
Received header:
Field name: Content-Type (12 bytes)
Value: application/octet-stream (24 bytes)
Received header:
Field name: Content-Length (14 bytes)
Value: 8192 (4 bytes)
Received header:
Field name: Connection (10 bytes)
Value: keep-alive (10 bytes)
Received header:
Field name: Server (6 bytes)
Value: gunicorn/19.9.0 (15 bytes)
Received header:
Field name: Access-Control-Allow-Origin (27 bytes)
Value: * (1 bytes)
Received header:
Field name: Access-Control-Allow-Credentials (32 bytes)
Value: true (4 bytes)
DONE: firmware=1 total bytes=0 errors 0
DONE: firmware=1 total bytes=8192 errors 0
APP:before nx_web_http_client_delete total_packets = 32 free_packets = 28 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0
APP:after nx_web_http_client_delete total_packets = 32 free_packets = 27 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0
download_test
http_web_request: Start httpbin.org
APP:before nx_dns_host_by_name_get total_packets = 32 free_packets = 28 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0
Client connected to HTTP server: [75.101.131.185]
nx_web_http_client_created
nx_web_http_client_response_header_callback_set
tls_metadata_size mismatch! calculated:10128 actual:18432
nx_web_http_client{_secure]_connect
http client request initialized
nx_web_http_client_request_send
Received header:
Field name: Date (4 bytes)
Value: Mon, 11 Dec 2023 06:49:50 GMT (29 bytes)
Received header:
Field name: Content-Type (12 bytes)
Value: application/octet-stream (24 bytes)
Received header:
Field name: Content-Length (14 bytes)
Value: 8192 (4 bytes)
Received header:
Field name: Connection (10 bytes)
Value: keep-alive (10 bytes)
Received header:
Field name: Server (6 bytes)
Value: gunicorn/19.9.0 (15 bytes)
Received header:
Field name: Access-Control-Allow-Origin (27 bytes)
Value: * (1 bytes)
Received header:
Field name: Access-Control-Allow-Credentials (32 bytes)
Value: true (4 bytes)
DONE: firmware=1 total bytes=8192 errors 0
APP:before nx_web_http_client_delete total_packets = 32 free_packets = 28 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0
APP:after nx_web_http_client_delete total_packets = 32 free_packets = 27 empty_pool_requests = 0 empty_pool_suspensions = 0 invalid_packet_releases = 0