16#ifndef PROTOCORE_BUFFER_SIZING_H
17#define PROTOCORE_BUFFER_SIZING_H
19#ifndef PROTOCORE_CONFIG_H
20#error "include protocore_config.h instead of this file - it is the entry point that states the feature flags"
51#ifndef PROTOCORE_TCP_NODELAY
52#define PROTOCORE_TCP_NODELAY 1
69#ifndef PROTOCORE_BASE64_SWAR
70#define PROTOCORE_BASE64_SWAR 1
76#define RX_BUF_SIZE 1024
86#ifndef CONN_TIMEOUT_MS
87#define CONN_TIMEOUT_MS 5000
103#ifndef PROTOCORE_REQUEST_TIMEOUT_MS
104#define PROTOCORE_REQUEST_TIMEOUT_MS 10000
116#ifndef PROTOCORE_CLOSING_TIMEOUT_MS
117#define PROTOCORE_CLOSING_TIMEOUT_MS 2000
136#ifndef PROTOCORE_WORKER_COUNT
137#define PROTOCORE_WORKER_COUNT 1
144#define PROTOCORE_GHOST_WORKER_SLOT (PROTOCORE_WORKER_COUNT)
166#if (defined(PROTOCORE_ENABLE_SSH) && PROTOCORE_ENABLE_SSH) || \
167 (defined(PROTOCORE_ENABLE_SSH_CLIENT) && PROTOCORE_ENABLE_SSH_CLIENT) || \
168 (defined(PROTOCORE_ENABLE_HTTP3) && PROTOCORE_ENABLE_HTTP3)
169#define PROTOCORE_SSH_ANY 1
171#define PROTOCORE_SSH_ANY 0
174#ifndef PROTOCORE_WORKER_TASK_STACK
187#if (PROTOCORE_ENABLE_PQC_KEX || (defined(PROTOCORE_ENABLE_SSH_SNTRUP761) && PROTOCORE_ENABLE_SSH_SNTRUP761)) && \
189#if defined(PROTOCORE_ENABLE_SSH_SNTRUP761) && !PROTOCORE_ENABLE_SSH_SNTRUP761
190#define PROTOCORE_WORKER_TASK_STACK 16384
191#elif defined(PROTOCORE_ENABLE_SSH_CLIENT) && PROTOCORE_ENABLE_SSH_CLIENT
192#define PROTOCORE_WORKER_TASK_STACK 40960
194#define PROTOCORE_WORKER_TASK_STACK 32768
196#elif PROTOCORE_SSH_ANY
197#define PROTOCORE_WORKER_TASK_STACK 12288
199#define PROTOCORE_WORKER_TASK_STACK 8192
212#ifndef PROTOCORE_WORKER_STACK_RSA_MIN
213#define PROTOCORE_WORKER_STACK_RSA_MIN 8192
227#ifndef PROTOCORE_WORKER_STACK_CURVE_MIN
228#define PROTOCORE_WORKER_STACK_CURVE_MIN 12288
232#ifndef PROTOCORE_WORKER_TASK_PRIORITY
233#define PROTOCORE_WORKER_TASK_PRIORITY 5
241#ifndef PROTOCORE_WORKER_CORE
242#define PROTOCORE_WORKER_CORE 1
253#ifndef PROTOCORE_DEFER_QUEUE_DEPTH
254#define PROTOCORE_DEFER_QUEUE_DEPTH 8
274#ifndef PROTOCORE_WORKER_POLL_TICKS
275#define PROTOCORE_WORKER_POLL_TICKS 1
291#ifndef PROTOCORE_PQ_DEPTH
292#define PROTOCORE_PQ_DEPTH 16
296#ifndef PROTOCORE_PQ_ITEM_SIZE
297#define PROTOCORE_PQ_ITEM_SIZE 32
301#ifndef PROTOCORE_PQ_STACK
302#define PROTOCORE_PQ_STACK 4096
311#ifndef PROTOCORE_PQ_INTERNAL_PRIORITY
312#define PROTOCORE_PQ_INTERNAL_PRIORITY 8
334#ifndef PROTOCORE_DMA_CHANNELS
335#define PROTOCORE_DMA_CHANNELS 2
339#ifndef PROTOCORE_DMA_BUF_SIZE
340#define PROTOCORE_DMA_BUF_SIZE 256
363#ifndef PROTOCORE_TC_MAX_WINDOW_SAMPLES
364#define PROTOCORE_TC_MAX_WINDOW_SAMPLES 4096
393#ifndef PROTOCORE_PHY_MAX_IFACES
394#define PROTOCORE_PHY_MAX_IFACES 4
398#ifndef PROTOCORE_FWD_MAX_RULES
399#define PROTOCORE_FWD_MAX_RULES 8
403#ifndef PROTOCORE_FWD_MAX_ACL
404#define PROTOCORE_FWD_MAX_ACL 8
408#ifndef PROTOCORE_FWD_ACL_PATLEN
409#define PROTOCORE_FWD_ACL_PATLEN 4
414#ifndef PROTOCORE_FWD_MAX_ROUTES
415#define PROTOCORE_FWD_MAX_ROUTES 8
423#ifndef PROTOCORE_FWD_INSPECT
424#define PROTOCORE_FWD_INSPECT 0
442#ifndef PROTOCORE_GW_MAX_PORTS
443#define PROTOCORE_GW_MAX_PORTS 4
447#ifndef PROTOCORE_GW_DEFAULT_PREFIX
448#define PROTOCORE_GW_DEFAULT_PREFIX "gw"
463#ifndef PROTOCORE_LORA_MAX_PAYLOAD
464#define PROTOCORE_LORA_MAX_PAYLOAD 251
480#ifndef PROTOCORE_NRF24_PAYLOAD
481#define PROTOCORE_NRF24_PAYLOAD 32
496#ifndef PROTOCORE_ENOCEAN_MAX_DATA
497#define PROTOCORE_ENOCEAN_MAX_DATA 512
513#ifndef PROTOCORE_PN532_MAX_DATA
514#define PROTOCORE_PN532_MAX_DATA 254
528#ifndef PROTOCORE_SIGFOX_MAX_PAYLOAD
529#define PROTOCORE_SIGFOX_MAX_PAYLOAD 12
545#ifndef PROTOCORE_ZWAVE_MAX_DATA
546#define PROTOCORE_ZWAVE_MAX_DATA 64
563#ifndef PROTOCORE_ZIGBEE_MAX_DATA
564#define PROTOCORE_ZIGBEE_MAX_DATA 128
580#ifndef PROTOCORE_THREAD_MAX_DATA
581#define PROTOCORE_THREAD_MAX_DATA 256
599#ifndef PROTOCORE_ETH_W5500
600#define PROTOCORE_ETH_W5500 0
602#ifndef PROTOCORE_ETH_W5500_CS
603#define PROTOCORE_ETH_W5500_CS 7
605#ifndef PROTOCORE_ETH_W5500_RST
606#define PROTOCORE_ETH_W5500_RST 6
608#ifndef PROTOCORE_ETH_W5500_INT
609#define PROTOCORE_ETH_W5500_INT 5
611#ifndef PROTOCORE_ETH_W5500_SCK
612#define PROTOCORE_ETH_W5500_SCK 12
614#ifndef PROTOCORE_ETH_W5500_MISO
615#define PROTOCORE_ETH_W5500_MISO 13
617#ifndef PROTOCORE_ETH_W5500_MOSI
618#define PROTOCORE_ETH_W5500_MOSI 11
623#ifndef PROTOCORE_ETH_W5500_SPI_MHZ
624#define PROTOCORE_ETH_W5500_SPI_MHZ 20
638#define MAX_PATH_LEN 64
650#define MAX_KEY_LEN 32
655#define MAX_VAL_LEN 48
660#define MAX_QUERY_LEN 128
664#ifndef MAX_QUERY_PARAMS
665#define MAX_QUERY_PARAMS 8
669#ifndef MAX_PATH_PARAMS
670#define MAX_PATH_PARAMS 4
680#ifndef DIGEST_AUTH_HDR_MAX
681#define DIGEST_AUTH_HDR_MAX 384
696#ifndef PROTOCORE_DIGEST_NONCE_LIFETIME_MS
697#define PROTOCORE_DIGEST_NONCE_LIFETIME_MS (5u * 60u * 1000u)
702#define QUERY_KEY_LEN 24
707#define QUERY_VAL_LEN 48
718#define BODY_BUF_SIZE 256
734#ifndef MAX_MIDDLEWARE
735#define MAX_MIDDLEWARE 4
751#ifndef CHUNK_BUF_SIZE
752#define CHUNK_BUF_SIZE 1440
762#ifndef JSON_MAX_DEPTH
763#define JSON_MAX_DEPTH 8
775#define RE_MAX_STEPS 2000
789#define MAX_WS_CONNS 2
799#define WS_FRAME_SIZE 512
815#ifndef PROTOCORE_WS_DEFLATE_MAX
816#define PROTOCORE_WS_DEFLATE_MAX WS_FRAME_SIZE
830#define MAX_SSE_CONNS 2
840#define SSE_BUF_SIZE 256
855#ifndef FILE_CHUNK_SIZE
856#define FILE_CHUNK_SIZE 1024
870#define MAX_AUTH_LEN 32
883#ifndef MAX_MULTIPART_PARTS
884#define MAX_MULTIPART_PARTS 4
890#ifndef MAX_BOUNDARY_LEN
891#define MAX_BOUNDARY_LEN 72
911#ifndef EVT_QUEUE_DEPTH
912#define EVT_QUEUE_DEPTH (MAX_CONNS * 4)
928#ifndef RESP_HDR_BUF_SIZE
929#define RESP_HDR_BUF_SIZE 768
941#ifndef EXTRA_HDR_BUF_SIZE
942#define EXTRA_HDR_BUF_SIZE 256
952#ifndef WS_HDR_BUF_SIZE
953#define WS_HDR_BUF_SIZE 256
963#ifndef CORS_HDR_BUF_SIZE
964#define CORS_HDR_BUF_SIZE 192
973#ifndef CACHE_CONTROL_BUF_SIZE
974#define CACHE_CONTROL_BUF_SIZE 64
988#ifndef PROTOCORE_WS_FRAG_SIZE
989#define PROTOCORE_WS_FRAG_SIZE 0
993#ifndef PROTOCORE_WEBDAV_BUF_SIZE
994#define PROTOCORE_WEBDAV_BUF_SIZE 2048
998#ifndef PROTOCORE_WEBDAV_MAX_ENTRIES
999#define PROTOCORE_WEBDAV_MAX_ENTRIES 32
1010#ifndef PROTOCORE_DAV_MAX_DEPTH
1011#define PROTOCORE_DAV_MAX_DEPTH 8
1015#ifndef PROTOCORE_WEBDAV_MAX_PROPS
1016#define PROTOCORE_WEBDAV_MAX_PROPS 16
1025#ifndef PROTOCORE_METHOD_BUF_SIZE
1026#if PROTOCORE_ENABLE_WEBDAV
1027#define PROTOCORE_METHOD_BUF_SIZE 12
1029#define PROTOCORE_METHOD_BUF_SIZE 8
1034#ifndef PROTOCORE_STOMP_MAX_HEADERS
1035#define PROTOCORE_STOMP_MAX_HEADERS 16
1039#ifndef PROTOCORE_SIMATIC_BLOCK_MAX
1040#define PROTOCORE_SIMATIC_BLOCK_MAX 256
1045#ifndef PROTOCORE_SIMATIC_QVZ_MS
1046#define PROTOCORE_SIMATIC_QVZ_MS 2000
1051#ifndef PROTOCORE_SIMATIC_ZVZ_MS
1052#define PROTOCORE_SIMATIC_ZVZ_MS 220
1056#ifndef PROTOCORE_SPB_METRIC_MAX
1057#define PROTOCORE_SPB_METRIC_MAX 256
1061#ifndef PROTOCORE_MODBUS_COILS
1062#define PROTOCORE_MODBUS_COILS 64
1066#ifndef PROTOCORE_MODBUS_DISCRETE_INPUTS
1067#define PROTOCORE_MODBUS_DISCRETE_INPUTS 64
1071#ifndef PROTOCORE_MODBUS_HOLDING_REGS
1072#define PROTOCORE_MODBUS_HOLDING_REGS 64
1076#ifndef PROTOCORE_MODBUS_INPUT_REGS
1077#define PROTOCORE_MODBUS_INPUT_REGS 64
1081#ifndef MAX_TLS_CONNS
1082#define MAX_TLS_CONNS 1
1086#ifndef PROTOCORE_TLS_TICKET_LIFETIME_S
1087#define PROTOCORE_TLS_TICKET_LIFETIME_S 86400
1091#ifndef PROTOCORE_MTLS_SUBJECT_MAX
1092#define PROTOCORE_MTLS_SUBJECT_MAX 128
1096#ifndef PROTOCORE_SNMP_TRAP_MAX_VARBINDS
1097#define PROTOCORE_SNMP_TRAP_MAX_VARBINDS 8
1101#ifndef PROTOCORE_SNMP_TRAP_BUF_SIZE
1102#define PROTOCORE_SNMP_TRAP_BUF_SIZE 1024
1106#ifndef SNMP_MAX_OID_LEN
1107#define SNMP_MAX_OID_LEN 32
1117#ifndef SNMP_MAX_MIB_ENTRIES
1118#define SNMP_MAX_MIB_ENTRIES 16
1127#ifndef SNMP_MAX_VARBINDS
1128#define SNMP_MAX_VARBINDS 16
1138#ifndef SNMP_MSG_BUF_SIZE
1139#define SNMP_MSG_BUF_SIZE 1472
1143#ifndef SNMP_COMMUNITY_MAX
1144#define SNMP_COMMUNITY_MAX 32
1150#ifndef PROTOCORE_SNMP_DEFAULT_RO_COMMUNITY
1151#define PROTOCORE_SNMP_DEFAULT_RO_COMMUNITY "public"
1155#ifndef SNMP_V3_USER_MAX
1156#define SNMP_V3_USER_MAX 32
1160#ifndef SNMP_V3_ENGINEID_MAX
1161#define SNMP_V3_ENGINEID_MAX 32
1169#ifndef PROTOCORE_COAP_MAX_OBSERVERS
1170#define PROTOCORE_COAP_MAX_OBSERVERS 4
1179#ifndef PROTOCORE_COAP_DEDUP_ENTRIES
1180#define PROTOCORE_COAP_DEDUP_ENTRIES 4
1185#ifndef PROTOCORE_COAP_DEDUP_RESP_MAX
1186#define PROTOCORE_COAP_DEDUP_RESP_MAX 256
1191#ifndef PROTOCORE_COAP_DEDUP_LIFETIME_MS
1192#define PROTOCORE_COAP_DEDUP_LIFETIME_MS 247000u
1196#ifndef PROTOCORE_COAP_BLOCK_SZX_MAX
1197#define PROTOCORE_COAP_BLOCK_SZX_MAX 6
1206#ifndef PROTOCORE_COAP_BLOCK1_MAX
1207#define PROTOCORE_COAP_BLOCK1_MAX 1024
1216#ifndef PROTOCORE_COAP_MAX_RESOURCES
1217#define PROTOCORE_COAP_MAX_RESOURCES 8
1221#ifndef PROTOCORE_COAP_MAX_PATH
1222#define PROTOCORE_COAP_MAX_PATH 64
1226#ifndef PROTOCORE_COAP_MAX_QUERY
1227#define PROTOCORE_COAP_MAX_QUERY 64
1236#ifndef PROTOCORE_COAP_MAX_PAYLOAD
1237#define PROTOCORE_COAP_MAX_PAYLOAD 256
1249#ifndef PROTOCORE_COAP_MSG_BUF_SIZE
1250#if PROTOCORE_ENABLE_COAP_BLOCK
1251#define PROTOCORE_COAP_MSG_BUF_SIZE 1152
1253#define PROTOCORE_COAP_MSG_BUF_SIZE 512
1258#ifndef PROTOCORE_COAP_OBSERVE_PORT
1259#define PROTOCORE_COAP_OBSERVE_PORT 5683
1277#ifndef PROTOCORE_TLS_ARENA_SIZE
1283#define PROTOCORE_TLS_ARENA_SIZE (49152 + (MAX_TLS_CONNS - 1) * 32768)
1298#ifndef PROTOCORE_TLS_ARENA_IN_PSRAM
1299#define PROTOCORE_TLS_ARENA_IN_PSRAM 0
1313#ifndef PROTOCORE_TLS_MAX_FRAG_LEN
1314#define PROTOCORE_TLS_MAX_FRAG_LEN 0
1334#ifndef PROTOCORE_TLS_ECDHE_PREFER_P256
1335#define PROTOCORE_TLS_ECDHE_PREFER_P256 PROTOCORE_HW_ECC
1349#ifndef PROTOCORE_TLS_ACK_MULTI_CONN_DRAM
1350#define PROTOCORE_TLS_ACK_MULTI_CONN_DRAM 0
1359#ifndef PROTOCORE_MDNS_MAX_SERVICES
1360#define PROTOCORE_MDNS_MAX_SERVICES 4
1364#ifndef PROTOCORE_MDNS_TXT_MAX
1365#define PROTOCORE_MDNS_TXT_MAX 128
1369#ifndef PROTOCORE_MDNS_LABEL_MAX
1370#define PROTOCORE_MDNS_LABEL_MAX 32
1379#ifndef PROTOCORE_MDNS_TX_MAX
1380#define PROTOCORE_MDNS_TX_MAX 512
1389#ifndef PROTOCORE_NTP_CLIENT_PORT
1390#define PROTOCORE_NTP_CLIENT_PORT 1123
1394#ifndef PROTOCORE_NTP_SERVER_STRATUM
1395#define PROTOCORE_NTP_SERVER_STRATUM 3
1399#ifndef PROTOCORE_DNS_SERVER_MAX_RECORDS
1400#define PROTOCORE_DNS_SERVER_MAX_RECORDS 8
1404#ifndef PROTOCORE_DNS_SERVER_TTL
1405#define PROTOCORE_DNS_SERVER_TTL 60
1409#ifndef PROTOCORE_DNS_NAME_MAX
1410#define PROTOCORE_DNS_NAME_MAX 128
1431#ifndef PROTOCORE_ENABLE_HTTP_CLOCK
1432#define PROTOCORE_ENABLE_HTTP_CLOCK 0
1436#ifndef PROTOCORE_TIME_SOURCE_MAX
1437#define PROTOCORE_TIME_SOURCE_MAX 4
1451#ifndef PROTOCORE_I2C_SDA_PIN
1452#define PROTOCORE_I2C_SDA_PIN -1
1454#ifndef PROTOCORE_I2C_SCL_PIN
1455#define PROTOCORE_I2C_SCL_PIN -1
1464#ifndef PROTOCORE_SPI_MOSI_PIN
1465#define PROTOCORE_SPI_MOSI_PIN -1
1467#ifndef PROTOCORE_SPI_MISO_PIN
1468#define PROTOCORE_SPI_MISO_PIN -1
1470#ifndef PROTOCORE_SPI_SCLK_PIN
1471#define PROTOCORE_SPI_SCLK_PIN -1
1475#ifndef PROTOCORE_RTC_I2C_ADDR
1476#define PROTOCORE_RTC_I2C_ADDR 0x68
1480#ifndef PROTOCORE_HMMD_BAUD
1481#define PROTOCORE_HMMD_BAUD 115200
1485#ifndef PROTOCORE_HMMD_UART
1486#define PROTOCORE_HMMD_UART 2
1490#ifndef PROTOCORE_LD2410_BAUD
1491#define PROTOCORE_LD2410_BAUD 256000
1495#ifndef PROTOCORE_LD2410_UART
1496#define PROTOCORE_LD2410_UART 2
1500#ifndef PROTOCORE_SEN0192_PIN
1501#define PROTOCORE_SEN0192_PIN 4
1505#ifndef PROTOCORE_SEN0192_HOLD_MS
1506#define PROTOCORE_SEN0192_HOLD_MS 2000
1510#ifndef PROTOCORE_SEN0192_ACTIVE_HIGH
1511#define PROTOCORE_SEN0192_ACTIVE_HIGH 1
1515#ifndef PROTOCORE_MPR121_I2C_ADDR
1516#define PROTOCORE_MPR121_I2C_ADDR 0x5A
1521#ifndef PROTOCORE_MPR121_TOUCH_THRESHOLD
1522#define PROTOCORE_MPR121_TOUCH_THRESHOLD 12
1526#ifndef PROTOCORE_MPR121_RELEASE_THRESHOLD
1527#define PROTOCORE_MPR121_RELEASE_THRESHOLD 6
1531#ifndef PROTOCORE_SHT3X_I2C_ADDR
1532#define PROTOCORE_SHT3X_I2C_ADDR 0x44
1536#ifndef PROTOCORE_PCA9685_I2C_ADDR
1537#define PROTOCORE_PCA9685_I2C_ADDR 0x40
1541#ifndef PROTOCORE_PCA9685_FREQ
1542#define PROTOCORE_PCA9685_FREQ 50
1546#ifndef PROTOCORE_ADS1115_I2C_ADDR
1547#define PROTOCORE_ADS1115_I2C_ADDR 0x48
1552#ifndef PROTOCORE_ADS1115_GAIN
1553#define PROTOCORE_ADS1115_GAIN 2
1558#ifndef PROTOCORE_ADS1115_DR
1559#define PROTOCORE_ADS1115_DR 4
1564#ifndef PROTOCORE_ADS1115_DIFFERENTIAL
1565#define PROTOCORE_ADS1115_DIFFERENTIAL 0
1569#ifndef PROTOCORE_INA219_I2C_ADDR
1570#define PROTOCORE_INA219_I2C_ADDR 0x40
1575#ifndef PROTOCORE_INA219_CURRENT_LSB_UA
1576#define PROTOCORE_INA219_CURRENT_LSB_UA 100
1581#ifndef PROTOCORE_INA219_SHUNT_MOHM
1582#define PROTOCORE_INA219_SHUNT_MOHM 100
1586#ifndef PROTOCORE_CONFIG_MAX_ENTRIES
1587#define PROTOCORE_CONFIG_MAX_ENTRIES 16
1591#ifndef PROTOCORE_CONFIG_KEY_MAX
1592#define PROTOCORE_CONFIG_KEY_MAX 16
1601#ifndef PROTOCORE_CONFIG_VAL_MAX
1602#define PROTOCORE_CONFIG_VAL_MAX 2048
1613#ifndef PROTOCORE_THEMES_INCLUDE_TRADEMARKED
1614#define PROTOCORE_THEMES_INCLUDE_TRADEMARKED 1
1618#ifndef PROTOCORE_DASHBOARD_MAX_WIDGETS
1619#define PROTOCORE_DASHBOARD_MAX_WIDGETS 16
1623#ifndef PROTOCORE_DASHBOARD_JSON_BUF
1624#define PROTOCORE_DASHBOARD_JSON_BUF 1024
1628#ifndef PROTOCORE_PARTITION_MAX
1629#define PROTOCORE_PARTITION_MAX 16
1633#ifndef PROTOCORE_PARTITION_JSON_BUF
1634#define PROTOCORE_PARTITION_JSON_BUF 1024
1638#ifndef PROTOCORE_GPIO_MAX
1639#define PROTOCORE_GPIO_MAX 40
1643#ifndef PROTOCORE_GPIO_JSON_BUF
1644#define PROTOCORE_GPIO_JSON_BUF 1024
1648#ifndef PROTOCORE_UDP_TELEMETRY_BUF
1649#define PROTOCORE_UDP_TELEMETRY_BUF 256
1653#ifndef PROTOCORE_STATSD_PORT
1654#define PROTOCORE_STATSD_PORT 8125
1658#ifndef PROTOCORE_STATSD_LINE_MAX
1659#define PROTOCORE_STATSD_LINE_MAX 256
1663#ifndef PROTOCORE_GUARDRAIL_HEAP_MIN
1664#define PROTOCORE_GUARDRAIL_HEAP_MIN 8192
1668#ifndef PROTOCORE_GUARDRAIL_FRAG_MIN_BLOCK
1669#define PROTOCORE_GUARDRAIL_FRAG_MIN_BLOCK 4096
1673#ifndef PROTOCORE_GUARDRAIL_STACK_MIN
1674#define PROTOCORE_GUARDRAIL_STACK_MIN 512
1678#ifndef PROTOCORE_FAILSAFE_MAX_LIFELINES
1679#define PROTOCORE_FAILSAFE_MAX_LIFELINES 8
1683#ifndef PROTOCORE_POWER_MHZ_MAX
1684#define PROTOCORE_POWER_MHZ_MAX 240
1688#ifndef PROTOCORE_POWER_MHZ_MIN
1689#define PROTOCORE_POWER_MHZ_MIN 80
1693#ifndef PROTOCORE_POWER_BUSY_PCT
1694#define PROTOCORE_POWER_BUSY_PCT 40
1698#ifndef PROTOCORE_POWER_TEMP_HOT_C
1699#define PROTOCORE_POWER_TEMP_HOT_C 80
1714#ifndef PROTOCORE_POWER_TEMP_COOL_C
1715#define PROTOCORE_POWER_TEMP_COOL_C 70
1719#ifndef PROTOCORE_POWER_RECOVER_MS
1720#define PROTOCORE_POWER_RECOVER_MS 10000
1729#ifndef PROTOCORE_HOTSWAP_FAIL_THRESHOLD
1730#define PROTOCORE_HOTSWAP_FAIL_THRESHOLD 3
1734#ifndef PROTOCORE_HOTSWAP_PROBE_MS
1735#define PROTOCORE_HOTSWAP_PROBE_MS 2000
1749#ifndef PROTOCORE_MTC_SAMPLE_BUFFER
1750#define PROTOCORE_MTC_SAMPLE_BUFFER 32
1753#ifndef PROTOCORE_MTC_STR_MAX
1754#define PROTOCORE_MTC_STR_MAX 24
1756#ifndef PROTOCORE_MTC_TS_MAX
1757#define PROTOCORE_MTC_TS_MAX 32
1759#ifndef PROTOCORE_MTC_VAL_MAX
1760#define PROTOCORE_MTC_VAL_MAX 32
1771#ifndef PROTOCORE_MTCONNECT_BORROW
1772#define PROTOCORE_MTCONNECT_BORROW \
1773 ((size_t)PROTOCORE_MTC_SAMPLE_BUFFER * \
1774 (2u * (PROTOCORE_MTC_STR_MAX + 1u) + (PROTOCORE_MTC_TS_MAX + 1u) + (PROTOCORE_MTC_VAL_MAX + 1u) + 16u) + \
1779#if PROTOCORE_ENABLE_MTCONNECT
1780#define PROTOCORE_PLAINTEXT_WORK_MTCONNECT PROTOCORE_MTCONNECT_BORROW
1782#define PROTOCORE_PLAINTEXT_WORK_MTCONNECT 0
1792#ifndef PROTOCORE_DNC_LINE_MAX
1793#define PROTOCORE_DNC_LINE_MAX 128
1803#ifndef PROTOCORE_DNC_LEADER_LEN
1804#define PROTOCORE_DNC_LEADER_LEN 32
1815#ifndef PROTOCORE_DNC_XOFF_MAX_POLLS
1816#define PROTOCORE_DNC_XOFF_MAX_POLLS 200000
1820#ifndef PROTOCORE_BRIDGE_MAX_RULES
1821#define PROTOCORE_BRIDGE_MAX_RULES 8
1832#ifndef PROTOCORE_BRIDGE_TXN_MAX
1833#define PROTOCORE_BRIDGE_TXN_MAX 256
1837#ifndef PROTOCORE_BRIDGE_STREAM_CHUNK
1838#define PROTOCORE_BRIDGE_STREAM_CHUNK 256
1842#ifndef PROTOCORE_BRIDGE_MAX_DRAIN
1843#define PROTOCORE_BRIDGE_MAX_DRAIN 8
1847#ifndef PROTOCORE_BRIDGE_UART_TXN_MS
1848#define PROTOCORE_BRIDGE_UART_TXN_MS 50
1852#ifndef PROTOCORE_NTRIP_MAX_ROVERS
1853#define PROTOCORE_NTRIP_MAX_ROVERS 4
1857#define PROTOCORE_ENABLE_NTRIP_CASTER_NEEDS_NMEA0183 PROTOCORE_ENABLE_NMEA0183
1858#if PROTOCORE_ENABLE_NTRIP_CASTER && !PROTOCORE_ENABLE_NTRIP_CASTER_NEEDS_NMEA0183
1859#error "ProtoCore: PROTOCORE_ENABLE_NTRIP_CASTER needs PROTOCORE_ENABLE_NMEA0183"
1863#ifndef PROTOCORE_NTRIP_MOUNT_MAX
1864#define PROTOCORE_NTRIP_MOUNT_MAX 32
1868#ifndef PROTOCORE_NTRIP_REQ_MAX
1869#define PROTOCORE_NTRIP_REQ_MAX 512
1873#ifndef PROTOCORE_NTRIP_MAX_MOUNTS
1874#define PROTOCORE_NTRIP_MAX_MOUNTS 2
1885#ifndef PROTOCORE_RELAY_BUF
1886#define PROTOCORE_RELAY_BUF 2048
1896#ifndef PROTOCORE_RELAY_DRAIN_MAX
1897#define PROTOCORE_RELAY_DRAIN_MAX 8
1906#ifndef PROTOCORE_RELAY_MAX_PUBLISH
1907#define PROTOCORE_RELAY_MAX_PUBLISH 4
1914#ifndef PROTOCORE_RELAY_MAX_CONNS
1915#define PROTOCORE_RELAY_MAX_CONNS 4
1919#ifndef PROTOCORE_RELAY_HOST_MAX
1920#define PROTOCORE_RELAY_HOST_MAX 64
1924#ifndef PROTOCORE_RELAY_CONNECT_MS
1925#define PROTOCORE_RELAY_CONNECT_MS 5000
1935#ifndef PROTOCORE_FTP_CMD_MAX
1936#define PROTOCORE_FTP_CMD_MAX 256
1946#ifndef PROTOCORE_FTP_REPLY_BUF
1947#define PROTOCORE_FTP_REPLY_BUF 512
1951#ifndef PROTOCORE_FTP_CHUNK
1952#define PROTOCORE_FTP_CHUNK 512
1956#ifndef PROTOCORE_FTP_TIMEOUT_MS
1957#define PROTOCORE_FTP_TIMEOUT_MS 8000
1961#define PROTOCORE_EDGE_SD_VALUE_MAX \
1962 (1 + 2 + 2 + 7u * 2u + PROTOCORE_EDGE_KEY_MAX + \
1963 PROTOCORE_EDGE_CTYPE_MAX + PROTOCORE_EDGE_ETAG_MAX + PROTOCORE_EDGE_LASTMOD_MAX + PROTOCORE_EDGE_CENC_MAX + \
1964 PROTOCORE_EDGE_VARY_MAX + PROTOCORE_EDGE_VARY_MAX + PROTOCORE_EDGE_BODY_MAX)
1967#define PROTOCORE_EDGE_MESH_TRAILER (8 + 8 + 4 + 4 + 4 )
1970#define PROTOCORE_EDGE_MESH_ENTRY_MAX (PROTOCORE_EDGE_MESH_TRAILER + PROTOCORE_EDGE_SD_VALUE_MAX)
1973#define PROTOCORE_EDGE_MESH_RESP_MAX (2 + 1 + 1 + 2 + PROTOCORE_EDGE_MESH_ENTRY_MAX)
1976#define PROTOCORE_EDGE_MESH_REQ_MAX (2 + 1 + 1 + 32 + 2 + PROTOCORE_EDGE_KEY_MAX + 2 + PROTOCORE_MESH_HDRS_MAX)
1981#if PROTOCORE_ENABLE_EDGE_MESH
1982#define PROTOCORE_EDGE_FETCH_BUF_MIN ((PROTOCORE_EDGE_MESH_RESP_MAX) > 2560 ? (PROTOCORE_EDGE_MESH_RESP_MAX) : 2560)
1984#define PROTOCORE_EDGE_FETCH_BUF_MIN 2560
1989#ifndef PROTOCORE_EDGE_KEY_MAX
1990#define PROTOCORE_EDGE_KEY_MAX 128
1992#ifndef PROTOCORE_EDGE_VARY_MAX
1993#define PROTOCORE_EDGE_VARY_MAX 64
1997#ifndef PROTOCORE_EDGE_CTYPE_MAX
1998#define PROTOCORE_EDGE_CTYPE_MAX 64
2002#ifndef PROTOCORE_EDGE_ETAG_MAX
2003#define PROTOCORE_EDGE_ETAG_MAX 64
2007#ifndef PROTOCORE_EDGE_LASTMOD_MAX
2008#define PROTOCORE_EDGE_LASTMOD_MAX 40
2012#ifndef PROTOCORE_EDGE_CENC_MAX
2013#define PROTOCORE_EDGE_CENC_MAX 32
2015#ifndef PROTOCORE_EDGE_MAP_MAX
2016#define PROTOCORE_EDGE_MAP_MAX 4
2018#ifndef PROTOCORE_EDGE_ORIGIN_URL_MAX
2019#define PROTOCORE_EDGE_ORIGIN_URL_MAX 128
2022#ifndef PROTOCORE_EDGE_FETCH_BUF
2023#define PROTOCORE_EDGE_FETCH_BUF PROTOCORE_EDGE_FETCH_BUF_MIN
2025#ifndef PROTOCORE_EDGE_FETCH_TIMEOUT_MS
2026#define PROTOCORE_EDGE_FETCH_TIMEOUT_MS 8000
2028#ifndef PROTOCORE_EDGE_DEFAULT_TTL_S
2029#define PROTOCORE_EDGE_DEFAULT_TTL_S 60
2045#ifndef PROTOCORE_SMB_BUF
2046#define PROTOCORE_SMB_BUF 1024
2055#ifndef PROTOCORE_EXC_COREDUMP_CHUNK
2056#define PROTOCORE_EXC_COREDUMP_CHUNK 512
2062#ifndef PROTOCORE_DELIVERY_PRECACHE_MAX
2063#define PROTOCORE_DELIVERY_PRECACHE_MAX 16
2072#ifndef PROTOCORE_DELIVERY_MANIFEST_BUF
2073#define PROTOCORE_DELIVERY_MANIFEST_BUF 512
2082#ifndef PROTOCORE_WIFI_SNIFFER_MAX_CHANNELS
2083#define PROTOCORE_WIFI_SNIFFER_MAX_CHANNELS 14
2087#ifndef PROTOCORE_FDC2214_I2C_ADDR
2088#define PROTOCORE_FDC2214_I2C_ADDR 0x2A
2092#ifndef PROTOCORE_LDC1614_I2C_ADDR
2093#define PROTOCORE_LDC1614_I2C_ADDR 0x2A
2098#ifndef PROTOCORE_VL53L0X_I2C_ADDR
2099#define PROTOCORE_VL53L0X_I2C_ADDR 0x29
2103#ifndef PROTOCORE_LOG_LINES
2104#define PROTOCORE_LOG_LINES 32
2108#ifndef PROTOCORE_LOG_LINE_LEN
2109#define PROTOCORE_LOG_LINE_LEN 96
2119#define PROTOCORE_LOG_LEVEL_DEBUG 0
2120#define PROTOCORE_LOG_LEVEL_INFO 1
2121#define PROTOCORE_LOG_LEVEL_WARN 2
2122#define PROTOCORE_LOG_LEVEL_ERROR 3
2123#define PROTOCORE_LOG_LEVEL_NONE 4
2135#ifndef PROTOCORE_LOG_LEVEL
2136#define PROTOCORE_LOG_LEVEL PROTOCORE_LOG_LEVEL_NONE
2140#ifndef PROTOCORE_OTA_CONFIRM_WINDOW_MS
2141#define PROTOCORE_OTA_CONFIRM_WINDOW_MS 30000
2145#ifndef PROTOCORE_RADIO_WIFI_PS
2146#define PROTOCORE_RADIO_WIFI_PS 0
2150#ifndef PROTOCORE_RADIO_MAX_TX_DBM
2151#define PROTOCORE_RADIO_MAX_TX_DBM 0
2162#ifndef PROTOCORE_DNS_SERVER
2163#define PROTOCORE_DNS_SERVER "9.9.9.9"
2167#ifndef PROTOCORE_DNS_CLIENT_PORT
2168#define PROTOCORE_DNS_CLIENT_PORT 1153
2171#ifndef PROTOCORE_DNS_TIMEOUT_MS
2172#define PROTOCORE_DNS_TIMEOUT_MS 5000
2181#ifndef PROTOCORE_OIDC_MAX_LEN
2182#define PROTOCORE_OIDC_MAX_LEN 1600
2186#ifndef PROTOCORE_UMATI_NS
2187#define PROTOCORE_UMATI_NS 1
2191#ifndef PROTOCORE_ROBOTICS_NS
2192#define PROTOCORE_ROBOTICS_NS 1
2196#ifndef PROTOCORE_ROBOTICS_AXES
2197#define PROTOCORE_ROBOTICS_AXES 6
2201#ifndef PROTOCORE_EM77_NS
2202#define PROTOCORE_EM77_NS 1
2210#ifndef PROTOCORE_SYSLOG_MSG_MAX
2211#define PROTOCORE_SYSLOG_MSG_MAX 256
2215#ifndef PROTOCORE_SYSLOG_FIELD_MAX
2216#define PROTOCORE_SYSLOG_FIELD_MAX 32
2221#ifndef PROTOCORE_SYSLOG_DEFAULT_PORT
2222#define PROTOCORE_SYSLOG_DEFAULT_PORT 514
2226#ifndef PROTOCORE_JWT_MAX_LEN
2227#define PROTOCORE_JWT_MAX_LEN 512
2231#ifndef PROTOCORE_HTTP_CLIENT_BUF_SIZE
2232#define PROTOCORE_HTTP_CLIENT_BUF_SIZE 2048
2236#ifndef PROTOCORE_HTTP_CLIENT_TIMEOUT_MS
2237#define PROTOCORE_HTTP_CLIENT_TIMEOUT_MS 8000
2241#ifndef PROTOCORE_SMTP_LINE_MAX
2242#define PROTOCORE_SMTP_LINE_MAX 256
2246#ifndef PROTOCORE_SMTP_MSG_MAX
2247#define PROTOCORE_SMTP_MSG_MAX 2048
2251#ifndef PROTOCORE_SMTP_REPLY_MAX
2252#define PROTOCORE_SMTP_REPLY_MAX 512
2256#ifndef PROTOCORE_SMTP_TIMEOUT_MS
2257#define PROTOCORE_SMTP_TIMEOUT_MS 10000
2261#ifndef PROTOCORE_SMTP_CT_BUF_SIZE
2262#define PROTOCORE_SMTP_CT_BUF_SIZE 4096
2273#ifndef PROTOCORE_MQTT_BUF_SIZE
2274#define PROTOCORE_MQTT_BUF_SIZE 1024
2284#ifndef PROTOCORE_MQTT_CONNECT_MS
2285#define PROTOCORE_MQTT_CONNECT_MS 8000
2289#ifndef PROTOCORE_MQTT_KEEPALIVE_S
2290#define PROTOCORE_MQTT_KEEPALIVE_S 30
2294#ifndef PROTOCORE_MQTT_CT_BUF_SIZE
2295#define PROTOCORE_MQTT_CT_BUF_SIZE 4096
2299#ifndef PROTOCORE_MQTT_MAX_TOPIC
2300#define PROTOCORE_MQTT_MAX_TOPIC 128
2311#ifndef PROTOCORE_MQTT_MAX_INFLIGHT
2312#define PROTOCORE_MQTT_MAX_INFLIGHT 4
2316#ifndef PROTOCORE_MQTT_RETRANSMIT_MS
2317#define PROTOCORE_MQTT_RETRANSMIT_MS 5000
2321#ifndef PROTOCORE_MQTT_RX_QOS2_SLOTS
2322#define PROTOCORE_MQTT_RX_QOS2_SLOTS 8
2326#ifndef PROTOCORE_WS_CLIENT_BUF_SIZE
2327#define PROTOCORE_WS_CLIENT_BUF_SIZE 1024
2331#ifndef PROTOCORE_WS_CLIENT_CT_BUF_SIZE
2332#define PROTOCORE_WS_CLIENT_CT_BUF_SIZE 4096
2340#define PROTOCORE_ENABLE_HTTP_CLIENT_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2341#if PROTOCORE_ENABLE_HTTP_CLIENT && !PROTOCORE_ENABLE_HTTP_CLIENT_NEEDS_TCP_CLIENT
2342#error "ProtoCore: PROTOCORE_ENABLE_HTTP_CLIENT needs PROTOCORE_ENABLE_TCP_CLIENT"
2345#define PROTOCORE_ENABLE_MQTT_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2346#if PROTOCORE_ENABLE_MQTT && !PROTOCORE_ENABLE_MQTT_NEEDS_TCP_CLIENT
2347#error "ProtoCore: PROTOCORE_ENABLE_MQTT needs PROTOCORE_ENABLE_TCP_CLIENT"
2350#define PROTOCORE_ENABLE_WS_CLIENT_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2351#if PROTOCORE_ENABLE_WS_CLIENT && !PROTOCORE_ENABLE_WS_CLIENT_NEEDS_TCP_CLIENT
2352#error "ProtoCore: PROTOCORE_ENABLE_WS_CLIENT needs PROTOCORE_ENABLE_TCP_CLIENT"
2355#define PROTOCORE_ENABLE_RELAY_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2356#if PROTOCORE_ENABLE_RELAY && !PROTOCORE_ENABLE_RELAY_NEEDS_TCP_CLIENT
2357#error "ProtoCore: PROTOCORE_ENABLE_RELAY needs PROTOCORE_ENABLE_TCP_CLIENT"
2360#define PROTOCORE_ENABLE_SMTP_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2361#if PROTOCORE_ENABLE_SMTP && !PROTOCORE_ENABLE_SMTP_NEEDS_TCP_CLIENT
2362#error "ProtoCore: PROTOCORE_ENABLE_SMTP needs PROTOCORE_ENABLE_TCP_CLIENT"
2365#define PROTOCORE_ENABLE_SMB_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2366#if PROTOCORE_ENABLE_SMB && !PROTOCORE_ENABLE_SMB_NEEDS_TCP_CLIENT
2367#error "ProtoCore: PROTOCORE_ENABLE_SMB needs PROTOCORE_ENABLE_TCP_CLIENT"
2370#define PROTOCORE_ENABLE_DNC_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2371#if PROTOCORE_ENABLE_DNC && !PROTOCORE_ENABLE_DNC_NEEDS_TCP_CLIENT
2372#error "ProtoCore: PROTOCORE_ENABLE_DNC needs PROTOCORE_ENABLE_TCP_CLIENT"
2375#define PROTOCORE_ENABLE_FTP_SESSION_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2376#if PROTOCORE_ENABLE_FTP_SESSION && !PROTOCORE_ENABLE_FTP_SESSION_NEEDS_TCP_CLIENT
2377#error "ProtoCore: PROTOCORE_ENABLE_FTP_SESSION needs PROTOCORE_ENABLE_TCP_CLIENT"
2380#define PROTOCORE_ENABLE_SSH_CLIENT_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2381#if PROTOCORE_ENABLE_SSH_CLIENT && !PROTOCORE_ENABLE_SSH_CLIENT_NEEDS_TCP_CLIENT
2382#error "ProtoCore: PROTOCORE_ENABLE_SSH_CLIENT needs PROTOCORE_ENABLE_TCP_CLIENT"
2390#define PROTOCORE_SSH_PORT_FORWARD_NEEDS_TCP_CLIENT PROTOCORE_ENABLE_TCP_CLIENT
2391#if PROTOCORE_SSH_PORT_FORWARD && !PROTOCORE_SSH_PORT_FORWARD_NEEDS_TCP_CLIENT
2392#error "ProtoCore: PROTOCORE_SSH_PORT_FORWARD needs PROTOCORE_ENABLE_TCP_CLIENT"
2395#define PROTOCORE_ENABLE_TCP_CLIENT_NEEDS_DNS_RESOLVER PROTOCORE_ENABLE_DNS_RESOLVER
2396#if PROTOCORE_ENABLE_TCP_CLIENT && !PROTOCORE_ENABLE_TCP_CLIENT_NEEDS_DNS_RESOLVER
2397#error "ProtoCore: PROTOCORE_ENABLE_TCP_CLIENT needs PROTOCORE_ENABLE_DNS_RESOLVER"
2405#define PROTOCORE_ENABLE_COAP_NEEDS_UDP PROTOCORE_ENABLE_UDP
2406#if PROTOCORE_ENABLE_COAP && !PROTOCORE_ENABLE_COAP_NEEDS_UDP
2407#error "ProtoCore: PROTOCORE_ENABLE_COAP needs PROTOCORE_ENABLE_UDP"
2410#define PROTOCORE_ENABLE_DTLS_NEEDS_UDP PROTOCORE_ENABLE_UDP
2411#if PROTOCORE_ENABLE_DTLS && !PROTOCORE_ENABLE_DTLS_NEEDS_UDP
2412#error "ProtoCore: PROTOCORE_ENABLE_DTLS needs PROTOCORE_ENABLE_UDP"
2415#define PROTOCORE_ENABLE_STATSD_NEEDS_UDP PROTOCORE_ENABLE_UDP
2416#if PROTOCORE_ENABLE_STATSD && !PROTOCORE_ENABLE_STATSD_NEEDS_UDP
2417#error "ProtoCore: PROTOCORE_ENABLE_STATSD needs PROTOCORE_ENABLE_UDP"
2420#define PROTOCORE_ENABLE_UDP_TELEMETRY_NEEDS_UDP PROTOCORE_ENABLE_UDP
2421#if PROTOCORE_ENABLE_UDP_TELEMETRY && !PROTOCORE_ENABLE_UDP_TELEMETRY_NEEDS_UDP
2422#error "ProtoCore: PROTOCORE_ENABLE_UDP_TELEMETRY needs PROTOCORE_ENABLE_UDP"
2425#define PROTOCORE_ENABLE_SNMP_NEEDS_UDP PROTOCORE_ENABLE_UDP
2426#if PROTOCORE_ENABLE_SNMP && !PROTOCORE_ENABLE_SNMP_NEEDS_UDP
2427#error "ProtoCore: PROTOCORE_ENABLE_SNMP needs PROTOCORE_ENABLE_UDP"
2430#define PROTOCORE_ENABLE_SNMP_TRAP_NEEDS_UDP PROTOCORE_ENABLE_UDP
2431#if PROTOCORE_ENABLE_SNMP_TRAP && !PROTOCORE_ENABLE_SNMP_TRAP_NEEDS_UDP
2432#error "ProtoCore: PROTOCORE_ENABLE_SNMP_TRAP needs PROTOCORE_ENABLE_UDP"
2435#define PROTOCORE_ENABLE_SNMP_V3_NEEDS_UDP PROTOCORE_ENABLE_UDP
2436#if PROTOCORE_ENABLE_SNMP_V3 && !PROTOCORE_ENABLE_SNMP_V3_NEEDS_UDP
2437#error "ProtoCore: PROTOCORE_ENABLE_SNMP_V3 needs PROTOCORE_ENABLE_UDP"
2440#define PROTOCORE_ENABLE_SYSLOG_NEEDS_UDP PROTOCORE_ENABLE_UDP
2441#if PROTOCORE_ENABLE_SYSLOG && !PROTOCORE_ENABLE_SYSLOG_NEEDS_UDP
2442#error "ProtoCore: PROTOCORE_ENABLE_SYSLOG needs PROTOCORE_ENABLE_UDP"
2445#define PROTOCORE_ENABLE_FLOW_EXPORT_NEEDS_UDP PROTOCORE_ENABLE_UDP
2446#if PROTOCORE_ENABLE_FLOW_EXPORT && !PROTOCORE_ENABLE_FLOW_EXPORT_NEEDS_UDP
2447#error "ProtoCore: PROTOCORE_ENABLE_FLOW_EXPORT needs PROTOCORE_ENABLE_UDP"
2450#define PROTOCORE_ENABLE_PROVISIONING_NEEDS_UDP PROTOCORE_ENABLE_UDP
2451#if PROTOCORE_ENABLE_PROVISIONING && !PROTOCORE_ENABLE_PROVISIONING_NEEDS_UDP
2452#error "ProtoCore: PROTOCORE_ENABLE_PROVISIONING needs PROTOCORE_ENABLE_UDP"
2455#define PROTOCORE_ENABLE_NTP_SERVER_NEEDS_UDP PROTOCORE_ENABLE_UDP
2456#if PROTOCORE_ENABLE_NTP_SERVER && !PROTOCORE_ENABLE_NTP_SERVER_NEEDS_UDP
2457#error "ProtoCore: PROTOCORE_ENABLE_NTP_SERVER needs PROTOCORE_ENABLE_UDP"
2460#define PROTOCORE_ENABLE_DNS_SERVER_NEEDS_UDP PROTOCORE_ENABLE_UDP
2461#if PROTOCORE_ENABLE_DNS_SERVER && !PROTOCORE_ENABLE_DNS_SERVER_NEEDS_UDP
2462#error "ProtoCore: PROTOCORE_ENABLE_DNS_SERVER needs PROTOCORE_ENABLE_UDP"
2465#define PROTOCORE_ENABLE_HTTP3_NEEDS_UDP PROTOCORE_ENABLE_UDP
2466#if PROTOCORE_ENABLE_HTTP3 && !PROTOCORE_ENABLE_HTTP3_NEEDS_UDP
2467#error "ProtoCore: PROTOCORE_ENABLE_HTTP3 needs PROTOCORE_ENABLE_UDP"
2478#if PROTOCORE_ENABLE_AUTH || PROTOCORE_ENABLE_JWT || PROTOCORE_ENABLE_OIDC
2479#define PROTOCORE_CAPTURE_AUTH_HEADER 1
2481#define PROTOCORE_CAPTURE_AUTH_HEADER 0
2491#if PROTOCORE_ENABLE_OIDC
2492#define PROTOCORE_AUTH_HDR_CAP_OIDC (PROTOCORE_OIDC_MAX_LEN + 16)
2494#define PROTOCORE_AUTH_HDR_CAP_OIDC 0
2496#if PROTOCORE_ENABLE_JWT
2497#define PROTOCORE_AUTH_HDR_CAP_JWT (PROTOCORE_JWT_MAX_LEN + 16)
2499#define PROTOCORE_AUTH_HDR_CAP_JWT 0
2501#define PROTOCORE_AUTH_HDR_CAP_M1 \
2502 (PROTOCORE_AUTH_HDR_CAP_JWT > DIGEST_AUTH_HDR_MAX ? PROTOCORE_AUTH_HDR_CAP_JWT : DIGEST_AUTH_HDR_MAX)
2503#define PROTOCORE_AUTH_HDR_CAP \
2504 (PROTOCORE_AUTH_HDR_CAP_OIDC > PROTOCORE_AUTH_HDR_CAP_M1 ? PROTOCORE_AUTH_HDR_CAP_OIDC : PROTOCORE_AUTH_HDR_CAP_M1)
2512#ifndef TERM_TX_BUF_SIZE
2513#define TERM_TX_BUF_SIZE 256
2524#ifndef PROTOCORE_KEEPALIVE_MAX_REQUESTS
2525#define PROTOCORE_KEEPALIVE_MAX_REQUESTS 100
2533#ifndef PROTOCORE_HPACK_TABLE_BYTES
2534#define PROTOCORE_HPACK_TABLE_BYTES 4096
2538#ifndef PROTOCORE_HPACK_MAX_ENTRIES
2539#define PROTOCORE_HPACK_MAX_ENTRIES 128
2547#ifndef PROTOCORE_H2_MAX_FRAME
2548#define PROTOCORE_H2_MAX_FRAME 16384
2552#ifndef PROTOCORE_H2_MAX_STREAMS
2553#define PROTOCORE_H2_MAX_STREAMS 8
2561#ifndef PROTOCORE_H2_HDR_BLOCK
2562#define PROTOCORE_H2_HDR_BLOCK 4096
2572#ifndef PROTOCORE_H2_MAX_CONTINUATION
2573#define PROTOCORE_H2_MAX_CONTINUATION 8
2584#ifndef PROTOCORE_DTLS_PMTU_DEFAULT
2585#define PROTOCORE_DTLS_PMTU_DEFAULT 1232
2598#ifndef PROTOCORE_H2_POOL_IN_PSRAM
2599#define PROTOCORE_H2_POOL_IN_PSRAM 0
2609#if PROTOCORE_ENABLE_HTTP3
2610#define PROTOCORE_INTERNAL_SLOTS 1
2611#define PROTOCORE_H3_DISPATCH_SLOT MAX_CONNS
2613#define PROTOCORE_INTERNAL_SLOTS 0
2615#define CONN_POOL_SLOTS (MAX_CONNS + PROTOCORE_INTERNAL_SLOTS)
2618#ifndef PROTOCORE_HTTP3_PORT
2619#define PROTOCORE_HTTP3_PORT 443
2630#ifndef PROTOCORE_H3_CRYPTO_BUF
2631#define PROTOCORE_H3_CRYPTO_BUF 2048
2641#ifndef PROTOCORE_H3_MAX_STREAMS
2642#define PROTOCORE_H3_MAX_STREAMS 8
2646#ifndef PROTOCORE_QUIC_MAX_CONNS
2647#define PROTOCORE_QUIC_MAX_CONNS 2
2651#ifndef PROTOCORE_QUIC_INGEST_RING
2652#define PROTOCORE_QUIC_INGEST_RING 8
2656#ifndef PROTOCORE_QUIC_MAX_DATAGRAM
2657#define PROTOCORE_QUIC_MAX_DATAGRAM 1350
2662#ifndef PROTOCORE_H3_STREAM_BUF
2663#define PROTOCORE_H3_STREAM_BUF 2048
2665#ifndef PROTOCORE_H3_PATH_LEN
2666#define PROTOCORE_H3_PATH_LEN 256
2668#ifndef PROTOCORE_H3_AUTHORITY_LEN
2669#define PROTOCORE_H3_AUTHORITY_LEN 128
2671#ifndef PROTOCORE_H3_METHOD_LEN
2672#define PROTOCORE_H3_METHOD_LEN 16
2676#ifndef PROTOCORE_H3_QPACK_SCRATCH
2677#define PROTOCORE_H3_QPACK_SCRATCH 512
2679#ifndef PROTOCORE_H3_QPACK_BLOCK
2680#define PROTOCORE_H3_QPACK_BLOCK 256
2685#ifndef PROTOCORE_QUIC_STREAM_TX
2686#define PROTOCORE_QUIC_STREAM_TX 2048
2688#ifndef PROTOCORE_QUIC_CRYPTO_RX
2689#define PROTOCORE_QUIC_CRYPTO_RX 2048
2691#ifndef PROTOCORE_QUIC_MAX_STREAMS
2692#define PROTOCORE_QUIC_MAX_STREAMS PROTOCORE_H3_MAX_STREAMS
2704#ifndef PROTOCORE_ENFORCE_HOST_HEADER
2705#define PROTOCORE_ENFORCE_HOST_HEADER 1
2716#ifndef PROTOCORE_SSH_ALLOW_PASSWORD
2717#define PROTOCORE_SSH_ALLOW_PASSWORD 1
2728#ifndef SSH_MAX_AUTH_ATTEMPTS
2729#define SSH_MAX_AUTH_ATTEMPTS 6
2734#ifndef PROTOCORE_SSH_PW_CHANGE_COOLDOWN_MS
2735#define PROTOCORE_SSH_PW_CHANGE_COOLDOWN_MS 60000u
2744#ifndef PROTOCORE_SSH_HOST_KEY_NS
2745#define PROTOCORE_SSH_HOST_KEY_NS "ssh_host_key"
2747#ifndef PROTOCORE_SSH_HOST_KEY_ITEM
2748#define PROTOCORE_SSH_HOST_KEY_ITEM "priv_der"
2756#ifndef MAX_LISTENERS
2757#define MAX_LISTENERS 3
2767#ifndef PROTOCORE_MAX_UDP_LISTENERS
2768#define PROTOCORE_MAX_UDP_LISTENERS 2
2779#ifndef PROTOCORE_UDP_RX_BUF_SIZE
2780#define PROTOCORE_UDP_RX_BUF_SIZE 1472
2790#ifndef PROTOCORE_UDP_RX_RING
2791#define PROTOCORE_UDP_RX_RING 2048
2795#ifndef PROTOCORE_ACCEPT_THROTTLE_MAX
2796#define PROTOCORE_ACCEPT_THROTTLE_MAX 20
2800#ifndef PROTOCORE_ACCEPT_THROTTLE_WINDOW_MS
2801#define PROTOCORE_ACCEPT_THROTTLE_WINDOW_MS 1000
2805#ifndef PROTOCORE_PER_IP_THROTTLE_SLOTS
2806#define PROTOCORE_PER_IP_THROTTLE_SLOTS 16
2810#ifndef PROTOCORE_PER_IP_THROTTLE_MAX
2811#define PROTOCORE_PER_IP_THROTTLE_MAX 10
2815#ifndef PROTOCORE_PER_IP_THROTTLE_WINDOW_MS
2816#define PROTOCORE_PER_IP_THROTTLE_WINDOW_MS 10000
2824#ifndef PROTOCORE_IP_ALLOWLIST_SLOTS
2825#define PROTOCORE_IP_ALLOWLIST_SLOTS 8
2833#ifndef PROTOCORE_TRUSTED_PROXY_MAX
2834#define PROTOCORE_TRUSTED_PROXY_MAX 2
2842#ifndef PROTOCORE_AUTH_LOCKOUT_SLOTS
2843#define PROTOCORE_AUTH_LOCKOUT_SLOTS 16
2847#ifndef PROTOCORE_AUTH_LOCKOUT_THRESHOLD
2848#define PROTOCORE_AUTH_LOCKOUT_THRESHOLD 5
2852#ifndef PROTOCORE_AUTH_LOCKOUT_BASE_MS
2853#define PROTOCORE_AUTH_LOCKOUT_BASE_MS 1000
2857#ifndef PROTOCORE_AUTH_LOCKOUT_MAX_MS
2858#define PROTOCORE_AUTH_LOCKOUT_MAX_MS 300000
2870#ifndef MAX_TELNET_CONNS
2871#define MAX_TELNET_CONNS 2
2875#ifndef TELNET_BUF_SIZE
2876#define TELNET_BUF_SIZE 256
2884#ifndef MAX_SSH_CONNS
2885#define MAX_SSH_CONNS 1
2897#ifndef PROTOCORE_SSH_SLOT_BYTES
2898#define PROTOCORE_SSH_SLOT_BYTES 183616u
2902#ifndef PROTOCORE_SSH_BORROW
2903#define PROTOCORE_SSH_BORROW ((size_t)MAX_SSH_CONNS * PROTOCORE_SSH_SLOT_BYTES)
2917#ifndef PROTOCORE_SSH_PORT_FORWARD
2918#define PROTOCORE_SSH_PORT_FORWARD 0
2922#ifndef PROTOCORE_SSH_FWD_MAX
2923#define PROTOCORE_SSH_FWD_MAX 2
2927#ifndef PROTOCORE_SSH_FWD_HOST_MAX
2928#define PROTOCORE_SSH_FWD_HOST_MAX 64
2932#ifndef PROTOCORE_SSH_FWD_CONNECT_MS
2933#define PROTOCORE_SSH_FWD_CONNECT_MS 3000
2937#ifndef PROTOCORE_SSH_FWD_CHUNK
2938#define PROTOCORE_SSH_FWD_CHUNK 1024
2950#ifndef PROTOCORE_SSH_RFWD_MAX
2951#define PROTOCORE_SSH_RFWD_MAX 1
2961#ifndef PROTOCORE_SSH_RFWD_BRIDGE_MAX
2962#define PROTOCORE_SSH_RFWD_BRIDGE_MAX 2
2971#ifndef SSH_PKT_BUF_SIZE
2972#define SSH_PKT_BUF_SIZE 2048
2976#ifndef PROTOCORE_SFTP_MAX_HANDLES
2977#define PROTOCORE_SFTP_MAX_HANDLES 4
2981#ifndef PROTOCORE_SFTP_PKT_BUF
2982#define PROTOCORE_SFTP_PKT_BUF 2048
2989#ifndef PROTOCORE_SFTP_MAX_READ
2990#define PROTOCORE_SFTP_MAX_READ 1024
2994#ifndef PROTOCORE_FILESYSTEM_PATH_MAX
2995#define PROTOCORE_FILESYSTEM_PATH_MAX 256
3003#ifndef PROTOCORE_SFTP_ENTRY_MAX
3004#define PROTOCORE_SFTP_ENTRY_MAX (PROTOCORE_FILESYSTEM_PATH_MAX + 320)
3014#ifndef PROTOCORE_SSH_ZLIB_IN_PSRAM
3015#define PROTOCORE_SSH_ZLIB_IN_PSRAM 0
3026#ifndef PROTOCORE_SSH_ZLIB_ACK_DRAM
3027#define PROTOCORE_SSH_ZLIB_ACK_DRAM 0
3036#ifndef PROTOCORE_SSH_ZLIB_WINDOW
3037#define PROTOCORE_SSH_ZLIB_WINDOW 8192
3044#ifndef PROTOCORE_SSH_ZLIB_MAX_IN
3045#define PROTOCORE_SSH_ZLIB_MAX_IN 2048
3049#ifndef SSH_MAX_USERNAME_LEN
3050#define SSH_MAX_USERNAME_LEN 32
3054#ifndef SSH_MAX_PASSWORD_LEN
3055#define SSH_MAX_PASSWORD_LEN 64
3073#ifndef PROTOCORE_PLAINTEXT_SCRATCH
3074#define PROTOCORE_PLAINTEXT_SCRATCH 10240
3077#if PROTOCORE_ENABLE_HTTP3
3078#define PROTOCORE_PLAINTEXT_WORK_H3CONN \
3079 (PROTOCORE_WORK_H3_CONN + PROTOCORE_WORK_QUIC_CONN + PROTOCORE_QUIC_SERVER_BORROW)
3081#define PROTOCORE_PLAINTEXT_WORK_H3CONN 0
3084#if PROTOCORE_ENABLE_EDGE_CACHE
3085#define PROTOCORE_PLAINTEXT_WORK_EDGEPROXY PROTOCORE_EDGE_PROXY_BORROW
3087#define PROTOCORE_PLAINTEXT_WORK_EDGEPROXY 0
3090#if PROTOCORE_ENABLE_EUROMAP77
3091#define PROTOCORE_PLAINTEXT_WORK_EUROMAP77 PROTOCORE_EUROMAP77_BORROW
3093#define PROTOCORE_PLAINTEXT_WORK_EUROMAP77 0
3096#if PROTOCORE_ENABLE_UMATI
3097#define PROTOCORE_PLAINTEXT_WORK_UMATI PROTOCORE_UMATI_BORROW
3099#define PROTOCORE_PLAINTEXT_WORK_UMATI 0
3102#if PROTOCORE_ENABLE_ROBOTICS
3103#define PROTOCORE_PLAINTEXT_WORK_ROBOTICS PROTOCORE_ROBOTICS_BORROW
3105#define PROTOCORE_PLAINTEXT_WORK_ROBOTICS 0
3108#if PROTOCORE_ENABLE_SIMATIC
3109#define PROTOCORE_PLAINTEXT_WORK_SIMATIC PROTOCORE_SIMATIC_BORROW
3111#define PROTOCORE_PLAINTEXT_WORK_SIMATIC 0
3114#if PROTOCORE_ENABLE_J1939
3115#define PROTOCORE_PLAINTEXT_WORK_J1939 PROTOCORE_J1939_BORROW
3117#define PROTOCORE_PLAINTEXT_WORK_J1939 0
3120#if PROTOCORE_ENABLE_MODBUS
3121#define PROTOCORE_PLAINTEXT_WORK_MODBUS PROTOCORE_MODBUS_BORROW
3123#define PROTOCORE_PLAINTEXT_WORK_MODBUS 0
3126#if PROTOCORE_ENABLE_ESPNOW
3127#define PROTOCORE_PLAINTEXT_WORK_ESPNOW PROTOCORE_ESPNOW_BORROW
3129#define PROTOCORE_PLAINTEXT_WORK_ESPNOW 0
3132#if PROTOCORE_ENABLE_PROMISC
3133#define PROTOCORE_PLAINTEXT_WORK_PROMISC PROTOCORE_PROMISC_BORROW
3135#define PROTOCORE_PLAINTEXT_WORK_PROMISC 0
3138#if PROTOCORE_ENABLE_WIFI_SNIFFER
3139#define PROTOCORE_PLAINTEXT_WORK_WIFISNIFF PROTOCORE_WIFI_SNIFFER_BORROW
3141#define PROTOCORE_PLAINTEXT_WORK_WIFISNIFF 0
3144#if PROTOCORE_ENABLE_RADIO_POWER
3145#define PROTOCORE_PLAINTEXT_WORK_RADIOPOWER PROTOCORE_RADIO_POWER_BORROW
3147#define PROTOCORE_PLAINTEXT_WORK_RADIOPOWER 0
3150#if PROTOCORE_ENABLE_DNS_SERVER
3151#define PROTOCORE_PLAINTEXT_WORK_DNSSERVER PROTOCORE_DNS_SERVER_BORROW
3153#define PROTOCORE_PLAINTEXT_WORK_DNSSERVER 0
3156#if PROTOCORE_ENABLE_FORWARD
3157#define PROTOCORE_PLAINTEXT_WORK_FORWARD PROTOCORE_FORWARD_BORROW
3159#define PROTOCORE_PLAINTEXT_WORK_FORWARD 0
3166#ifndef PROTOCORE_SESSION_BORROW
3167#define PROTOCORE_SESSION_BORROW ((size_t)PROTO_MAX_HANDLERS * 8u + 32u)
3170#define PROTOCORE_PLAINTEXT_WORK_SESSION PROTOCORE_SESSION_BORROW
3174#ifndef PROTOCORE_SIGNALING_BORROW
3175#define PROTOCORE_SIGNALING_BORROW 64u
3178#define PROTOCORE_PLAINTEXT_WORK_SIGNALING PROTOCORE_SIGNALING_BORROW
3181#ifndef PROTOCORE_TRACE_CAPTURE_BORROW
3182#define PROTOCORE_TRACE_CAPTURE_BORROW 256u
3185#if PROTOCORE_ENABLE_TRACE_CAPTURE
3186#define PROTOCORE_PLAINTEXT_WORK_TRACECAPTURE PROTOCORE_TRACE_CAPTURE_BORROW
3188#define PROTOCORE_PLAINTEXT_WORK_TRACECAPTURE 0
3193#ifndef PROTOCORE_POWER_MGMT_BORROW
3194#define PROTOCORE_POWER_MGMT_BORROW 8u
3197#if PROTOCORE_ENABLE_POWER_MGMT
3198#define PROTOCORE_PLAINTEXT_WORK_POWERMGMT PROTOCORE_POWER_MGMT_BORROW
3200#define PROTOCORE_PLAINTEXT_WORK_POWERMGMT 0
3204#ifndef PROTOCORE_GUARDRAILS_BORROW
3205#define PROTOCORE_GUARDRAILS_BORROW 16u
3208#if PROTOCORE_ENABLE_GUARDRAILS
3209#define PROTOCORE_PLAINTEXT_WORK_GUARDRAILS PROTOCORE_GUARDRAILS_BORROW
3211#define PROTOCORE_PLAINTEXT_WORK_GUARDRAILS 0
3215#ifndef PROTOCORE_FAILSAFE_BORROW
3216#define PROTOCORE_FAILSAFE_BORROW 256u
3219#if PROTOCORE_ENABLE_FAILSAFE
3220#define PROTOCORE_PLAINTEXT_WORK_FAILSAFE PROTOCORE_FAILSAFE_BORROW
3222#define PROTOCORE_PLAINTEXT_WORK_FAILSAFE 0
3228#ifndef PROTOCORE_WORKER_BORROW
3229#define PROTOCORE_WORKER_BORROW \
3230 ((size_t)PROTOCORE_WORKER_COUNT * ((size_t)PROTOCORE_DEFER_QUEUE_DEPTH * 16u + 64u) + 64u)
3233#if PROTOCORE_ENABLE_PREEMPT_QUEUE
3234#define PROTOCORE_PLAINTEXT_WORK_WORKER PROTOCORE_WORKER_BORROW
3236#define PROTOCORE_PLAINTEXT_WORK_WORKER 0
3240#ifndef PROTOCORE_PREEMPT_QUEUE_BORROW
3241#define PROTOCORE_PREEMPT_QUEUE_BORROW 512u
3244#if PROTOCORE_ENABLE_PREEMPT_QUEUE
3245#define PROTOCORE_PLAINTEXT_WORK_PREEMPTQUEUE PROTOCORE_PREEMPT_QUEUE_BORROW
3247#define PROTOCORE_PLAINTEXT_WORK_PREEMPTQUEUE 0
3252#ifndef PROTOCORE_LOGBUF_BORROW
3253#define PROTOCORE_LOGBUF_BORROW 3584u
3256#if PROTOCORE_ENABLE_LOGBUF
3257#define PROTOCORE_PLAINTEXT_WORK_LOGBUF PROTOCORE_LOGBUF_BORROW
3259#define PROTOCORE_PLAINTEXT_WORK_LOGBUF 0
3264#ifndef PROTOCORE_FLOW_EXPORT_BORROW
3265#define PROTOCORE_FLOW_EXPORT_BORROW 64u
3268#if PROTOCORE_ENABLE_FLOW_EXPORT
3269#define PROTOCORE_PLAINTEXT_WORK_FLOWEXPORT PROTOCORE_FLOW_EXPORT_BORROW
3271#define PROTOCORE_PLAINTEXT_WORK_FLOWEXPORT 0
3276#ifndef PROTOCORE_SYSLOG_BORROW
3277#define PROTOCORE_SYSLOG_BORROW 512u
3280#if PROTOCORE_ENABLE_SYSLOG
3281#define PROTOCORE_PLAINTEXT_WORK_SYSLOG PROTOCORE_SYSLOG_BORROW
3283#define PROTOCORE_PLAINTEXT_WORK_SYSLOG 0
3288#ifndef PROTOCORE_SNMP_NOTIFY_BORROW
3289#define PROTOCORE_SNMP_NOTIFY_BORROW 1536u
3292#if PROTOCORE_ENABLE_SNMP_TRAP
3293#define PROTOCORE_SECURE_WORK_SNMPNOTIFY PROTOCORE_SNMP_NOTIFY_BORROW
3295#define PROTOCORE_SECURE_WORK_SNMPNOTIFY 0
3300#ifndef PROTOCORE_HTTP_CLIENT_BORROW
3301#define PROTOCORE_HTTP_CLIENT_BORROW 3584u
3304#if PROTOCORE_ENABLE_HTTP_CLIENT
3305#define PROTOCORE_SECURE_WORK_HTTPCLIENT PROTOCORE_HTTP_CLIENT_BORROW
3307#define PROTOCORE_SECURE_WORK_HTTPCLIENT 0
3312#ifndef PROTOCORE_SMTP_BORROW
3313#define PROTOCORE_SMTP_BORROW 3584u
3316#if PROTOCORE_ENABLE_SMTP
3317#define PROTOCORE_SECURE_WORK_SMTP PROTOCORE_SMTP_BORROW
3319#define PROTOCORE_SECURE_WORK_SMTP 0
3324#ifndef PROTOCORE_WS_CLIENT_BORROW
3325#define PROTOCORE_WS_CLIENT_BORROW 4608u
3328#if PROTOCORE_ENABLE_WS_CLIENT
3329#define PROTOCORE_SECURE_WORK_WSCLIENT PROTOCORE_WS_CLIENT_BORROW
3331#define PROTOCORE_SECURE_WORK_WSCLIENT 0
3336#ifndef PROTOCORE_SNMP_V3_BORROW
3337#define PROTOCORE_SNMP_V3_BORROW 9216u
3340#if PROTOCORE_ENABLE_SNMP_V3
3341#define PROTOCORE_SECURE_WORK_SNMPV3 PROTOCORE_SNMP_V3_BORROW
3343#define PROTOCORE_SECURE_WORK_SNMPV3 0
3348#ifndef PROTOCORE_SNMP_AGENT_BORROW
3349#define PROTOCORE_SNMP_AGENT_BORROW 13312u
3352#if PROTOCORE_ENABLE_SNMP
3353#define PROTOCORE_SECURE_WORK_SNMPAGENT PROTOCORE_SNMP_AGENT_BORROW
3355#define PROTOCORE_SECURE_WORK_SNMPAGENT 0
3361#ifndef PROTOCORE_OAUTH2_BORROW
3362#define PROTOCORE_OAUTH2_BORROW 3072u
3365#if PROTOCORE_ENABLE_OAUTH2 && PROTOCORE_ENABLE_HTTP_CLIENT
3366#define PROTOCORE_SECURE_WORK_OAUTH2 PROTOCORE_OAUTH2_BORROW
3368#define PROTOCORE_SECURE_WORK_OAUTH2 0
3373#ifndef PROTOCORE_FILESYSTEM_BORROW
3374#define PROTOCORE_FILESYSTEM_BORROW 3072u
3377#define PROTOCORE_PLAINTEXT_WORK_FILESYSTEM PROTOCORE_FILESYSTEM_BORROW
3381#ifndef PROTOCORE_SOUTHBOUND_BORROW
3382#define PROTOCORE_SOUTHBOUND_BORROW 128u
3385#if PROTOCORE_ENABLE_SOUTHBOUND
3386#define PROTOCORE_PLAINTEXT_WORK_SOUTHBOUND PROTOCORE_SOUTHBOUND_BORROW
3388#define PROTOCORE_PLAINTEXT_WORK_SOUTHBOUND 0
3393#ifndef PROTOCORE_SSH_SCP_BORROW
3394#define PROTOCORE_SSH_SCP_BORROW ((size_t)PROTOCORE_FILESYSTEM_PATH_MAX + 16u)
3397#if PROTOCORE_ENABLE_SSH_SCP
3398#define PROTOCORE_PLAINTEXT_WORK_SSHSCP PROTOCORE_SSH_SCP_BORROW
3400#define PROTOCORE_PLAINTEXT_WORK_SSHSCP 0
3411#ifndef PROTOCORE_SSH_COMP_SLOT_BYTES
3412#define PROTOCORE_SSH_COMP_SLOT_BYTES 81000u
3416#ifndef PROTOCORE_SSH_COMP_BORROW
3417#define PROTOCORE_SSH_COMP_BORROW ((size_t)MAX_SSH_CONNS * PROTOCORE_SSH_COMP_SLOT_BYTES)
3421#if PROTOCORE_ENABLE_SSH_ZLIB
3422#define PROTOCORE_PLAINTEXT_WORK_SSHCOMP PROTOCORE_SSH_COMP_BORROW
3424#define PROTOCORE_PLAINTEXT_WORK_SSHCOMP 0
3432#ifndef PROTOCORE_SSH_SFTP_BORROW
3433#define PROTOCORE_SSH_SFTP_BORROW \
3434 ((size_t)SSH_PKT_BUF_SIZE + PROTOCORE_SFTP_MAX_READ + 5u * PROTOCORE_FILESYSTEM_PATH_MAX + 656u)
3437#if PROTOCORE_ENABLE_SSH_SFTP
3438#define PROTOCORE_PLAINTEXT_WORK_SSHSFTP PROTOCORE_SSH_SFTP_BORROW
3440#define PROTOCORE_PLAINTEXT_WORK_SSHSFTP 0
3445#ifndef PROTOCORE_FILE_SERVING_BORROW
3446#define PROTOCORE_FILE_SERVING_BORROW 16u
3449#if PROTOCORE_ENABLE_FILE_SERVING
3450#define PROTOCORE_PLAINTEXT_WORK_FILESERVING PROTOCORE_FILE_SERVING_BORROW
3452#define PROTOCORE_PLAINTEXT_WORK_FILESERVING 0
3458#ifndef PROTOCORE_HTTP_PARSER_BORROW
3459#define PROTOCORE_HTTP_PARSER_BORROW 32u
3464#if PROTOCORE_ENABLE_HTTP_PARSER
3465#define PROTOCORE_PLAINTEXT_WORK_HTTPPARSER PROTOCORE_HTTP_PARSER_BORROW
3467#define PROTOCORE_PLAINTEXT_WORK_HTTPPARSER 0
3473#ifndef PROTOCORE_MDNS_ADAPTIVE_BORROW
3474#define PROTOCORE_MDNS_ADAPTIVE_BORROW 96u
3477#if PROTOCORE_ENABLE_MDNS_ADAPTIVE
3478#define PROTOCORE_PLAINTEXT_WORK_MDNSADAPTIVE PROTOCORE_MDNS_ADAPTIVE_BORROW
3480#define PROTOCORE_PLAINTEXT_WORK_MDNSADAPTIVE 0
3486#ifndef PROTOCORE_UPLOAD_SERVICE_BORROW
3487#define PROTOCORE_UPLOAD_SERVICE_BORROW 48u
3490#if PROTOCORE_ENABLE_UPLOAD
3491#define PROTOCORE_PLAINTEXT_WORK_UPLOADSERVICE PROTOCORE_UPLOAD_SERVICE_BORROW
3493#define PROTOCORE_PLAINTEXT_WORK_UPLOADSERVICE 0
3500#ifndef PROTOCORE_NTP_SERVICE_BORROW
3501#define PROTOCORE_NTP_SERVICE_BORROW 64u
3504#if PROTOCORE_ENABLE_NTP
3505#define PROTOCORE_PLAINTEXT_WORK_NTPSERVICE PROTOCORE_NTP_SERVICE_BORROW
3507#define PROTOCORE_PLAINTEXT_WORK_NTPSERVICE 0
3514#ifndef PROTOCORE_HTTP_CLOCK_BORROW
3515#define PROTOCORE_HTTP_CLOCK_BORROW 32u
3518#if PROTOCORE_ENABLE_HTTP_CLOCK
3519#define PROTOCORE_PLAINTEXT_WORK_HTTPCLOCK PROTOCORE_HTTP_CLOCK_BORROW
3521#define PROTOCORE_PLAINTEXT_WORK_HTTPCLOCK 0
3526#ifndef PROTOCORE_NTP_SERVER_BORROW
3527#define PROTOCORE_NTP_SERVER_BORROW 16u
3530#if PROTOCORE_ENABLE_NTP_SERVER
3531#define PROTOCORE_PLAINTEXT_WORK_NTPSERVER PROTOCORE_NTP_SERVER_BORROW
3533#define PROTOCORE_PLAINTEXT_WORK_NTPSERVER 0
3539#ifndef PROTOCORE_MDNS_SERVICE_BORROW
3540#define PROTOCORE_MDNS_SERVICE_BORROW 320u
3543#if PROTOCORE_ENABLE_MDNS
3544#define PROTOCORE_PLAINTEXT_WORK_MDNSSERVICE PROTOCORE_MDNS_SERVICE_BORROW
3546#define PROTOCORE_PLAINTEXT_WORK_MDNSSERVICE 0
3553#ifndef PROTOCORE_TELNET_BORROW
3554#define PROTOCORE_TELNET_BORROW ((size_t)MAX_TELNET_CONNS * (TELNET_BUF_SIZE + 16u) + (size_t)RX_BUF_SIZE + 32u)
3557#if PROTOCORE_ENABLE_TELNET
3558#define PROTOCORE_PLAINTEXT_WORK_TELNET PROTOCORE_TELNET_BORROW
3560#define PROTOCORE_PLAINTEXT_WORK_TELNET 0
3566#ifndef PROTOCORE_HTTP_CONN_BORROW
3567#define PROTOCORE_HTTP_CONN_BORROW ((size_t)RX_BUF_SIZE + 32u)
3570#define PROTOCORE_PLAINTEXT_WORK_HTTPCONN PROTOCORE_HTTP_CONN_BORROW
3575#ifndef PROTOCORE_HTTP_BORROW
3576#define PROTOCORE_HTTP_BORROW 32u
3579#define PROTOCORE_PLAINTEXT_WORK_HTTP PROTOCORE_HTTP_BORROW
3585#ifndef PROTOCORE_SSH_NETWORK_BORROW
3586#define PROTOCORE_SSH_NETWORK_BORROW ((size_t)MAX_SSH_CONNS * (4u + 4u * PROTOCORE_SSH_MAX_CHANNELS) + 16u)
3589#if PROTOCORE_ENABLE_SSH || PROTOCORE_ENABLE_SSH_CLIENT
3590#define PROTOCORE_PLAINTEXT_WORK_SSHNETWORK PROTOCORE_SSH_NETWORK_BORROW
3592#define PROTOCORE_PLAINTEXT_WORK_SSHNETWORK 0
3597#ifndef PROTOCORE_SSH_SERVER_BORROW
3598#define PROTOCORE_SSH_SERVER_BORROW ((size_t)MAX_SSH_CONNS + 8u)
3601#if PROTOCORE_ENABLE_SSH
3602#define PROTOCORE_PLAINTEXT_WORK_SSHSERVER PROTOCORE_SSH_SERVER_BORROW
3604#define PROTOCORE_PLAINTEXT_WORK_SSHSERVER 0
3609#ifndef PROTOCORE_RCWL0516_BORROW
3610#define PROTOCORE_RCWL0516_BORROW 32u
3613#if PROTOCORE_ENABLE_RCWL0516
3614#define PROTOCORE_PLAINTEXT_WORK_RCWL0516 PROTOCORE_RCWL0516_BORROW
3616#define PROTOCORE_PLAINTEXT_WORK_RCWL0516 0
3621#ifndef PROTOCORE_SEN0192_BORROW
3622#define PROTOCORE_SEN0192_BORROW 32u
3625#if PROTOCORE_ENABLE_SEN0192
3626#define PROTOCORE_PLAINTEXT_WORK_SEN0192 PROTOCORE_SEN0192_BORROW
3628#define PROTOCORE_PLAINTEXT_WORK_SEN0192 0
3633#ifndef PROTOCORE_FTP_SESSION_BORROW
3634#define PROTOCORE_FTP_SESSION_BORROW 1536u
3637#if PROTOCORE_ENABLE_FTP_SESSION
3638#define PROTOCORE_PLAINTEXT_WORK_FTPSESSION PROTOCORE_FTP_SESSION_BORROW
3640#define PROTOCORE_PLAINTEXT_WORK_FTPSESSION 0
3645#ifndef PROTOCORE_STATSD_BORROW
3646#define PROTOCORE_STATSD_BORROW 512u
3649#if PROTOCORE_ENABLE_STATSD
3650#define PROTOCORE_PLAINTEXT_WORK_STATSD PROTOCORE_STATSD_BORROW
3652#define PROTOCORE_PLAINTEXT_WORK_STATSD 0
3657#ifndef PROTOCORE_GRAPHQL_BORROW
3658#define PROTOCORE_GRAPHQL_BORROW 5120u
3661#if PROTOCORE_ENABLE_GRAPHQL
3662#define PROTOCORE_PLAINTEXT_WORK_GRAPHQL PROTOCORE_GRAPHQL_BORROW
3664#define PROTOCORE_PLAINTEXT_WORK_GRAPHQL 0
3669#ifndef PROTOCORE_LWM2M_TLV_BORROW
3670#define PROTOCORE_LWM2M_TLV_BORROW 128u
3673#if PROTOCORE_ENABLE_LWM2M
3674#define PROTOCORE_PLAINTEXT_WORK_LWM2MTLV PROTOCORE_LWM2M_TLV_BORROW
3676#define PROTOCORE_PLAINTEXT_WORK_LWM2MTLV 0
3681#ifndef PROTOCORE_COAP_BORROW
3682#define PROTOCORE_COAP_BORROW 3584u
3685#if PROTOCORE_ENABLE_COAP
3686#define PROTOCORE_PLAINTEXT_WORK_COAP PROTOCORE_COAP_BORROW
3688#define PROTOCORE_PLAINTEXT_WORK_COAP 0
3695#ifndef PROTOCORE_COAPS_SERVER_BORROW
3696#define PROTOCORE_COAPS_SERVER_BORROW 34816u
3699#if PROTOCORE_ENABLE_DTLS && PROTOCORE_ENABLE_COAP
3700#define PROTOCORE_SECURE_WORK_COAPSSERVER PROTOCORE_COAPS_SERVER_BORROW
3702#define PROTOCORE_SECURE_WORK_COAPSSERVER 0
3708#ifndef PROTOCORE_MQTT_BORROW
3709#define PROTOCORE_MQTT_BORROW 512u
3712#if PROTOCORE_ENABLE_MQTT && PROTOCORE_HAS_NET_STACK
3713#define PROTOCORE_SECURE_WORK_MQTT PROTOCORE_MQTT_BORROW
3715#define PROTOCORE_SECURE_WORK_MQTT 0
3720#ifndef PROTOCORE_PROTOBUF_BORROW
3721#define PROTOCORE_PROTOBUF_BORROW 512u
3724#if PROTOCORE_ENABLE_PROTOBUF
3725#define PROTOCORE_PLAINTEXT_WORK_PROTOBUF PROTOCORE_PROTOBUF_BORROW
3727#define PROTOCORE_PLAINTEXT_WORK_PROTOBUF 0
3732#ifndef PROTOCORE_SPARKPLUG_BORROW
3733#define PROTOCORE_SPARKPLUG_BORROW 512u
3736#if PROTOCORE_ENABLE_SPARKPLUG
3737#define PROTOCORE_PLAINTEXT_WORK_SPARKPLUG PROTOCORE_SPARKPLUG_BORROW
3739#define PROTOCORE_PLAINTEXT_WORK_SPARKPLUG 0
3744#ifndef PROTOCORE_UDP_TELEMETRY_BORROW
3745#define PROTOCORE_UDP_TELEMETRY_BORROW 128u
3748#if PROTOCORE_ENABLE_UDP_TELEMETRY
3749#define PROTOCORE_PLAINTEXT_WORK_UDPTELEMETRY PROTOCORE_UDP_TELEMETRY_BORROW
3751#define PROTOCORE_PLAINTEXT_WORK_UDPTELEMETRY 0
3754#define PROTOCORE_PLAINTEXT_WORK_LOG PROTOCORE_LOG_BORROW
3756#if PROTOCORE_ENABLE_DIFFSERV
3757#define PROTOCORE_PLAINTEXT_WORK_DIFFSERV PROTOCORE_DIFFSERV_BORROW
3759#define PROTOCORE_PLAINTEXT_WORK_DIFFSERV 0
3762#define PROTOCORE_PLAINTEXT_WORK_UDPCLIENT PROTOCORE_UDP_CLIENT_BORROW
3764#define PROTOCORE_PLAINTEXT_WORK_UDPLISTENER PROTOCORE_UDP_LISTENER_BORROW
3766#define PROTOCORE_PLAINTEXT_WORK_TCPLOWER PROTOCORE_TCP_LOWER_BORROW
3768#define PROTOCORE_PLAINTEXT_WORK_CONNPOOL PROTOCORE_CONN_POOL_BORROW
3770#define PROTOCORE_PLAINTEXT_WORK_TCPLISTENER PROTOCORE_TCP_LISTENER_BORROW
3772#define PROTOCORE_PLAINTEXT_WORK_TCPCLIENT PROTOCORE_TCP_CLIENT_BORROW
3774#if PROTOCORE_ENABLE_HAPPY_EYEBALLS
3775#define PROTOCORE_PLAINTEXT_WORK_HAPPYEYEBALLS PROTOCORE_HAPPY_EYEBALLS_BORROW
3777#define PROTOCORE_PLAINTEXT_WORK_HAPPYEYEBALLS 0
3780#define PROTOCORE_PLAINTEXT_WORK_PHYSICAL PROTOCORE_PHYSICAL_BORROW
3782#ifndef PROTOCORE_PLAINTEXT_ARENA_SIZE
3783#define PROTOCORE_PLAINTEXT_ARENA_SIZE \
3784 (PROTOCORE_PLAINTEXT_SCRATCH + PROTOCORE_PLAINTEXT_WORK_H3CONN + PROTOCORE_PLAINTEXT_WORK_EDGEPROXY + \
3785 PROTOCORE_PLAINTEXT_WORK_EUROMAP77 + PROTOCORE_PLAINTEXT_WORK_UMATI + PROTOCORE_PLAINTEXT_WORK_ROBOTICS + \
3786 PROTOCORE_PLAINTEXT_WORK_J1939 + PROTOCORE_PLAINTEXT_WORK_SIMATIC + PROTOCORE_PLAINTEXT_WORK_MODBUS + \
3787 PROTOCORE_PLAINTEXT_WORK_FTPSESSION + PROTOCORE_PLAINTEXT_WORK_ESPNOW + PROTOCORE_PLAINTEXT_WORK_PROMISC + \
3788 PROTOCORE_PLAINTEXT_WORK_WIFISNIFF + PROTOCORE_PLAINTEXT_WORK_RADIOPOWER + PROTOCORE_PLAINTEXT_WORK_DNSSERVER + \
3789 PROTOCORE_PLAINTEXT_WORK_FORWARD + PROTOCORE_PLAINTEXT_WORK_DIFFSERV + PROTOCORE_PLAINTEXT_WORK_UDPCLIENT + \
3790 PROTOCORE_PLAINTEXT_WORK_UDPLISTENER + PROTOCORE_PLAINTEXT_WORK_TCPLOWER + PROTOCORE_PLAINTEXT_WORK_CONNPOOL + \
3791 PROTOCORE_PLAINTEXT_WORK_TCPLISTENER + PROTOCORE_PLAINTEXT_WORK_TCPCLIENT + \
3792 PROTOCORE_PLAINTEXT_WORK_HAPPYEYEBALLS + PROTOCORE_PLAINTEXT_WORK_PHYSICAL + PROTOCORE_PLAINTEXT_WORK_LOG + \
3793 PROTOCORE_PLAINTEXT_WORK_STATSD + PROTOCORE_PLAINTEXT_WORK_FILESYSTEM + PROTOCORE_PLAINTEXT_WORK_SOUTHBOUND + \
3794 PROTOCORE_PLAINTEXT_WORK_SSHSCP + PROTOCORE_PLAINTEXT_WORK_RCWL0516 + PROTOCORE_PLAINTEXT_WORK_SEN0192 + \
3795 PROTOCORE_PLAINTEXT_WORK_GRAPHQL + PROTOCORE_PLAINTEXT_WORK_LWM2MTLV + PROTOCORE_PLAINTEXT_WORK_COAP + \
3796 PROTOCORE_PLAINTEXT_WORK_PROTOBUF + PROTOCORE_PLAINTEXT_WORK_SPARKPLUG + PROTOCORE_PLAINTEXT_WORK_UDPTELEMETRY + \
3797 PROTOCORE_PLAINTEXT_WORK_FLOWEXPORT + PROTOCORE_PLAINTEXT_WORK_SYSLOG + PROTOCORE_PLAINTEXT_WORK_POWERMGMT + \
3798 PROTOCORE_PLAINTEXT_WORK_GUARDRAILS + PROTOCORE_PLAINTEXT_WORK_FAILSAFE + PROTOCORE_PLAINTEXT_WORK_WORKER + \
3799 PROTOCORE_PLAINTEXT_WORK_PREEMPTQUEUE + PROTOCORE_PLAINTEXT_WORK_LOGBUF + PROTOCORE_PLAINTEXT_WORK_SESSION + \
3800 PROTOCORE_PLAINTEXT_WORK_SIGNALING + PROTOCORE_PLAINTEXT_WORK_TRACECAPTURE + PROTOCORE_PLAINTEXT_WORK_SSHSERVER + \
3801 PROTOCORE_PLAINTEXT_WORK_HTTP + PROTOCORE_PLAINTEXT_WORK_SSHNETWORK + PROTOCORE_PLAINTEXT_WORK_HTTPCONN + \
3802 PROTOCORE_PLAINTEXT_WORK_TELNET + PROTOCORE_PLAINTEXT_WORK_MDNSSERVICE + PROTOCORE_PLAINTEXT_WORK_NTPSERVER + \
3803 PROTOCORE_PLAINTEXT_WORK_NTPSERVICE + PROTOCORE_PLAINTEXT_WORK_UPLOADSERVICE + \
3804 PROTOCORE_PLAINTEXT_WORK_MDNSADAPTIVE + PROTOCORE_PLAINTEXT_WORK_HTTPPARSER + PROTOCORE_PLAINTEXT_WORK_SSHSFTP + \
3805 PROTOCORE_PLAINTEXT_WORK_SSHCOMP + PROTOCORE_PLAINTEXT_WORK_MTCONNECT + PROTOCORE_PLAINTEXT_WORK_FILESERVING + \
3806 PROTOCORE_PLAINTEXT_WORK_HTTPCLOCK + 256)
3825#ifndef PROTOCORE_DEBUG_CHECKS
3826#define PROTOCORE_DEBUG_CHECKS 0
3841#ifndef PROTOCORE_RAND_RESEED_BYTES
3842#define PROTOCORE_RAND_RESEED_BYTES (1u << 20)
3858#ifndef PROTOCORE_IKE_BORROW
3859#define PROTOCORE_IKE_BORROW PROTOCORE_CRYPTO_BORROW_MAX
3864#ifndef PROTOCORE_CRYPTO_BORROW_MAX
3865#define PROTOCORE_CRYPTO_BORROW_MAX PROTOCORE_HMAC_SHA512_BORROW
3870#ifndef PROTOCORE_QUIC_KEYS_BORROW
3871#define PROTOCORE_QUIC_KEYS_BORROW (PROTOCORE_HKDF_BORROW + 32)
3876#ifndef PROTOCORE_ECDSA_BORROW
3877#define PROTOCORE_ECDSA_BORROW (PROTOCORE_SHA256_BORROW + PROTOCORE_HMAC_SHA256_BORROW)
3882#ifndef PROTOCORE_HKDF_SHA384_BORROW
3883#define PROTOCORE_HKDF_SHA384_BORROW (PROTOCORE_HMAC_SHA384_BORROW + 48 + 514)
3887#ifndef PROTOCORE_HKDF_BORROW
3888#define PROTOCORE_HKDF_BORROW (PROTOCORE_HMAC_SHA256_BORROW + 32 + 514)
3893#ifndef PROTOCORE_SSH_KDF_BORROW
3894#define PROTOCORE_SSH_KDF_BORROW (PROTOCORE_SSH_KEXHASH_BORROW + 128)
3901#ifndef PROTOCORE_WORK_ROUTE_TABLE
3902#define PROTOCORE_WORK_ROUTE_TABLE (MAX_ROUTES * 104 + 16)
3906#ifndef PROTOCORE_HTTP_ROUTE_BORROW
3907#define PROTOCORE_HTTP_ROUTE_BORROW PROTOCORE_WORK_ROUTE_TABLE
3912#if PROTOCORE_ENABLE_HTTP_ROUTE
3913#define PROTOCORE_SECURE_WORK_ROUTETABLE PROTOCORE_HTTP_ROUTE_BORROW
3915#define PROTOCORE_SECURE_WORK_ROUTETABLE 0
3924#ifndef PROTOCORE_HTTP_AUTH_BORROW
3925#define PROTOCORE_HTTP_AUTH_BORROW ((size_t)PROTOCORE_WORK_AUTH_TABLE + PROTOCORE_SHA256_BORROW)
3928#ifndef PROTOCORE_WORK_AUTH_TABLE
3929#define PROTOCORE_WORK_AUTH_TABLE (MAX_ROUTES * (3 * MAX_AUTH_LEN + 8) + 32)
3933#ifndef PROTOCORE_WORK_SSH_HOST_KEY
3934#define PROTOCORE_WORK_SSH_HOST_KEY (256 + 1700 + 16)
3937#ifndef PROTOCORE_H2_SERVER_BORROW
3938#define PROTOCORE_H2_SERVER_BORROW ((size_t)MAX_CONNS * 16 + 64)
4065#ifndef PROTOCORE_CLIENT_CONNS
4066#if PROTOCORE_ENABLE_SSH_CLIENT
4069#define PROTOCORE_CLIENT_CONNS (1 + PROTOCORE_SSH_CLIENT_MAX_CHANNELS)
4071#define PROTOCORE_CLIENT_CONNS 2
4085#ifndef PROTOCORE_CLIENT_RX_BUF
4086#define PROTOCORE_CLIENT_RX_BUF 8192
4092#ifndef SSH_CHAN_WINDOW
4093#define SSH_CHAN_WINDOW 32768u
4104#ifndef SSH_CHAN_MAX_PACKET
4105#define SSH_CHAN_MAX_PACKET (SSH_PKT_BUF_SIZE - 64u)
4119#ifndef SSH_REKEY_PACKET_THRESHOLD
4120#define SSH_REKEY_PACKET_THRESHOLD (0x20000000u / SSH_PKT_BUF_SIZE)
4129#ifndef SSH_REKEY_TIME_MS
4130#define SSH_REKEY_TIME_MS 3600000u
4139#ifndef SSH_AUTH_TIMEOUT_MS
4140#define SSH_AUTH_TIMEOUT_MS 600000u
4143#ifndef SSH_AUTH_USER_MAX
4144#define SSH_AUTH_USER_MAX 32
4152#ifndef PROTOCORE_SSH_PTY_TERM_MAX
4153#define PROTOCORE_SSH_PTY_TERM_MAX 24
4156#ifndef SSH_AUTH_PASS_MAX
4157#define SSH_AUTH_PASS_MAX 64
4160#ifndef SSH_AUTH_ALGO_MAX
4161#define SSH_AUTH_ALGO_MAX 20
4171#ifndef SSH_KEXINIT_MAX
4172#define SSH_KEXINIT_MAX 2048
4175#if PROTOCORE_ENABLE_AUDIT_LOG
4177#ifndef PROTOCORE_AUDIT_LOG_ENTRIES
4178#define PROTOCORE_AUDIT_LOG_ENTRIES 32
4180#ifndef PROTOCORE_AUDIT_MSG_LEN
4181#define PROTOCORE_AUDIT_MSG_LEN 48
4189#define PROTOCORE_AUDIT_HASH_LEN 32
4192#if PROTOCORE_ENABLE_DEVICENET
4194#ifndef PROTOCORE_DEVICENET_MSG_MAX
4195#define PROTOCORE_DEVICENET_MSG_MAX 256
4199#if PROTOCORE_ENABLE_ESPNOW
4201#ifndef PROTOCORE_ESPNOW_MAX_PEERS
4202#define PROTOCORE_ESPNOW_MAX_PEERS 8
4206#if PROTOCORE_ENABLE_GRAPHQL
4208#ifndef PROTOCORE_GQL_MAX_NODES
4209#define PROTOCORE_GQL_MAX_NODES 48
4211#ifndef PROTOCORE_GQL_MAX_ARGS
4212#define PROTOCORE_GQL_MAX_ARGS 24
4214#ifndef PROTOCORE_GQL_MAX_DEPTH
4215#define PROTOCORE_GQL_MAX_DEPTH 6
4217#ifndef PROTOCORE_GQL_NAME_MAX
4218#define PROTOCORE_GQL_NAME_MAX 32
4220#ifndef PROTOCORE_GQL_PATH_MAX
4221#define PROTOCORE_GQL_PATH_MAX 96
4223#ifndef PROTOCORE_GQL_STRBUF
4224#define PROTOCORE_GQL_STRBUF 256
4228#if PROTOCORE_ENABLE_J1939
4230#ifndef PROTOCORE_J1939_TP_MAX
4231#define PROTOCORE_J1939_TP_MAX 256
4235#if PROTOCORE_ENABLE_NMEA0183
4237#ifndef PROTOCORE_NMEA0183_MAX_FIELDS
4238#define PROTOCORE_NMEA0183_MAX_FIELDS 26
4242#if PROTOCORE_ENABLE_UBX
4244#ifndef PROTOCORE_UBX_MAX_PAYLOAD
4245#define PROTOCORE_UBX_MAX_PAYLOAD \
4250#if PROTOCORE_ENABLE_NMEA2000
4252#ifndef PROTOCORE_N2K_FP_MAX
4253#define PROTOCORE_N2K_FP_MAX 223
4257#if PROTOCORE_ENABLE_OAUTH2
4259#ifndef PROTOCORE_OAUTH2_TOKEN_LEN
4260#define PROTOCORE_OAUTH2_TOKEN_LEN 768
4262#ifndef PROTOCORE_OAUTH2_RT_LEN
4263#define PROTOCORE_OAUTH2_RT_LEN 256
4265#ifndef PROTOCORE_OAUTH2_BODY_BUF
4266#define PROTOCORE_OAUTH2_BODY_BUF 1024
4268#ifndef PROTOCORE_OAUTH2_RESP_BUF
4269#define PROTOCORE_OAUTH2_RESP_BUF 2048
4273#if PROTOCORE_ENABLE_OIDC
4277#ifndef PROTOCORE_OIDC_SUB_LEN
4278#define PROTOCORE_OIDC_SUB_LEN 64
4280#ifndef PROTOCORE_OIDC_EMAIL_LEN
4281#define PROTOCORE_OIDC_EMAIL_LEN 96
4283#ifndef PROTOCORE_OIDC_KID_LEN
4284#define PROTOCORE_OIDC_KID_LEN 80
4286#ifndef PROTOCORE_OIDC_JWKS_MAX
4287#define PROTOCORE_OIDC_JWKS_MAX 16384
4291#if PROTOCORE_ENABLE_PROVISIONING
4295#ifndef PROTOCORE_PROV_NVS_NAMESPACE
4296#define PROTOCORE_PROV_NVS_NAMESPACE "wifi_prov"
4298#ifndef PROTOCORE_PROV_KEY_SSID
4299#define PROTOCORE_PROV_KEY_SSID "ssid"
4301#ifndef PROTOCORE_PROV_KEY_PSK
4302#define PROTOCORE_PROV_KEY_PSK "psk"
4306#if PROTOCORE_ENABLE_MNT
4308#ifndef PROTOCORE_MNT_RAM_FILES
4309#define PROTOCORE_MNT_RAM_FILES 4
4311#ifndef PROTOCORE_MNT_RAM_FILE_SIZE
4312#define PROTOCORE_MNT_RAM_FILE_SIZE 1024
4314#ifndef PROTOCORE_MNT_MAX_OPEN
4315#define PROTOCORE_MNT_MAX_OPEN 4
4317#ifndef PROTOCORE_MNT_NAME_MAX
4318#define PROTOCORE_MNT_NAME_MAX 48
4324#ifndef PROTOCORE_SCPI_ERR_QUEUE
4325#define PROTOCORE_SCPI_ERR_QUEUE 8
4328#ifndef PROTOCORE_WAL_PAGE_SIZE
4329#define PROTOCORE_WAL_PAGE_SIZE 32768
4332#ifndef PROTOCORE_WAL_MAX_RECORD
4333#define PROTOCORE_WAL_MAX_RECORD 4096
4336#ifndef PROTOCORE_DBM_SLOTS
4337#define PROTOCORE_DBM_SLOTS 256
4340#ifndef PROTOCORE_DBM_KEY_MAX
4341#define PROTOCORE_DBM_KEY_MAX 32
4344#ifndef PROTOCORE_DBM_VAL_MAX
4345#define PROTOCORE_DBM_VAL_MAX 256
4348#ifndef PROTOCORE_DOCSTORE_FIELD_MAX
4349#define PROTOCORE_DOCSTORE_FIELD_MAX 128
4354#ifndef PROTOCORE_MESH_QUERY_MS
4355#define PROTOCORE_MESH_QUERY_MS 300
4358#ifndef PROTOCORE_MESH_HOST_MAX
4359#define PROTOCORE_MESH_HOST_MAX 64
4362#ifndef PROTOCORE_MESH_HDRS_MAX
4363#define PROTOCORE_MESH_HDRS_MAX \
enum PROTO_ENUM_PACKED protocore_if_kind
What an interface is, and the filter that selects one.
PROTO_ENUM_PACKED
Application protocol spoken on a listener port or connection slot.
@ PROTO_SSH_RFWD
SSH remote-forward listener (ssh -R): accepts bridge to a forwarded-tcpip channel.
@ PROTO_NONE
Unassigned slot.
@ PROTO_NTRIP_CASTER
NTRIP caster (PROTOCORE_ENABLE_NTRIP_CASTER): serves RTCM3 corrections to rovers.
@ PROTOCORE_IF_BUS
a bus bridged onto the network (uart, spi, can)
@ PROTO_TELNET
Telnet (RFC 854).
@ PROTO_MESH
Edge-cache sibling link (PROTOCORE_ENABLE_EDGE_MESH): answers a peer's content-addressed query.
@ PROTO_UDP
A bound datagram port. The slot carries the peer per entry, not per slot.
@ PROTOCORE_IF_RADIO
a non-wifi radio
@ PROTOCORE_IF_WIFI_STA
station interface (joined to an AP / your LAN)
@ PROTO_BRIDGE
address:port -> hardware bus (PROTOCORE_ENABLE_IFACE_BRIDGE): UART/SPI/I2C device server.
@ PROTO_HTTP
HTTP/1.1 with optional WS and SSE upgrades.
@ PROTO_RELAY
TCP relay / DNAT (PROTOCORE_ENABLE_RELAY): bridge to an origin protocore_client connection.
@ PROTO_SSH
SSH (RFC 4253/4252/4254).
@ PROTOCORE_IF_WIFI_AP
softAP interface (clients joined to the device)
@ PROTOCORE_IF_ANY
unspecified kind, and the filter that matches any interface
@ PROTO_OPCUA
OPC UA Binary (UA-TCP) server.
@ PROTO_MODBUS
Modbus TCP slave (Modbus Application Protocol).
@ PROTOCORE_IF_ETH
wired Ethernet PHY
enum PROTO_ENUM_PACKED ProtoConn
Application protocol spoken on a listener port or connection slot.