1<?xml version="1.0" encoding="utf-8"?>
2
3
4<!--****************************************************************************
5* \file connectivity_wifi.cypersonality
6* \version 1.0.1
7*
8* \brief
9* Personality description file for the WiFi part of Low Power Assistant.
10*
11********************************************************************************
12* \copyright
13* Copyright 2019-2022 Cypress Semiconductor Corporation
14* SPDX-License-Identifier: Apache-2.0
15*
16* Licensed under the Apache License, Version 2.0 (the "License");
17* you may not use this file except in compliance with the License.
18* You may obtain a copy of the License at
19*
20*     http://www.apache.org/licenses/LICENSE-2.0
21*
22* Unless required by applicable law or agreed to in writing, software
23* distributed under the License is distributed on an "AS IS" BASIS,
24* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
25* See the License for the specific language governing permissions and
26* limitations under the License.
27*****************************************************************************-->
28
29<Personality id="connectivity_wifi" name="WiFi" version="1.0" xmlns="http://cypress.com/xsd/cyhwpersonality_v8">
30  <Dependencies>
31    <IpBlock name="43xxx_wifi,55530_wifi" />
32    <Resource name="wifi\.power" />
33    <OperatingMode value="COMPANION_CONNECTIVITY"/>
34  </Dependencies>
35  <ExposedMembers>
36  </ExposedMembers>
37
38  <Parameters>
39    <ParamDoc id="doc" name="Configuration Help" group="Overview" default="https://Infineon.github.io/lpa/api_reference_manual/html/index.html" linkText="Open Low Power Assistant Documentation" visible="true" desc="Open the Low Power Assistant Documentation." />
40    <ParamBool id="lpa_enable_43022" name="lpa_enable_43022" group="Test" default="`${lookupExpression(&quot;LPA_OFFLOADS_ENABLED_BY_DEFAULT&quot;,0) == 1 ? true : false}`" visible="false" editable="false" desc="" />
41
42    <!-- Host wake settings -->
43    <ParamBool id="hostWake" name="Enable" group="Host Wake Configuration" default="true" visible="true" editable="true" desc="Enable host wake configuration." />
44    <ParamBlock id="hostIRQ" blockType="ioss\.port\.pin" name="Host Device Interrupt Pin" group="Host Wake Configuration" canBeEmpty="true" visible="`${hostWake}`" desc="Select the host pin which is connected to WiFi device's WL_HOST_WAKE signal. The pin must be enabled on the Pins tab to be added as an option to the pull-down menu. If left empty, the HOST_WAKE pin will be unconfigured." >
45      <Constraint type="ACCEPT" targetLocation="ioss\[\d+\]\.port\[\d+\]\.pin.*" valid="true" >
46        <Parameter id="isrTrigger" severity="WARNING" reason="The pin must be configured to generate interrupts on rising or falling edge.">
47          <Choice>
48            <Option value="CY_GPIO_INTR_RISING"/>
49            <Option value="CY_GPIO_INTR_FALLING"/>
50          </Choice>
51        </Parameter>
52      </Constraint>
53      <Constraint type="ACCEPT" targetLocation=".*" valid="true" />
54    </ParamBlock>
55
56    <ParamChoice id="deviceIRQPin" name="WiFi Device Interrupt Pin" group="Host Wake Configuration" default="CY_WIFI_DEVICE_IRQ_GPIO_0" visible="`${hostWake}`" editable="false" desc="WiFi device GPIO_0 is reserved as host wake-up interrupt request pin (WL_HOST_WAKE).">
57      <Entry name="GPIO_0 (WL_HOST_WAKE)" value="CY_WIFI_DEVICE_IRQ_GPIO_0" visible="true" />
58    </ParamChoice>
59    <ParamBool id="hostIRQConnected" name="hostIRQConnected" group="Internal" default="`${hostIRQ ne &quot;&quot;}`" visible="false" editable="false" desc="True, if HOST_WAKE is connected" />
60
61    <!-- ULP settings -->
62    <ParamBool id="ULPmodesBool" name="Enable" group="ULP Support configuration" default="`${lpa_enable_43022}`" visible="`${lpa_enable_43022}`" editable="false" desc="Enable ULP mode settings for 43022." />
63    <ParamChoice id="ULPmodesChoice" name="ULP mode" group="ULP Support configuration" default="ULP_DS2_SUPPORT" visible="false" editable="false" desc="Enable ULP flag for DS2 mode.">
64      <Entry name="Enabled DS2 mode" value="ULP_DS2_SUPPORT" visible="true" />
65    </ParamChoice>
66    <ParamRange id="ULPwaittime" name="Wait time to enter into ULP mode (ms)" group="ULP Support configuration" default="5000" min="5000" max="50000" resolution="1" visible="`${ULPmodesBool}`" editable="`${ULPmodesBool}`" desc="Indicates ulp_wait in ms to be set. If no network activity for this time, device will enter into DS2." />
67
68    <!-- ARP Offload settings -->
69    <ParamBool id="arpOffload" name="Enable" group="ARP Offload" default="false" visible="`${!lpa_enable_43022}`" editable="true" desc="Enable ARP offload feature." />
70    <ParamChoice id="arpResponse" name="ARP Offload Feature(s)" group="ARP Offload" default="0u" visible="`${arpOffload}`" editable="`${arpOffload}`" desc="Select ARP offload feature.">
71      <Entry name="Disabled" value="0u" visible="true" />
72      <Entry name="Host Auto Reply" value="CY_ARP_OL_HOST_AUTO_REPLY_ENABLE" visible="true" />
73      <Entry name="Peer Auto Reply" value="CY_ARP_OL_PEER_AUTO_REPLY_ENABLE" visible="true" />
74      <Entry name="Host and Peer Auto Reply" value="CY_ARP_OL_HOST_AUTO_REPLY_ENABLE | CY_ARP_OL_PEER_AUTO_REPLY_ENABLE" visible="true" />
75    </ParamChoice>
76    <ParamChoice id="arpInSleep" name="ARP Offload When Host Sleeping" group="ARP Offload" default="CY_ARP_OL_PEER_AUTO_REPLY_ENABLE" visible="false" editable="`${arpOffload}`" desc="Respond to ARP requests when sleeping.">
77      <Entry name="Disabled" value="0u" visible="true" />
78      <Entry name="Peer Auto Reply" value="CY_ARP_OL_PEER_AUTO_REPLY_ENABLE" visible="true" />
79    </ParamChoice>
80    <ParamBool id="arpSnoopHostIp" name="Snoop Host IP From Traffic When ARP Offload Enabled " group="ARP Offload" default="false" visible="`${arpOffload}`" editable="`${arpOffload}`" desc="The host IP address is snooped from an ARP request. If disabled, the WiFi device will need to be informed of the host IP address when the network interface is configured (statically or dynamically via DHCP)." />
81    <ParamRange id="peerAge" name="ARP Offload Cache Entries Expire After (s)" group="ARP Offload" default="1200" min="1" max="4294967295" resolution="1" visible="`${arpOffload}`" editable="`${arpOffload}`" desc="When the ARP cache table is offloaded from the host to the device, table entries are subject to an aging value called peer age." />
82
83    <!-- MQTT Offload settings -->
84    <ParamBool id="mqttOffload" name="Enable" group="MQTT Offload Configuration" default="false" visible="`${lpa_enable_43022}`" editable="true" desc="Enable MQTT offload feature." />
85    <ParamString id="mqtt_wakepattern" name="MQTT wake pattern" group="MQTT Offload Configuration" default="0" visible="`${mqttOffload}`" editable="true" desc="Set the MQTT wake pattern to the WLAN." />
86
87    <!-- AWS MQTT Filters -->
88    <!-- TLS Configuration -->
89    <ParamBool id="configTLS" name="Enable MQTT TLS Filter" group="AWS MQTT Filters" default="false" visible="true" editable="true" desc="Enable AWS MQTT filter for TLS protocol." />
90    <ParamString id="configTLSID" name="Filter ID" group="MQTT TLS Filter Configuration" default="0" visible="`${configTLS}`" editable="false" desc="Filter ID." />
91    <ParamChoice id="filterTLSAction" name="Action" group="MQTT TLS Filter Configuration" default="CY_PF_ACTION_KEEP" visible="`${configTLS}`" editable="true" desc="Filter can either pass up packets that match the filter to the host device (Keep) or drop them so the host device never gets them (Discard)." >
92      <Entry name="Keep" value="CY_PF_ACTION_KEEP" visible="true" />
93      <Entry name="Discard" value="CY_PF_ACTION_DISCARD" visible="true" />
94    </ParamChoice>
95    <ParamChoice id="filterTLSAllow" name="When Active" group="MQTT TLS Filter Configuration" default="CY_PF_ACTIVE_SLEEP | CY_PF_ACTIVE_WAKE" visible="`${configTLS}`" editable="false" desc="Defines when the filter is active." >
96      <Entry name="Always" value="CY_PF_ACTIVE_SLEEP | CY_PF_ACTIVE_WAKE" visible="true" />
97    </ParamChoice>
98    <ParamChoice id="filterTLSProt" name="Protocol" group="MQTT TLS Filter Configuration" default="CY_PF_PROTOCOL_TCP" visible="`${configTLS}`" editable="true" desc="Choose communication protocol." >
99      <Entry name="TCP" value="CY_PF_PROTOCOL_TCP" visible="true" />
100      <Entry name="UDP" value="CY_PF_PROTOCOL_UDP" visible="true" />
101    </ParamChoice>
102    <ParamChoice id="filterTLSDir" name="Direction" group="MQTT TLS Filter Configuration" default="PF_PN_PORT_DEST" visible="`${configTLS}`" editable="true" desc="Choose source or destination port or (source and destination port)." >
103      <Entry name="Destination Port" value="PF_PN_PORT_DEST" visible="true" />
104      <Entry name="Source Port" value="PF_PN_PORT_SOURCE" visible="true" />
105      <Entry name="Source and Destination Port" value="PF_PN_PORT_SOURCE_DEST" visible="true" />
106     </ParamChoice>
107    <ParamRange id="filterTLSPort" name="Port Number" group="MQTT TLS Filter Configuration" default="8883" min="0" max="65535" resolution="1" visible="`${configTLS}`" editable="false" desc="Port number for TLS protocol filter." />
108
109    <!-- Non TLS Configuration -->
110    <ParamBool id="configNonTLS" name="Enable MQTT Filter" group="AWS MQTT Filters" default="false" visible="true" editable="true" desc="Enable AWS MQTT filter for non TLS protocols." />
111    <ParamString id="configNonTLSID" name="Filter ID" group="MQTT Filter Configuration" default="`${configTLS ? 1 : 0}`" visible="`${configNonTLS}`" editable="false" desc="Filter ID." />
112    <ParamChoice id="filterNonTLSAction" name="Action" group="MQTT Filter Configuration" default="CY_PF_ACTION_KEEP" visible="`${configNonTLS}`" editable="true" desc="Filter can either pass up packets that match the filter to the host device (Keep) or drop them so the host device never gets them (Discard)." >
113      <Entry name="Keep" value="CY_PF_ACTION_KEEP" visible="true" />
114      <Entry name="Discard" value="CY_PF_ACTION_DISCARD" visible="true" />
115    </ParamChoice>
116    <ParamChoice id="filterNonTLSAllow" name="When Active" group="MQTT Filter Configuration" default="CY_PF_ACTIVE_SLEEP | CY_PF_ACTIVE_WAKE" visible="`${configNonTLS}`" editable="false" desc="Defines when the filter is active." >
117      <Entry name="Always" value="CY_PF_ACTIVE_SLEEP | CY_PF_ACTIVE_WAKE" visible="true" />
118    </ParamChoice>
119    <ParamChoice id="filterNonTLSProt" name="Protocol" group="MQTT Filter Configuration" default="CY_PF_PROTOCOL_TCP" visible="`${configNonTLS}`" editable="true" desc="Choose communication protocol." >
120      <Entry name="TCP" value="CY_PF_PROTOCOL_TCP" visible="true" />
121      <Entry name="UDP" value="CY_PF_PROTOCOL_UDP" visible="true" />
122    </ParamChoice>
123    <ParamChoice id="filterNonTLSDir" name="Direction" group="MQTT Filter Configuration" default="PF_PN_PORT_DEST" visible="`${configNonTLS}`" editable="true" desc="Choose source or destination port or (source and destination port)." >
124      <Entry name="Destination Port" value="PF_PN_PORT_DEST" visible="true" />
125      <Entry name="Source Port" value="PF_PN_PORT_SOURCE" visible="true" />
126      <Entry name="Source and Destination Port" value="PF_PN_PORT_SOURCE_DEST" visible="true" />
127    </ParamChoice>
128    <ParamRange id="filterNonTLSPort" name="Port Number" group="MQTT Filter Configuration" default="1883" min="0" max="65535" resolution="1" visible="`${configNonTLS}`" editable="false" desc="Port number for non TLS protocols filter." />
129
130    <ParamBool id="minKeepFilt" name="Add Minimal Set of Keep Filters" group="Packet Filters" default="false" visible="true" editable="true" desc="Create a minimal set of keep filters required for the host to join the network. The set allows ARP, 802_1X Security, DHCP, and DNS. Enabling this option will enable and configure packet filter configurations 0-3." />
131
132    <!-- Packet Filter Configurations -->
133    <!-- Minimum Set of Keep Filters to be able to connect to the network:
134      - Keep, EtherType 0x806 # Allow ARP
135    Enable and configure the filters when requested -->
136    <Repeat count="8">
137      <ParamBool id="config$idx_editable" name="Filter Configuration $idx is Editable" group="Internal" default="`${($idx &gt;= 1) || !minKeepFilt}`" visible="false" editable="false" desc="" />
138      <ParamBool id="config$idx" name="Enable Filter Configuration $idx" group="Packet Filters" default="`${($idx &lt; 1) &amp;&amp; minKeepFilt}`" visible="true" editable="`${config$idx_editable}`" desc="Enable packet filter configuration $idx." />
139      <ParamBool id="config$idx_id" name="Filter ID" group="Packet Filter Configuration $idx"
140        default="`${$idx == 0 ? ((configTLS ? 1 : 0) + (configNonTLS ? 1 : 0)) :
141                               (getParamValue(&quot;config&quot; . ($idx-1) . &quot;_id&quot;) + (getParamValue(&quot;config&quot; . ($idx-1)) ? 1 : 0))}`" visible="`${(config$idx &gt;= 3)}`" editable="false" desc="Filter ID." />
142
143      <ParamChoice id="filter$idx_type" name="Filter Type" group="Packet Filter Configuration $idx"
144        default="`${$idx == 0 ? (minKeepFilt ? CY_PF_PORT_ETHER_TYPE_FILTER : CY_PF_PORT_FILTER) :
145                              CY_PF_PORT_FILTER}`" visible="`${config$idx}`" editable="`${config$idx_editable}`" desc="Choose filter type." >
146        <Entry name="Port Filter" value="CY_PF_PORT_FILTER" visible="true" />
147        <Entry name="Port Filter Block" value="CY_PF_PORT_BLOCK_FILTER" visible="true" />
148        <Entry name="Ether Type" value="CY_PF_PORT_ETHER_TYPE_FILTER" visible="true" />
149        <Entry name="IP Type" value="CY_PF_PORT_IP_TYPE_FILTER" visible="true" />
150      </ParamChoice>
151      <ParamBool id="filter$idx_portnum" name="Filter$idx Portnum" group="Internal" default="`${filter$idx_type eq CY_PF_PORT_FILTER || filter$idx_type eq CY_PF_PORT_BLOCK_FILTER}`" visible="false" editable="false" desc="Filter Port Number." />
152      <ParamChoice id="filter$idx_action" name="Action" group="Packet Filter Configuration $idx" default="`${CY_PF_ACTION_KEEP}`" visible="`${config$idx}`" editable="`${config$idx_editable}`" desc="The filter can either pass up packets that match the filter to the host device (Keep) or drop them so that the host device never gets them (Discard)." >
153        <Entry name="Keep" value="CY_PF_ACTION_KEEP" visible="true" />
154        <Entry name="Discard" value="CY_PF_ACTION_DISCARD" visible="true" />
155      </ParamChoice>
156      <ParamChoice id="filter$idx_allow" name="When Active" group="Packet Filter Configuration $idx" default="CY_PF_ACTIVE_SLEEP | CY_PF_ACTIVE_WAKE" visible="`${config$idx}`" editable="false" desc="Defines when the filter is active." >
157        <Entry name="Always" value="CY_PF_ACTIVE_SLEEP | CY_PF_ACTIVE_WAKE" visible="true" />
158      </ParamChoice>
159      <ParamChoice id="filter$idx_prot" name="Protocol" group="Packet Filter Configuration $idx"
160        default="CY_PF_PROTOCOL_TCP" visible="`${config$idx &amp;&amp; filter$idx_portnum}`" editable="`${config$idx_editable}`" desc="Choose the communication protocol." >
161        <Entry name="TCP" value="CY_PF_PROTOCOL_TCP" visible="true" />
162        <Entry name="UDP" value="CY_PF_PROTOCOL_UDP" visible="true" />
163      </ParamChoice>
164      <ParamChoice id="filter$idx_dir" name="Direction" group="Packet Filter Configuration $idx"
165      default="PF_PN_PORT_DEST" visible="`${config$idx &amp;&amp; filter$idx_portnum}`" editable="`${config$idx_editable}`" desc="Choose the source or destination port." >
166        <Entry name="Destination Port" value="PF_PN_PORT_DEST" visible="true" />
167        <Entry name="Source Port" value="PF_PN_PORT_SOURCE" visible="true" />
168        <Entry name="Source and Destination Port" value="PF_PN_PORT_SOURCE_DEST" visible="true" />
169      </ParamChoice>
170      <ParamRange id="filter$idx_ether_type" name="EtherType" group="Packet Filter Configuration $idx" min="2048" max="65535" resolution="1"
171        default="`${toHex($idx == 0 ? (minKeepFilt ? 0x0806 : 0x800) : 0x800)}`" visible="`${config$idx &amp;&amp; (filter$idx_type eq CY_PF_PORT_ETHER_TYPE_FILTER)}`" editable="`${config$idx_editable}`" desc="Enter a 16-bit ether type value. Example: 0x800 for IP, 0x806 for ARP." />
172      <ParamRange id="filter$idx_ip_type" name="IP Protocol" group="Packet Filter Configuration $idx" default="0" min="0" max="255" resolution="1" visible="`${config$idx &amp;&amp; (filter$idx_type eq CY_PF_PORT_IP_TYPE_FILTER)}`" editable="`${config$idx_editable}`" desc="Enter the desired IP protocol number." />
173      <ParamRange id="filter$idx_port" name="Port Number" group="Packet Filter Configuration $idx" min="0" max="65535" resolution="1"
174        default="1024" visible="`${config$idx &amp;&amp; filter$idx_portnum}`" editable="`${config$idx_editable}`" desc="Either the single port to be filtered or the beginning of the block of contiguous numbers. When using a block, the starting port must be power of 2." />
175      <ParamRange id="filter$idx_end_port" name="Range" group="Packet Filter Configuration $idx" default="1023" min="0" max="65535" resolution="1" visible="`${config$idx &amp;&amp; (filter$idx_type eq CY_PF_PORT_BLOCK_FILTER)}`" editable="`${config$idx_editable}`" desc="Indicates the size of the block of port numbers, must be of the (2^y - 1) form and less than Port Number." />
176    </Repeat>
177
178    <!-- Wake On Wireless Packet Filter Configurations -->
179    <ParamBool id="wakeonlan" name="Enable" group="WakeOnWireless LAN (WOWL)" default="false" visible="`${lpa_enable_43022}`" editable="true" desc="Enable WOL magic and net pattern settings for 43022." />
180    <ParamBool id="magicpattern" name="Enable Magic Pattern" group="WakeOnWireless LAN (WOWL)" default="false" visible="`${wakeonlan}`" editable="true" desc="Enable WOL magic pattern settings for 43022." />
181    <ParamBool id="netpattern" name="Enable Net Pattern" group="WakeOnWireless LAN (WOWL)" default="false" visible="`${wakeonlan}`" editable="true" desc="Enable WOL net pattern settings for 43022." />
182    <ParamString id="pattern" name="pattern" group="WOWL Filter Configuration" default="0" visible="`${netpattern &amp;&amp; wakeonlan}`" editable="true" desc="wake pattern." />
183    <ParamString id="mask" name="mask" group="WOWL Filter Configuration" default="0" visible="`${netpattern &amp;&amp; wakeonlan}`" editable="true" desc="mask." />
184    <ParamRange id="offset" name="offset" group="WOWL Filter Configuration" default="0" min="0" max="1500" resolution="1" visible="`${netpattern &amp;&amp; wakeonlan}`" editable="true" desc="offset." />
185    <ParamBool id="wowl_enable" name="Enable WOWL" group="Internal" default="`${((netpattern || magicpattern) &amp;&amp; wakeonlan)}`" visible="false" editable="false" desc="Enable WOL net pattern settings for 43022." />
186
187   <!-- TCPKA Offload settings -->
188    <ParamBool id="tcpkaOffload" name="Enable" group="TCP Keep Alive Offload" default="false" visible="true" editable="true" desc="Enable TCP Keep Alive offload feature." />
189    <ParamRange id="tcpkaInterval" name="Interval (s)" group="TCP Keep Alive Offload" default="20" min="0" max="65535" resolution="1" visible="`${tcpkaOffload}`" editable="`${tcpkaOffload}`" desc="Interval in seconds between keep alive transmissions." />
190    <ParamRange id="tcpkaRetryInterval" name="Retry Interval (s)" group="TCP Keep Alive Offload" default="3" min="0" max="65535" resolution="1" visible="`${tcpkaOffload}`" editable="`${tcpkaOffload}`" desc="Interval in seconds to retry a transmission if no keep alive ACK is received." />
191    <ParamRange id="tcpkaRetryCount" name="Retry Count" group="TCP Keep Alive Offload" default="3" min="0" max="65535" resolution="1" visible="`${tcpkaOffload}`" editable="`${tcpkaOffload}`" desc="Number of retries to send a keep alive if no ACK is received." />
192    <!-- Up to 4 simultaneous connections -->
193    <Repeat count="4">
194      <ParamRange id="tcpkaSrcPort$idx" name="Source Port" group="Connection $idx Configuration" default="0" min="0" max="65535" resolution="1" visible="`${tcpkaOffload}`" editable="`${tcpkaOffload}`" desc="Source port." />
195      <ParamRange id="tcpkaDstPort$idx" name="Destination Port" group="Connection $idx Configuration" default="0" min="0" max="65535" resolution="1" visible="`${tcpkaOffload}`" editable="`${tcpkaOffload}`" desc="Destination port." />
196      <ParamString id="tcpkaDstIpAddr$idx" name="Destination IP Address" group="Connection $idx Configuration" default="0.0.0.0" visible="`${tcpkaOffload}`" editable="`${tcpkaOffload}`" desc="Destination IP address." />
197    </Repeat>
198
199    <!-- Null Keep-alive Offload settings -->
200    <ParamBool id="NullkoOffload" name="Configure Interval" group="NULL Keep Alive Offload" default="false" visible="`${lpa_enable_43022}`" editable="true" desc="NULL keep alive offlaod is enabled by default for 43022." />
201    <ParamRange id="nullkovalue" name="Interval (s)" group="NULL Keep Alive Offload" default="110" min="1" max="4200" resolution="1" visible="`${NullkoOffload}`" editable="`${NullkoOffload}`" desc="Configure NULL keep-alive interval in seconds and resolution of 1 second." />
202
203    <!-- NAT KA Offload settings -->
204    <ParamBool id="natkaOffload" name="Enable" group="NAT Keep Alive Offload" default="false" visible="`${lpa_enable_43022}`" editable="true" desc="Enable NAT Keep Alive offload feature." />
205    <ParamRange id="natkaInterval" name="Interval (s)" group="NAT Keep Alive Offload" default="60" min="1" max="600" resolution="1" visible="`${natkaOffload}`" editable="`${natkaOffload}`" desc="Interval in seconds between keep alive transmissions." />
206    <ParamRange id="natkaSrcPort" name="Source Port" group="NAT Keep Alive Offload" default="49152" min="0" max="65535" resolution="1" visible="`${natkaOffload}`" editable="`${natkaOffload}`" desc="Source port." />
207    <ParamRange id="natkaDstPort" name="Destination Port" group="NAT Keep Alive Offload" default="50007" min="0" max="65535" resolution="1" visible="`${natkaOffload}`" editable="`${natkaOffload}`" desc="Destination port." />
208    <ParamString id="natkaDst" name="Destination Address" group="NAT Keep Alive Offload" default="" visible="`${natkaOffload}`" editable="`${natkaOffload}`" desc="Destination address (IP Address/URL)." />
209    <ParamString id="natkaPayload" name="Keep Alive Payload" group="NAT Keep Alive Offload" default="" visible="`${natkaOffload}`" editable="`${natkaOffload}`" desc="NAT Keep Alive Payload." />
210
211
212    <ParamString id="numOfActiveFilters" name="NumOfContexts" group="Internal" default="`${(config0 ? 1 : 0) + (config1 ? 1 : 0) + (config2 ? 1 : 0) + (config3 ? 1 : 0) + (config4 ? 1 : 0) + (config5 ? 1 : 0) + (config6 ? 1 : 0) + (config7 ? 1 : 0) + (configTLS ? 1 : 0) + (configNonTLS ? 1 : 0)}`" visible="false" editable="false" desc="Number of active filter configurations." />
213    <ParamBool id="pktFilterEn" name="Packet filters Enabled" group="Internal" default="`${numOfActiveFilters != 0}`" visible="false" editable="false" desc="Are there any filters enabled flag." />
214    <ParamString id="longIndent" name="Long Indent" group="Internal" default="&#9;&#9;&#9;" visible="false" editable="false" desc="Long indent for structure generation." />
215    <ParamBool id="arpAgentEn" name="ARP Agent Enabled" group="Internal" default="`${(arpResponse ne &quot;0u&quot;) || arpSnoopHostIp}`" visible="false" editable="false" desc="" />
216    <ParamString id="arpOflIdx" name="Index of arp_ol in the ol_list" group="Internal" default="`${pktFilterEn ? 1 : 0}`" visible="false" editable="false" desc="" />
217    <ParamBool id="wowlpktOflIdx" name="Index of wowlpf_ol in the ol_list" group="Internal" default="`${arpOflIdx + (arpOffload ? 1 : 0)}`" visible="false" editable="false" desc="Are there any wowl filters enabled flag." />
218    <ParamString id="tcpkaOflIdx" name="Index of tcpka_ol in the ol_list" group="Internal" default="`${wowlpktOflIdx + (wowl_enable ? 1 : 0)}`" visible="false" editable="false" desc="" />
219    <ParamString id="tlsoeOflIdx" name="Index of tlsoe_ol in the ol_list" group="Internal" default="`${tcpkaOflIdx + (tcpkaOffload ? 1 : 0)}`" visible="false" editable="false" desc="" />
220    <ParamString id="natkaOflIdx" name="Index of natka_ol in the ol_list" group="Internal" default="`${tlsoeOflIdx + (mqttOffload ? 1 : 0)}`" visible="false" editable="false" desc="" />
221    <ParamString id="nullkoIdx" name="Index of nullko_ol in the ol_list" group="Internal" default="`${natkaOflIdx + (natkaOffload ? 1 : 0)}`" visible="false" editable="false" desc="" />
222    <!-- Variable for Any of the offload enabled -->
223    <ParamBool id="offload_enabled" name="Enable" group="Offload Enabled" default="`${pktFilterEn || arpOffload || tcpkaOffload || mqttOffload || natkaOffload || NullkoOffload || wowl_enable}`" visible="false" editable="false" desc="Indicates if any one of the offload is enabled." />
224  </Parameters>
225
226  <DRCs>
227    <DRC type="ERROR" text="Port Number must be of the (2^x) form for Filter Configuration $idx." condition="`${config$idx &amp;&amp; (filter$idx_type eq CY_PF_PORT_BLOCK_FILTER) &amp;&amp; ((filter$idx_port &amp; (filter$idx_port - 1)) != 0)}`" repeatCount="8" paramId="filter$idx_port">
228    </DRC>
229    <DRC type="ERROR" text="Range must be of the (2^y - 1) form for Filter Configuration $idx." condition="`${config$idx &amp;&amp; (filter$idx_type eq CY_PF_PORT_BLOCK_FILTER) &amp;&amp; (((filter$idx_end_port + 1) &amp; filter$idx_end_port) != 0)}`" repeatCount="8" paramId="filter$idx_end_port">
230    </DRC>
231    <DRC type="ERROR" text="Range must be less than Port Number for Filter Configuration $idx." condition="`${config$idx &amp;&amp; (filter$idx_type eq CY_PF_PORT_BLOCK_FILTER) &amp;&amp; (filter$idx_end_port &lt; filter$idx_port ? false : true)}`" repeatCount="8" paramId="filter$idx_end_port">
232    </DRC>
233    <DRC type="INFO" text="Host Device Interrupt Pin must be connected when the system is configured for the Deep Sleep power state." condition="`${hostWake &amp;&amp; !hostIRQConnected}`" paramId="hostIRQ">
234    </DRC>
235    <DRC type="INFO" text="LPA Library must be included in the application for enabling low power features." condition="`${offload_enabled}`" paramId="offload_enabled">
236    </DRC>
237  </DRCs>
238
239  <!-- Generated firmware -->
240  <ConfigFirmware>
241    <ConfigInclude value="whd_types.h" include="`${ULPmodesBool &amp;&amp; lpa_enable_43022}`" />
242    <ConfigInclude value="cy_lpa_compat.h" include="`${offload_enabled}`" guard="defined(COMPONENT_MW_LPA)" />
243    <ConfigInclude value="cy_lpa_wifi_ol.h" include="`${offload_enabled}`" guard="defined(COMPONENT_MW_LPA)" />
244    <ConfigInclude value="cy_lpa_wifi_ol_common.h" include="`${offload_enabled}`" guard="defined(COMPONENT_MW_LPA)" />
245    <ConfigInclude value="cy_lpa_wifi_arp_ol.h" include="`${arpOffload}`" guard="defined(COMPONENT_MW_LPA)" />
246    <ConfigInclude value="cy_lpa_wifi_pf_ol.h" include="`${pktFilterEn}`" guard="defined(COMPONENT_MW_LPA)" />
247    <ConfigInclude value="cy_lpa_wifi_wowlpf_ol.h" include="`${wowl_enable &amp;&amp; lpa_enable_43022}`" guard="defined(COMPONENT_MW_LPA)" />
248    <ConfigInclude value="cy_lpa_wifi_tko_ol.h" include="`${tcpkaOffload}`" guard="defined(COMPONENT_MW_LPA)" />
249    <ConfigInclude value="cy_lpa_wifi_tls_ol.h" include="`${mqttOffload &amp;&amp; lpa_enable_43022}`" guard="defined(COMPONENT_MW_LPA)"/>
250    <ConfigInclude value="cy_lpa_wifi_nko_ol.h" include="`${natkaOffload}`" guard="defined(COMPONENT_MW_LPA)"/>
251    <ConfigInclude value="cy_lpa_wifi_nullko_ol.h" include="`${NullkoOffload &amp;&amp; lpa_enable_43022}`" guard="defined(COMPONENT_MW_LPA)"/>
252    <ConfigInclude value="cycfg_pins.h" include="`${hostWake}`" />
253
254    <ConfigDefine name="CYCFG_WIFI_HOST_WAKE_ENABLED" public="true" value="(`${hostWake &amp;&amp; hostIRQConnected ? 1 : 0}`u)" include="`${!hostWake || (hostWake &amp;&amp; hostIRQConnected)}`" preventOverride="false" />
255    <ConfigDefine name="CYCFG_ULP_SUPPORT_ENABLED" public="true" value="(1u)" include="`${ULPmodesBool}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
256    <ConfigDefine name="CYCFG_ARP_OL_ENABLED" public="false" value="(1u)" include="`${arpOffload}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
257    <ConfigDefine name="CYCFG_PF_OL_ENABLED" public="false" value="(1u)" include="`${pktFilterEn}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
258    <ConfigDefine name="CYCFG_WOWL_MAGIC_PKT_ENABLED" public="true" value="(1u)" include="`${magicpattern &amp;&amp; wakeonlan}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
259    <ConfigDefine name="CYCFG_TKO_OL_ENABLED" public="false" value="(1u)" include="`${tcpkaOffload}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
260    <ConfigDefine name="CYCFG_WIFI_MQTT_OL_SUPPORT" public="true" value="(1u)" include="`${mqttOffload}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
261    <ConfigDefine name="CYCFG_WIFI_NULKO_OL_ENABLED" public="true" value="(1u)" include="`${NullkoOffload}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
262    <ConfigDefine name="CYCFG_NKO_OL_ENABLED" public="false" value="(1u)" include="`${natkaOffload}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
263
264    <!-- HOST_WAKE Pin Configuration -->
265    <ConfigDefine name="CYCFG_WIFI_HOST_WAKE_GPIO" public="true" value="`${hostWake ? hostIRQ . &quot;_HAL_PORT_PIN&quot; : &quot;CYHAL_NC_PIN_VALUE&quot;}`" include="`${!hostWake || (hostWake &amp;&amp; hostIRQConnected)}`" preventOverride="false" />
266    <ConfigDefine name="CYCFG_WIFI_HOST_WAKE_IRQ_EVENT" public="true" value="`${hostWake ? hostIRQ . &quot;_HAL_IRQ&quot; : &quot;0&quot;}`" include="`${!hostWake || (hostWake &amp;&amp; hostIRQConnected)}`" preventOverride="false" />
267
268    <!-- Ultra Low Power (ULP) Configuration -->
269    <ConfigDefine name="CY_ULP_MODE_SUPPORT" public="true" value="`${ULPmodesChoice}`" include="`${ULPmodesBool}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
270    <ConfigDefine name="CY_ULP_WAIT_TIME" public="true" value="(`${ULPwaittime}`UL)" include="`${ULPmodesBool}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
271
272    <!-- Address Resolution Protocol (ARP) Offload Configuration -->
273    <ConfigDefine name="CY_ARP_OL_FEATURE_AWAKE_ENABLE_MASK_0" public="true" value="(`${arpAgentEn ? (&quot;CY_ARP_OL_AGENT_ENABLE&quot;) : &quot;0u&quot;}``${arpResponse ne &quot;0u&quot; ? (&quot; | &quot;) : (&quot;&quot;)}``${arpResponse ne &quot;0u&quot; ? arpResponse : (&quot;&quot;)}``${arpSnoopHostIp ? (&quot; | CY_ARP_OL_SNOOP_ENABLE&quot;) : &quot;&quot;}`)" include="`${arpOffload}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA) "/>
274    <ConfigDefine name="CY_ARP_OL_FEATURE_SLEEP_ENABLE_MASK_0" public="true" value="(`${arpInSleep}`)" include="`${arpOffload}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
275    <ConfigDefine name="CY_ARP_OL_PEER_AGE_0" public="true" value="(`${peerAge}`UL)" include="`${arpOffload}`" preventOverride="false" guard="defined(COMPONENT_MW_LPA)" />
276
277    <ConfigVariable const="false" type="arp_ol_t" name="arp_ol_0_ctxt" public="false" include="`${arpOffload}`" guard="defined(COMPONENT_MW_LPA)" />
278    <ConfigVariable const="false" type="pf_ol_t" name="pf_ol_0" public="false" include="`${pktFilterEn}`" guard="defined(COMPONENT_MW_LPA)" />
279    <ConfigVariable const="false" type="wowlpf_ol_t" name="wowlpf_ol_0" public="false" include="`${wowl_enable}`" guard="defined(COMPONENT_MW_LPA)" />
280    <ConfigVariable const="false" type="tko_ol_t" name="tko_ol_0_ctxt" public="false" include="`${tcpkaOffload}`" guard="defined(COMPONENT_MW_LPA)"/>
281    <ConfigVariable const="false" type="tlsoe_ol_t" name="tlsoe_ol_0_ctxt" public="false" include="`${mqttOffload}`" guard="defined(COMPONENT_MW_LPA)" />
282    <ConfigVariable const="false" type="nullko_ol_t" name="nullko_ol_0_ctxt" public="false" include="`${NullkoOffload}`" guard="defined(COMPONENT_MW_LPA)" />
283    <ConfigVariable const="false" type="nko_ol_t" name="nko_ol_0_ctxt" public="false" include="`${natkaOffload}`" guard="defined(COMPONENT_MW_LPA)" />
284
285    <ConfigStruct name="arp_ol_cfg_0" type="arp_ol_cfg_t" const="true" public="false" include="`${arpOffload}`" isArray="false" guard="defined(COMPONENT_MW_LPA)">
286      <Member name="awake_enable_mask" value="CY_ARP_OL_FEATURE_AWAKE_ENABLE_MASK_0" />
287      <Member name="sleep_enable_mask" value="CY_ARP_OL_FEATURE_SLEEP_ENABLE_MASK_0" />
288      <Member name="peerage" value="CY_ARP_OL_PEER_AGE_0" />
289    </ConfigStruct>
290
291    <!-- Packet Filter (PF) Offload Configuration -->
292    <ConfigStruct name="cy_pf_ol_cfg_0" type="cy_pf_ol_cfg_t" const="true" isArray="true" public="false" include="`${pktFilterEn}`" guard="defined(COMPONENT_MW_LPA)">
293      <Member name="`${configTLSID}`u" value="{.feature = CY_PF_OL_FEAT_PORTNUM,&#xA;`${longIndent}`.bits = `${filterTLSAllow}``${filterTLSAction eq CY_PF_ACTION_DISCARD ? (&quot; | CY_PF_ACTION_DISCARD&quot;) : (&quot;&quot;)}`,&#xA;`${longIndent}`.id = `${configTLSID}`u,&#xA;`${longIndent}`.u = {&#xA;&#9;`${longIndent}`.pf = {&#xA;`${longIndent}``${longIndent}`.portnum = {.portnum = `${filterTLSPort}`u,&#xA;`${longIndent}``${longIndent}``${longIndent}`.range = 0u,&#xA;`${longIndent}``${longIndent}``${longIndent}`.direction = `${filterTLSDir}`,},&#xA;`${longIndent}``${longIndent}`.proto = `${filterTLSProt}`,&#xA;&#9;&#9;`${longIndent}`},&#xA;&#9;`${longIndent}`},&#xA;`${longIndent}`}" include="`${configTLS}`" />
294
295      <Member name="`${configNonTLSID}`u" value="{.feature = CY_PF_OL_FEAT_PORTNUM,&#xA;`${longIndent}`.bits = `${filterNonTLSAllow}``${filterNonTLSAction eq CY_PF_ACTION_DISCARD ? (&quot; | CY_PF_ACTION_DISCARD&quot;) : (&quot;&quot;)}`,&#xA;`${longIndent}`.id = `${configNonTLSID}`u,&#xA;`${longIndent}`.u = {&#xA;&#9;`${longIndent}`.pf = {&#xA;`${longIndent}``${longIndent}`.portnum = {.portnum = `${filterNonTLSPort}`u,&#xA;`${longIndent}``${longIndent}``${longIndent}`.range = 0u,&#xA;`${longIndent}``${longIndent}``${longIndent}`.direction = `${filterNonTLSDir}`,},&#xA;`${longIndent}``${longIndent}`.proto = `${filterNonTLSProt}`,&#xA;&#9;&#9;`${longIndent}`},&#xA;&#9;`${longIndent}`},&#xA;`${longIndent}`}" include="`${configNonTLS}`" />
296
297      <Member name="`${config##_id}`u" value="{.feature = `${filter##_type eq CY_PF_PORT_ETHER_TYPE_FILTER ? (&quot;CY_PF_OL_FEAT_ETHTYPE&quot;) : (filter##_type eq CY_PF_PORT_IP_TYPE_FILTER ? (&quot;CY_PF_OL_FEAT_IPTYPE&quot;) : (&quot;CY_PF_OL_FEAT_PORTNUM&quot;))}`,&#xA;`${longIndent}`.bits = `${filter##_allow}``${filter##_action eq CY_PF_ACTION_DISCARD ? (&quot; | CY_PF_ACTION_DISCARD&quot;) : (&quot;&quot;)}`,&#xA;`${longIndent}`.id = `${config##_id}`u,&#xA;`${longIndent}``${filter##_type eq CY_PF_PORT_ETHER_TYPE_FILTER ? (&quot;.u = {&#xA;&#9;&#9;&#9;&#9;.eth = {&#xA;&#9;&#9;&#9;&#9;&#9;&#9;.eth_type = &quot;) : (&quot;&quot;)}``${filter##_type eq CY_PF_PORT_ETHER_TYPE_FILTER ? (filter##_ether_type) : (&quot;&quot;)}``${filter##_type eq CY_PF_PORT_ETHER_TYPE_FILTER ? (&quot;u,&#xA;&#9;&#9;&#9;&#9;&#9;&#9;},&#xA;&#9;&#9;&#9;&#9;},&#xA;&#9;&#9;&#9;&quot;) : (&quot;&quot;)}``${filter##_type eq CY_PF_PORT_IP_TYPE_FILTER ? (&quot;.u = {&#xA;&#9;&#9;&#9;&#9;.ip = {&#xA;&#9;&#9;&#9;&#9;&#9;&#9;.ip_type = &quot;) : (&quot;&quot;)}``${filter##_type eq CY_PF_PORT_IP_TYPE_FILTER ? (filter##_ip_type) : (&quot;&quot;)}``${filter##_type eq CY_PF_PORT_IP_TYPE_FILTER ? (&quot;u,&#xA;&#9;&#9;&#9;&#9;&#9;&#9;},&#xA;&#9;&#9;&#9;&#9;},&#xA;&#9;&#9;&#9;&quot;) : (&quot;&quot;)}``${filter##_portnum ? (&quot;.u = {&#xA;&#9;&#9;&#9;&#9;.pf = {&#xA;&#9;&#9;&#9;&#9;&#9;&#9;.portnum = {.portnum = &quot;) : (&quot;&quot;)}``${filter##_portnum ? (filter##_port) : (&quot;&quot;)}``${filter##_portnum ? (&quot;u,&#xA;&quot;) : (&quot;&quot;)}``${filter##_portnum ? (&quot;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&quot;) : (&quot;&quot;)}``${filter##_portnum ? (&quot;.range = &quot;) : (&quot;&quot;)}``${filter##_portnum ? (filter##_type eq CY_PF_PORT_BLOCK_FILTER ? filter##_end_port : 0) : (&quot;&quot;)}``${filter##_portnum ? (&quot;u,&#xA;&quot;) : (&quot;&quot;)}``${filter##_portnum ? (&quot;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&quot;) : (&quot;&quot;)}``${filter##_portnum ? (&quot;.direction = &quot;) : (&quot;&quot;)}``${filter##_portnum ? (filter##_dir) : (&quot;&quot;)}``${filter##_portnum ? (&quot;,},&#xA;&quot;) : (&quot;&quot;)}``${filter##_portnum ? (&quot;&#9;&#9;&#9;&#9;&#9;&#9;&quot;) : (&quot;&quot;)}``${filter##_portnum ? (&quot;.proto = &quot;) : (&quot;&quot;)}``${filter##_portnum ? (filter##_prot) : (&quot;&quot;)}``${filter##_portnum ? (&quot;,&#xA;&#9;&#9;&#9;&#9;&#9;},&#xA;&#9;&#9;&#9;&#9;},&#xA;&#9;&#9;&#9;&quot;) : (&quot;&quot;)}`}" include="`${config##}`" count="8"/>
298
299      <Member name="`${numOfActiveFilters}`u" value="{.feature = CY_PF_OL_FEAT_LAST}" include="true"/>
300    </ConfigStruct>
301
302    <!-- WOWL Packet Filter (WOWLPF) Offload Configuration -->
303    <ConfigStruct name="cy_wowlpf_ol_cfg_0" type="cy_wowlpf_ol_cfg_t" const="true" isArray="true" public="false" include="`${wowl_enable}`" guard="defined(COMPONENT_MW_LPA)">
304      <Member name="`${0}`u" value="{.feature = CY_WOWLPF_OL_FEAT_WAKE,
305                    &#xA;`${longIndent}`.pattern = &quot;`${pattern}`&quot;,
306                    &#xA;`${longIndent}`.mask = &quot;`${mask}`&quot;,
307                    &#xA;`${longIndent}`.offset = `${offset}`u,
308                    &#xA;&#9;&#9;&#9;}" include="`${netpattern}`" />
309
310      <Member name="`${(!netpattern &amp;&amp; magicpattern) ? 0 : 1}`u" value="{.feature = CY_WOWLPF_OL_FEAT_LAST}" include="`${wowl_enable}`" />
311    </ConfigStruct>
312
313    <!-- TCP Keep Alive (TKA) Offload Configuration -->
314    <ConfigStruct name="cy_tko_ol_cfg_0" type="cy_tko_ol_cfg_t" const="true" isArray="false" public="false" include="`${tcpkaOffload}`" guard="defined(COMPONENT_MW_LPA)">
315      <Member name="interval" value="`${tcpkaInterval}`" include="true" />
316      <Member name="retry_interval" value="`${tcpkaRetryInterval}`" include="true" />
317      <Member name="retry_count" value="`${tcpkaRetryCount}`" include="true" />
318      <Member name="`${&quot;ports[##]&quot;}`" value="{
319                              &#xA;`${longIndent}`.local_port = `${tcpkaSrcPort##}`,
320                              &#xA;`${longIndent}`.remote_port = `${tcpkaDstPort##}`,
321                              &#xA;`${longIndent}`&quot;`${tcpkaDstIpAddr##}`&quot;
322          &#xA;&#9;&#9;&#9;}" include="true" count="4"/>
323    </ConfigStruct>
324
325    <!-- MQTT Keep Alive (TLSOE) Offload Configuration -->
326    <ConfigStruct name="cy_tlsoe_ol_cfg_0" type="cy_tlsoe_ol_cfg_t" const="true" isArray="false" public="false" include="`${mqttOffload}`" guard="defined(COMPONENT_MW_LPA)">
327      <Member name="`${&quot;ports[##]&quot;}`" value="{
328                              &#xA;`${longIndent}`.patt_len = sizeof(&quot;`${mqtt_wakepattern}`&quot;)-1 ,
329                              &#xA;`${longIndent}`.wakepatt = &quot;`${mqtt_wakepattern}`&quot; ,
330          &#xA;&#9;&#9;&#9;}" include="true" count="1"/>
331    </ConfigStruct>
332
333    <!-- NULL Keep Alive Offload Configuration -->
334    <ConfigStruct name="cy_nullko_ol_cfg_0" type="cy_nullko_ol_cfg_t" const="true" isArray="false" public="false" include="`${NullkoOffload}`" guard="defined(COMPONENT_MW_LPA)">
335      <Member name="interval" value="`${nullkovalue}`" include="true"/>
336    </ConfigStruct>
337
338    <!-- NAT Keep Alive (NKA) Offload Configuration -->
339    <ConfigStruct name="cy_nko_ol_cfg_0" type="cy_lpa_nko_ol_cfg_t" const="true" isArray="false" public="false" include="`${natkaOffload}`" guard="defined(COMPONENT_MW_LPA)">
340      <Member name="interval" value="`${natkaInterval}` * 1000" include="true" />
341      <Member name="server" value="&quot;`${natkaDst}`&quot;" include="true" />
342      <Member name="s_port" value="`${natkaSrcPort}`" include="true" />
343      <Member name="d_port" value="`${natkaDstPort}`" include="true" />
344      <Member name="payload" value="&quot;`${natkaPayload}`&quot;" include="true" />
345    </ConfigStruct>
346
347    <ConfigStruct name="ol_list_0" type="ol_desc_t" const="true" isArray="true" public="false" include="`${offload_enabled}`" guard="defined(COMPONENT_MW_LPA)">
348      <Member name="`${0}`u" value="{&quot;Pkt_Filter&quot;, &amp;cy_pf_ol_cfg_0, &amp;pf_ol_fns, &amp;pf_ol_0}" include="`${pktFilterEn}`" />
349      <Member name="`${arpOflIdx}`u" value="{&quot;ARP&quot;, &amp;arp_ol_cfg_0, &amp;arp_ol_fns, &amp;arp_ol_0_ctxt}" include="`${arpOffload}`" />
350      <Member name="`${wowlpktOflIdx}`u" value="{&quot;WOWLPF&quot;, &amp;cy_wowlpf_ol_cfg_0, &amp;wowlpf_ol_fns, &amp;wowlpf_ol_0}" include="`${wowl_enable}`" />
351      <Member name="`${tcpkaOflIdx}`u" value="{&quot;TKO&quot;, &amp;cy_tko_ol_cfg_0, &amp;tko_ol_fns, &amp;tko_ol_0_ctxt}" include="`${tcpkaOffload}`" />
352      <Member name="`${tlsoeOflIdx}`u" value="{&quot;TLSOE&quot;, &amp;cy_tlsoe_ol_cfg_0, &amp;tlsoe_ol_fns, &amp;tlsoe_ol_0_ctxt}" include="`${mqttOffload}`" />
353      <Member name="`${natkaOflIdx}`u" value="{&quot;NKO&quot;, &amp;cy_nko_ol_cfg_0, &amp;nko_ol_fns, &amp;nko_ol_0_ctxt}" include="`${natkaOffload}`" />
354      <Member name="`${nullkoIdx}`u" value="{&quot;NULLKO&quot;, &amp;cy_nullko_ol_cfg_0, &amp;nullko_ol_fns, &amp;nullko_ol_0_ctxt}" include="`${NullkoOffload}`" />
355      <Member name="`${nullkoIdx + 1}`u" value="{NULL, NULL, NULL, NULL}" include="`${offload_enabled}`" />
356    </ConfigStruct>
357
358    <ConfigFunction signature="const ol_desc_t *cycfg_get_default_ol_list(void)" body="&#9;return &amp;ol_list_0[0];" public="false" include="`${offload_enabled}`" guard="defined(COMPONENT_MW_LPA)" />
359  </ConfigFirmware>
360</Personality>
361