ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
port_esp_hosted_host_config_features.h File Reference

esp-hosted port header: optional host features, RPC bounds, counters. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define H_HOST_PS_ALLOWED   (0)
 Whether the host may sleep and be woken by the co-processor.
#define H_HOST_WAKEUP_GPIO   (-1)
 Pin index of the host wake input, or -1 when none is wired.
#define H_HOST_WAKEUP_GPIO_PORT   RA8_ESP_HOSTED_GPIO_PORT(k_ra8_pin_none)
 Opaque port handle of the host wake input.
#define H_HOST_WAKEUP_GPIO_LEVEL   (0)
 Level the co-processor would drive to wake the host.
#define H_HOST_USES_STATIC_NETIF   (0)
 Whether the transport attaches a statically created esp_netif.
#define H_NETWORK_SPLIT_ENABLED   (0)
 Whether the TCP/IP stack is split between host and co-processor.
#define H_HOST_TCP_LOCAL_PORT_RANGE_START   (49152)
 First ephemeral TCP port the host would own under network split.
#define H_HOST_TCP_LOCAL_PORT_RANGE_END   (61439)
 Last ephemeral TCP port the host would own under network split.
#define H_HOST_UDP_LOCAL_PORT_RANGE_START   (49152)
 First ephemeral UDP port the host would own under network split.
#define H_HOST_UDP_LOCAL_PORT_RANGE_END   (61439)
 Last ephemeral UDP port the host would own under network split.
#define H_SLAVE_TCP_REMOTE_PORT_RANGE_START   (61440) /* LEGACY-OK: upstream macro name */
 First TCP port the co-processor would own under network split.
#define H_SLAVE_TCP_REMOTE_PORT_RANGE_END   (65535) /* LEGACY-OK: upstream macro name */
 Last TCP port the co-processor would own under network split.
#define H_SLAVE_UDP_REMOTE_PORT_RANGE_START   (61440) /* LEGACY-OK: upstream macro name */
 First UDP port the co-processor would own under network split.
#define H_SLAVE_UDP_REMOTE_PORT_RANGE_END   (65535) /* LEGACY-OK: upstream macro name */
 Last UDP port the co-processor would own under network split.
#define H_WIFI_TX_DATA_THROTTLE_HIGH_THRESHOLD   (80)
 Queue occupancy, in percent, at which the co-processor throttles.
#define H_WIFI_TX_DATA_THROTTLE_LOW_THRESHOLD   (60)
 Queue occupancy, in percent, at which throttling is released.
#define H_HOST_RESTART_NO_COMMUNICATION_WITH_SLAVE   (0) /* LEGACY-OK: upstream macro name */
 Whether a silent co-processor restarts the host.
#define H_HOST_RESTART_NO_COMMUNICATION_WITH_SLAVE_TIMEOUT_MS   (-1) /* LEGACY-OK: upstream esp-hosted macro name */
 Milliseconds of silence before that restart would fire.
#define H_MAX_SYNC_RPC_REQUESTS   (1)
 Synchronous RPC transactions that may be outstanding at once.
#define H_MAX_ASYNC_RPC_REQUESTS   (1)
 Asynchronous RPC transactions that may be outstanding at once.
#define H_MAX_CUSTOM_MSG_HANDLERS   (4)
 Callback slots for co-processor custom messages, if ever enabled.
#define H_TEST_RAW_TP   (0)
 Whether the raw-throughput test harness is compiled in.
#define H_TEST_RAW_TP_DIR   (0)
 Direction bitmap advertised for the raw-throughput test.
#define H_RAW_TP_PKT_LEN   (1448)
 Payload bytes per raw-throughput test frame.
#define H_RAW_TP_REPORT_INTERVAL   (10)
 Seconds between raw-throughput reports.
#define H_MEM_STATS   (0)
 Whether the transport keeps allocation counters.
#define H_MEM_MONITOR   (0)
 Whether the RPC layer logs free-heap movement around each call.
#define ESP_PKT_STATS   (0)
 Whether per-interface packet counters are compiled in.
#define ESP_PKT_STATS_REPORT_INTERVAL   (10)
 Seconds between packet-counter reports.

Detailed Description

esp-hosted port header: optional host features, RPC bounds, counters.

Tag
[Ring 4 / PORT] {World: NS}

Included from the bottom of port_esp_hosted_host_config.h, which is the file name the vendored core knows. It carries the switches for host features that need code this port does not have, the two RPC concurrency bounds, and the debug counters – separated from the wiring facts because the repository caps a source file at 1000 lines and because these answer a different question: not "how is the link built" but "what does this image choose not to do".

Everything optional is off, and each one for a structural reason
A feature is off here because the code behind it is absent from this tree or because the hardware it drives is absent from this board – never because it has not been got to. Power save wants an ESP-IDF sleep API and a wake pin; network split wants a dual-stack lwIP with a port-range splitter; the static-netif path wants esp_netif; OpenThread wants an RCP. None of those exist here, so switching any of them on would produce a link error rather than a feature.
Two flags that must stay UNDEFINED, not zero
The vendored core tests H_ESP_HOSTED_CLI_ENABLED and H_PEER_DATA_TRANSFER with #ifdef, not #if. Defining either to zero would switch it ON:
  • H_ESP_HOSTED_CLI_ENABLED would compile esp_hosted_cli.c, which needs esp_console.h, FreeRTOS task-trace APIs, lwip/sockets.h and the ESP heap-tracing headers. None are in this tree.
  • H_PEER_DATA_TRANSFER would compile the custom-message handler table in rpc_evt.c and its RPC request and response halves; the application has no custom co-processor messages, so the table would be dead registration surface on a safety-critical image. Neither is defined anywhere in this port. H_MAX_CUSTOM_MSG_HANDLERS is still given a value so the bound is stated rather than discovered the day someone enables the feature.
Since
0.1.0

Definition in file port_esp_hosted_host_config_features.h.

Macro Definition Documentation

◆ ESP_PKT_STATS

#define ESP_PKT_STATS   (0)

Whether per-interface packet counters are compiled in.

Zero. The counters are incremented on every transmit and receive and reported from a periodic thread; neither is free, and the link's health is already visible through the transport event callbacks.

Note
Read-only build configuration; upstream spells this one without the H_ prefix, and that spelling is what the vendored #if tests.
Warning
Enabling it also requires ESP_PKT_STATS_REPORT_INTERVAL, which is only referenced from inside the guarded block.
Example:
#if ESP_PKT_STATS
pkt_stats.sta_rx_in_pass++;
#endif
Since
0.1.0

Definition at line 543 of file port_esp_hosted_host_config_features.h.

◆ ESP_PKT_STATS_REPORT_INTERVAL

#define ESP_PKT_STATS_REPORT_INTERVAL   (10)

Seconds between packet-counter reports.

Ten, matching H_RAW_TP_REPORT_INTERVAL so the two debug harnesses print on the same cadence and their logs interleave predictably.

Note
Read-only build configuration.
Warning
Only reached when ESP_PKT_STATS is 1; it is defined unconditionally so flipping that switch cannot fail to build.
Example:
H_TIMER_TYPE_PERIODIC, stats_timer_func, NULL);
#define ESP_PKT_STATS_REPORT_INTERVAL
Seconds between packet-counter reports.
#define H_TIMER_TYPE_PERIODIC
Timer that reschedules itself after every expiry.
#define SEC_TO_MILLISEC(x)
Convert whole seconds to milliseconds.
Since
0.1.0

Definition at line 560 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_PS_ALLOWED

#define H_HOST_PS_ALLOWED   (0)

Whether the host may sleep and be woken by the co-processor.

Zero. The vendored power-save driver drives an ESP-IDF sleep entry point and a dedicated wake input; this board wires neither, and the RA8's own low-power modes are managed by the firmware's LPM layer rather than by a radio co-processor.

Note
Read-only build configuration.
Warning
With this at 1 and no wake pin, the host would sleep with nothing able to wake it.
Example:
#if H_HOST_PS_ALLOWED
esp_hosted_power_save_init();
#endif
Since
0.1.0

Definition at line 70 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_RESTART_NO_COMMUNICATION_WITH_SLAVE

#define H_HOST_RESTART_NO_COMMUNICATION_WITH_SLAVE   (0) /* LEGACY-OK: upstream macro name */

Whether a silent co-processor restarts the host.

Zero, for the same reason as H_TRANSPORT_RESTART_ON_FAILURE: the RA8 owns the display, the storage and the reader state, and a radio that never answers must not cost the user their place in a book. The transport reports the failure; the application decides.

Note
Read-only build configuration.
Warning
With this at 1 the host arms a one-shot timer at the start of every connection attempt and resets itself when it expires.
Example:
#if H_HOST_RESTART_NO_COMMUNICATION_WITH_SLAVE // LEGACY-OK: upstream name
arm_init_timeout_timer();
#endif
Since
0.1.0

Definition at line 323 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_RESTART_NO_COMMUNICATION_WITH_SLAVE_TIMEOUT_MS

#define H_HOST_RESTART_NO_COMMUNICATION_WITH_SLAVE_TIMEOUT_MS   (-1) /* LEGACY-OK: upstream esp-hosted macro name */

Milliseconds of silence before that restart would fire.

Minus one, the vendored "disabled" spelling. The guard is #if <flag> && <timeout> != -1, so both halves have to agree that the policy is off; leaving the timeout at a real number while the flag is 0 would be a trap for whoever flips the flag next.

Note
Read-only build configuration.
Warning
Any non-negative value here arms the policy the moment the companion flag becomes 1.
Example:
timer = timer_start("unresponsive",
#define H_HOST_RESTART_NO_COMMUNICATION_WITH_SLAVE_TIMEOUT_MS
Milliseconds of silence before that restart would fire.
#define H_TIMER_TYPE_ONESHOT
Timer that fires once and then stops.
Since
0.1.0

Definition at line 342 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_TCP_LOCAL_PORT_RANGE_END

#define H_HOST_TCP_LOCAL_PORT_RANGE_END   (61439)

Last ephemeral TCP port the host would own under network split.

61439, leaving the top 4096 ports of the dynamic range to the co-processor so the two halves cannot pick the same tuple.

Note
Read-only build configuration.
Warning
Must not overlap the co-processor's TCP range below.
Example:
#define H_HOST_TCP_LOCAL_PORT_RANGE_END
Last ephemeral TCP port the host would own under network split.
#define assert(expr)
Route vendored ESP-hosted assertions through the RA8 assertion policy.
Since
0.1.0

Definition at line 196 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_TCP_LOCAL_PORT_RANGE_START

#define H_HOST_TCP_LOCAL_PORT_RANGE_START   (49152)

First ephemeral TCP port the host would own under network split.

49152, the bottom of the IANA dynamic range, so a split deployment never collides with a registered service port.

Note
Read-only build configuration.
Warning
Only read when H_NETWORK_SPLIT_ENABLED is 1.
Example:
#define H_HOST_TCP_LOCAL_PORT_RANGE_START
First ephemeral TCP port the host would own under network split.
Since
0.1.0

Definition at line 181 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_UDP_LOCAL_PORT_RANGE_END

#define H_HOST_UDP_LOCAL_PORT_RANGE_END   (61439)

Last ephemeral UDP port the host would own under network split.

61439; mirrors H_HOST_TCP_LOCAL_PORT_RANGE_END.

Note
Read-only build configuration.
Warning
Must not overlap the co-processor's UDP range below.
Example:
#define H_HOST_UDP_LOCAL_PORT_RANGE_END
Last ephemeral UDP port the host would own under network split.
Since
0.1.0

Definition at line 225 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_UDP_LOCAL_PORT_RANGE_START

#define H_HOST_UDP_LOCAL_PORT_RANGE_START   (49152)

First ephemeral UDP port the host would own under network split.

49152; the UDP partition mirrors the TCP one so one rule explains both.

Note
Read-only build configuration.
Warning
Only read when H_NETWORK_SPLIT_ENABLED is 1.
Example:
#define H_HOST_UDP_LOCAL_PORT_RANGE_START
First ephemeral UDP port the host would own under network split.
Since
0.1.0

Definition at line 211 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_USES_STATIC_NETIF

#define H_HOST_USES_STATIC_NETIF   (0)

Whether the transport attaches a statically created esp_netif.

Zero. That path calls esp_netif_attach_wifi_station() and esp_netif_dhcpc_stop(); this tree has no esp_netif, it has NetX Duo behind ra8_net_pal, so the glue lives on the application side of the transport rather than inside it.

Note
Read-only build configuration.
Warning
Setting this to 1 makes spi_drv.c and sdio_drv.c reference four ESP-IDF network symbols that do not exist here.
Example:
#if H_HOST_USES_STATIC_NETIF
ESP_ERROR_CHECK(esp_netif_attach_wifi_station(sta_netif));
#endif
#define ESP_ERROR_CHECK(x)
Evaluate an expression and stop the firmware if it is non-zero.
Definition esp_log.h:535
Since
0.1.0

Definition at line 146 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_WAKEUP_GPIO

#define H_HOST_WAKEUP_GPIO   (-1)

Pin index of the host wake input, or -1 when none is wired.

Minus one. The co-processor has no line back to the RA8 other than HANDSHAKE and DATA_READY, and neither is routed to a low-power wake source on this package.

Note
Read-only build configuration.
Warning
The vendored guards spell the "unwired" test as != -1, so any other sentinel here silently enables the power-save path.
Example:
#if H_HOST_PS_ALLOWED && H_HOST_WAKEUP_GPIO != -1
configure_wakeup_interrupt();
#endif
Since
0.1.0

Definition at line 89 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_WAKEUP_GPIO_LEVEL

#define H_HOST_WAKEUP_GPIO_LEVEL   (0)

Level the co-processor would drive to wake the host.

Zero. An active-low wake is the conventional choice because a sleeping host can hold a pull-up and the co-processor only has to sink current for the pulse.

Note
Read-only build configuration.
Warning
Unreachable while H_HOST_PS_ALLOWED is 0.
Example:
if (current_level == H_HOST_WAKEUP_GPIO_LEVEL) { note_wakeup(); }
#define H_HOST_WAKEUP_GPIO_LEVEL
Level the co-processor would drive to wake the host.
Since
0.1.0

Definition at line 122 of file port_esp_hosted_host_config_features.h.

◆ H_HOST_WAKEUP_GPIO_PORT

#define H_HOST_WAKEUP_GPIO_PORT   RA8_ESP_HOSTED_GPIO_PORT(k_ra8_pin_none)

Opaque port handle of the host wake input.

Encodes k_ra8_pin_none through the same adapter the side-band pins use, so an unwired signal has one representation across this port rather than a special case per call site.

Note
Read-only build configuration.
Warning
Never dereferenced and never reached: H_HOST_PS_ALLOWED is 0, and the pin the driver actually tests is H_HOST_WAKEUP_GPIO.
Example:
#define H_HOST_WAKEUP_GPIO_PORT
Opaque port handle of the host wake input.
Since
0.1.0

Definition at line 106 of file port_esp_hosted_host_config_features.h.

◆ H_MAX_ASYNC_RPC_REQUESTS

#define H_MAX_ASYNC_RPC_REQUESTS   (1)

Asynchronous RPC transactions that may be outstanding at once.

One. The application issues asynchronous requests one at a time – a scan, then a connect, then a status read – and a deeper table would be reserved memory that no call path can reach.

Note
Read-only build configuration.
Warning
Raising it enlarges a statically allocated table; it does not make the RPC layer concurrent.
Example:
#define MAX_ASYNC_RPC_TRANSACTIONS H_MAX_ASYNC_RPC_REQUESTS
Since
0.1.0

Definition at line 384 of file port_esp_hosted_host_config_features.h.

◆ H_MAX_CUSTOM_MSG_HANDLERS

#define H_MAX_CUSTOM_MSG_HANDLERS   (4)

Callback slots for co-processor custom messages, if ever enabled.

Four. Unreachable while H_PEER_DATA_TRANSFER stays undefined (see this file's header block), but stated so the table bound is a decision rather than something discovered later.

Note
Read-only build configuration.
Warning
The handler table is a designated-initialiser array sized by this value; it must be a positive integer literal.
Example:
#define MAX_CUSTOM_CALLBACKS H_MAX_CUSTOM_MSG_HANDLERS
Since
0.1.0

Definition at line 401 of file port_esp_hosted_host_config_features.h.

◆ H_MAX_SYNC_RPC_REQUESTS

#define H_MAX_SYNC_RPC_REQUESTS   (1)

Synchronous RPC transactions that may be outstanding at once.

One. The RPC layer is driven from a single thread in this port and every synchronous call blocks it until the response arrives, so a second slot could never be occupied. Keeping it at one also keeps the transaction table a single entry, which is what makes the RPC path allocation-free after init.

Note
Read-only build configuration.
Warning
serial_drv.c sizes its read semaphore from the sum of this and H_MAX_ASYNC_RPC_REQUESTS; both must be at least one.
Example:
sem = g_h.funcs->_h_create_semaphore(H_MAX_SYNC_RPC_REQUESTS +
#define H_MAX_ASYNC_RPC_REQUESTS
Asynchronous RPC transactions that may be outstanding at once.
#define H_MAX_SYNC_RPC_REQUESTS
Synchronous RPC transactions that may be outstanding at once.
struct hosted_config_t g_h
The handle the vendored core dereferences to reach the vtable.
Since
0.1.0

Definition at line 367 of file port_esp_hosted_host_config_features.h.

◆ H_MEM_MONITOR

#define H_MEM_MONITOR   (0)

Whether the RPC layer logs free-heap movement around each call.

Zero. It is a heap-leak hunt for a build with a general heap; this port allocates from a fixed pool that cannot grow, so a leak shows up as pool exhaustion, which MEM_DUMP reports directly.

Note
Read-only build configuration.
Warning
Emits two log lines per RPC transaction when enabled, which is enough to change the timing it is measuring.
Example:
#if H_MEM_MONITOR
log_free_heap_delta(__func__);
#endif
Since
0.1.0

Definition at line 523 of file port_esp_hosted_host_config_features.h.

◆ H_MEM_STATS

#define H_MEM_STATS   (0)

Whether the transport keeps allocation counters.

Zero. The counters live on the per-frame allocate and free paths, and the port already reports pool occupancy through MEM_DUMP when it is asked, which answers the same question without a hot-path cost.

Note
Read-only build configuration.
Warning
Turning this on also defines the h_stats_g object the SPI driver then updates; it is not a log-only switch.
Example:
#if H_MEM_STATS
h_stats_g.spi_mem_stats.tx_alloc++;
#endif
Since
0.1.0

Definition at line 504 of file port_esp_hosted_host_config_features.h.

◆ H_NETWORK_SPLIT_ENABLED

#define H_NETWORK_SPLIT_ENABLED   (0)

Whether the TCP/IP stack is split between host and co-processor.

Zero. Network split runs part of the socket layer on the C6 and partitions the local port space between the two ends; it needs a co-processor image built for it and a host stack that honours the partition. This image terminates every socket on the RA8.

Note
Read-only build configuration.
Warning
The four port-range pairs below are only consulted when this is 1; they are stated anyway so the partition is documented.
Example:
#if H_NETWORK_SPLIT_ENABLED
log_port_ranges();
#endif
Since
0.1.0

Definition at line 166 of file port_esp_hosted_host_config_features.h.

◆ H_RAW_TP_PKT_LEN

#define H_RAW_TP_PKT_LEN   (1448)

Payload bytes per raw-throughput test frame.

1448 – a 1460-byte TCP maximum segment less the twelve-byte esp-hosted payload header, which is the comparison the vendored header spells out. It makes the reported number directly comparable with a network throughput measurement instead of a transport-only best case.

Note
Read-only build configuration.
Warning
Must not exceed MAX_PAYLOAD_SIZE (1588 for this transport) or the harness builds frames the receiver rejects.
Example:
#define TEST_RAW_TP__BUF_SIZE H_RAW_TP_PKT_LEN
Since
0.1.0

Definition at line 469 of file port_esp_hosted_host_config_features.h.

◆ H_RAW_TP_REPORT_INTERVAL

#define H_RAW_TP_REPORT_INTERVAL   (10)

Seconds between raw-throughput reports.

Ten: long enough to average out a scheduling hiccup, short enough that a bench operator does not think the test has hung.

Note
Read-only build configuration.
Warning
The timer is periodic; the interval is also the resolution of the number it prints.
Example:
#define TEST_RAW_TP__TIMEOUT H_RAW_TP_REPORT_INTERVAL
Since
0.1.0

Definition at line 485 of file port_esp_hosted_host_config_features.h.

◆ H_SLAVE_TCP_REMOTE_PORT_RANGE_END

#define H_SLAVE_TCP_REMOTE_PORT_RANGE_END   (65535) /* LEGACY-OK: upstream macro name */

Last TCP port the co-processor would own under network split.

65535, the top of the port space.

Note
Read-only build configuration.
Warning
Only read when H_NETWORK_SPLIT_ENABLED is 1.
Since
0.1.0

Definition at line 244 of file port_esp_hosted_host_config_features.h.

◆ H_SLAVE_TCP_REMOTE_PORT_RANGE_START

#define H_SLAVE_TCP_REMOTE_PORT_RANGE_START   (61440) /* LEGACY-OK: upstream macro name */

First TCP port the co-processor would own under network split.

61440, one past the host's range, so the partition is a single boundary rather than an interleaving.

Note
Read-only build configuration.
Warning
Only read when H_NETWORK_SPLIT_ENABLED is 1.
Since
0.1.0

Definition at line 235 of file port_esp_hosted_host_config_features.h.

◆ H_SLAVE_UDP_REMOTE_PORT_RANGE_END

#define H_SLAVE_UDP_REMOTE_PORT_RANGE_END   (65535) /* LEGACY-OK: upstream macro name */

Last UDP port the co-processor would own under network split.

65535, the top of the port space.

Note
Read-only build configuration.
Warning
Only read when H_NETWORK_SPLIT_ENABLED is 1.
Since
0.1.0

Definition at line 262 of file port_esp_hosted_host_config_features.h.

◆ H_SLAVE_UDP_REMOTE_PORT_RANGE_START

#define H_SLAVE_UDP_REMOTE_PORT_RANGE_START   (61440) /* LEGACY-OK: upstream macro name */

First UDP port the co-processor would own under network split.

61440; mirrors the TCP partition.

Note
Read-only build configuration.
Warning
Only read when H_NETWORK_SPLIT_ENABLED is 1.
Since
0.1.0

Definition at line 253 of file port_esp_hosted_host_config_features.h.

◆ H_TEST_RAW_TP

#define H_TEST_RAW_TP   (0)

Whether the raw-throughput test harness is compiled in.

Zero. The harness spawns a thread that pushes dummy frames as fast as the transport accepts them; it measures the wire, and it starves everything else while it does so.

Note
Read-only build configuration.
Warning
stats.h re-exports this as TEST_RAW_TP; both spellings refer to this one switch.
Example:
#if TEST_RAW_TP
start_test_raw_tp();
#endif
Since
0.1.0

Definition at line 431 of file port_esp_hosted_host_config_features.h.

◆ H_TEST_RAW_TP_DIR

#define H_TEST_RAW_TP_DIR   (0)

Direction bitmap advertised for the raw-throughput test.

Zero, which is ESP_TEST_RAW_TP_NONE in the vendored esp_hosted_transport_init.h. It is read unconditionally – the host puts it in the configuration message it sends after the boot event – so it must be defined even with H_TEST_RAW_TP off, and zero is what tells the co-processor not to start a test.

Note
Read-only build configuration; written as a literal so this header does not have to reach the vendored enumeration.
Warning
A non-zero value here starts a throughput test on the co-processor even though the host has no harness to match it.
Example:
uint8_t raw_tp_config = H_TEST_RAW_TP_DIR;
#define H_TEST_RAW_TP_DIR
Direction bitmap advertised for the raw-throughput test.
Since
0.1.0

Definition at line 451 of file port_esp_hosted_host_config_features.h.

Referenced by c6_fwver_priv_host_caps().

◆ H_WIFI_TX_DATA_THROTTLE_HIGH_THRESHOLD

#define H_WIFI_TX_DATA_THROTTLE_HIGH_THRESHOLD   (80)

Queue occupancy, in percent, at which the co-processor throttles.

Eighty. Sent to the co-processor in the host's configuration message: once four fifths of the host's receive capacity is committed, the co-processor stops handing Wi-Fi frames to the transport rather than letting them pile up and be dropped at the far end of the link.

Note
Read-only build configuration.
Warning
Must be strictly above H_WIFI_TX_DATA_THROTTLE_LOW_THRESHOLD or the co-processor oscillates between throttled and unthrottled on every frame.
Example:
send_slave_config(0, chip, raw_tp, // LEGACY-OK: upstream function name
#define H_WIFI_TX_DATA_THROTTLE_HIGH_THRESHOLD
Queue occupancy, in percent, at which the co-processor throttles.
#define H_WIFI_TX_DATA_THROTTLE_LOW_THRESHOLD
Queue occupancy, in percent, at which throttling is released.
Since
0.1.0

Definition at line 283 of file port_esp_hosted_host_config_features.h.

Referenced by c6_fwver_priv_host_caps().

◆ H_WIFI_TX_DATA_THROTTLE_LOW_THRESHOLD

#define H_WIFI_TX_DATA_THROTTLE_LOW_THRESHOLD   (60)

Queue occupancy, in percent, at which throttling is released.

Sixty. The twenty-point gap is the hysteresis band; with the twenty-frame queues this port uses that is four frames of slack, enough that one burst cannot cross both thresholds.

Note
Read-only build configuration.
Warning
Setting this equal to the high threshold removes the hysteresis entirely.
Example:
Since
0.1.0

Definition at line 300 of file port_esp_hosted_host_config_features.h.

Referenced by c6_fwver_priv_host_caps().