TI-15.4 Stack API
api_mac.h
Go to the documentation of this file.
1 /******************************************************************************
2 
3  @file api_mac.h
4 
5  @brief TI-15.4 Stack API
6 
7  Group: WCS LPC
8  $Target Device: DEVICES $
9 
10  ******************************************************************************
11  $License: BSD3 2016 $
12  ******************************************************************************
13  $Release Name: PACKAGE NAME $
14  $Release Date: PACKAGE RELEASE DATE $
15  *****************************************************************************/
16 #ifndef API_MAC_H
17 #define API_MAC_H
18 
19 /******************************************************************************
20  Includes
21  *****************************************************************************/
22 
23 #include <stdbool.h>
24 #include <stdint.h>
25 
139 #ifdef __cplusplus
140 extern "C"
141 {
142 #endif
143 
144 /******************************************************************************
145  Constants and definitions
146  *****************************************************************************/
147 
149 #define APIMAC_KEY_MAX_LEN 16
150 
152 #define APIMAC_SADDR_EXT_LEN 8
153 
154  /* Security Implementation specific defines. The values depend on memory resources.
155  */
156  #ifndef MAX_KEY_TABLE_ENTRIES
157 #ifdef FEATURE_SECURE_COMMISSIONING
158 /* Key entry numbers = max device number + network key */
159 #define MAX_KEY_TABLE_ENTRIES MAX_DEVICE_TABLE_ENTRIES+1
160 #else
161 #define MAX_KEY_TABLE_ENTRIES 2
162 #endif
163  #endif
164 
165  #ifndef MAX_SECURITY_LEVEL_TABLE_ENTRIES
166  #define MAX_SECURITY_LEVEL_TABLE_ENTRIES 2
167  #endif
168 
169  /* MAC key table related constants */
170  #ifndef MAX_KEY_ID_LOOKUP_ENTRIES
171  #define MAX_KEY_ID_LOOKUP_ENTRIES 1
172  #endif
173 
174  #ifndef MAX_KEY_DEVICE_TABLE_ENTRIES
175 #ifdef FEATURE_SECURE_COMMISSIONING
176 #define MAX_KEY_DEVICE_TABLE_ENTRIES 1
177 #else
178  #define MAX_KEY_DEVICE_TABLE_ENTRIES MAX_DEVICE_TABLE_ENTRIES
179 #endif
180  #endif
181 
182  /*Max keys/node */
183  #ifndef MAX_NODE_KEY_ENTRIES
184  #define MAX_NODE_KEY_ENTRIES 1
185  #endif
186 
187  #ifndef MAX_KEY_USAGE_TABLE_ENTRIES
188  #define MAX_KEY_USAGE_TABLE_ENTRIES 2
189  #endif
190 
192 #define APIMAC_MAX_KEY_TABLE_ENTRIES MAX_KEY_TABLE_ENTRIES
193 
195 #define API_MAX_NODE_KEY_ENTRIES MAX_NODE_KEY_ENTRIES
196 
198 #define APIMAC_KEYID_IMPLICIT_LEN 0
199 
200 #define APIMAC_KEYID_MODE1_LEN 1
201 
202 #define APIMAC_KEYID_MODE4_LEN 5
203 
204 #define APIMAC_KEYID_MODE8_LEN 9
205 
207 #define APIMAC_KEY_SOURCE_MAX_LEN 8
208 
210 #define APIMAC_KEY_INDEX_LEN 1
211 
213 #define APIMAC_FRAME_COUNTER_LEN 4
214 
216 #define APIMAC_KEY_LOOKUP_SHORT_LEN 5
217 
218 #define APIMAC_KEY_LOOKUP_LONG_LEN 9
219 
220 #define APIMAC_MAX_KEY_LOOKUP_LEN APIMAC_KEY_LOOKUP_LONG_LEN
221 
223 #define APIMAC_DATA_OFFSET 24
224 
226 #define APIMAC_MAX_BEACON_PAYLOAD 16
227 
229 #define APIMAC_MIC_32_LEN 4
230 
231 #define APIMAC_MIC_64_LEN 8
232 
233 #define APIMAC_MIC_128_LEN 16
234 
239 #define APIMAC_MHR_LEN 37
240 
242 #define APIMAC_CHANNEL_PAGE_9 9
243 
244 #define APIMAC_CHANNEL_PAGE_10 10
245 
246 #define APIMAC_CHANNEL_PAGE_NONE 0
247 
249 #define APIMAC_STANDARD_PHY_DESCRIPTOR_ENTRIES 5
250 
251 #define APIMAC_GENERIC_PHY_DESCRIPTOR_ENTRIES 10
252 
254  #define APIMAC_50KBPS_915MHZ_PHY_1 1
255 
256  #define APIMAC_50KBPS_868MHZ_PHY_3 3
257 
258  #define APIMAC_50KBPS_433MHZ_PHY_128 128
259 
260  #define APIMAC_5KBPS_915MHZ_PHY_129 129
261 
262  #define APIMAC_5KBPS_433MHZ_PHY_130 130
263 
264  #define APIMAC_5KBPS_868MHZ_PHY_131 131
265 
266 #define APIMAC_200KBPS_915MHZ_PHY_132 132
267 
268 #define APIMAC_200KBPS_868MHZ_PHY_133 133
269 
270 #define APIMAC_250KBPS_IEEE_PHY_0 0
271 
273 #define APIMAC_MRFSK_STD_PHY_ID_BEGIN APIMAC_50KBPS_915MHZ_PHY_1
274 
275 #define APIMAC_MRFSK_STD_PHY_ID_END ( APIMAC_MRFSK_STD_PHY_ID_BEGIN + APIMAC_STANDARD_PHY_DESCRIPTOR_ENTRIES - 1 )
276 
278  #define APIMAC_MRFSK_GENERIC_PHY_ID_BEGIN APIMAC_50KBPS_433MHZ_PHY_128
279 
280  #define APIMAC_MRFSK_GENERIC_PHY_ID_END ( APIMAC_MRFSK_GENERIC_PHY_ID_BEGIN + APIMAC_GENERIC_PHY_DESCRIPTOR_ENTRIES - 1 )
281 
282 
284 #define APIMAC_PHY_DESCRIPTOR 0x01
285 
287 #define APIMAC_NO_EXTENDER 0x00
288 
289 #define APIMAC_HIGH_GAIN_MODE 0x01
290 
292 #define APIMAC_DEFAULT_PA 0x00
293 
294 #define APIMAC_HIGH_PA 0x01
295 
300 #define APIMAC_ADDR_USE_EXT 0xFFFE
301 
302 #define APIMAC_SHORT_ADDR_BROADCAST 0xFFFF
303 
304 #define APIMAC_SHORT_ADDR_NONE 0xFFFF
305 
307 #define APIMAC_RANDOM_SEED_LEN 32
308 
310 #define APIMAC_FH_UTT_IE 0x00000002
311 
312 #define APIMAC_FH_BT_IE 0x00000008
313 
314 #define APIMAC_FH_US_IE 0x00010000
315 
316 #define APIMAC_FH_BS_IE 0x00020000
317 
319 #define APIMAC_FH_HEADER_IE_MASK 0x000000FF
320 
324 #define APIMAC_FH_PROTO_DISPATCH_NONE 0x00
325 
328 #define APIMAC_FH_PROTO_DISPATCH_MHD_PDU 0x01
329 
332 #define APIMAC_FH_PROTO_DISPATCH_6LOWPAN 0x02
333 
335 #define APIMAC_154G_MAX_NUM_CHANNEL 129
336 
338 #define APIMAC_154G_CHANNEL_BITMAP_SIZ \
339  ((APIMAC_154G_MAX_NUM_CHANNEL + 7) / 8)
340 
342 #define APIMAC_HEADER_IE_MAX 2
343 
344 #define APIMAC_PAYLOAD_IE_MAX 2
345 
346 #define APIMAC_PAYLOAD_SUB_IE_MAX 4
347 
351 #define APIMAC_SFS_BEACON_ORDER(s) ((s) & 0x0F)
352 
356 #define APIMAC_SFS_SUPERFRAME_ORDER(s) (((s) >> 4) & 0x0F)
357 
361 #define APIMAC_SFS_FINAL_CAP_SLOT(s) (((s) >> 8) & 0x0F)
362 
367 #define APIMAC_SFS_BLE(s) (((s) >> 12) & 0x01)
368 
372 #define APIMAC_SFS_PAN_COORDINATOR(s) (((s) >> 14) & 0x01)
373 
378 #define APIMAC_SFS_ASSOCIATION_PERMIT(s) (((s) >> 15) & 0x01)
379 
381 #define APIMAC_FH_MAX_BIT_MAP_SIZE 32
382 
384 #define APIMAC_FH_NET_NAME_SIZE_MAX 32
385 
387 #define APIMAC_FH_GTK_HASH_SIZE 8
388 
390 typedef enum
391 {
399 
403 typedef enum
404 {
412 
414 typedef enum
415 {
421 
423 typedef enum
424 {
430 
432 typedef enum
433 {
447 
449 typedef enum
450 {
627 
629 typedef enum
630 {
648 
650 typedef enum
651 {
661 
663 typedef enum
664 {
691 
693 typedef enum
694 {
794 
796 typedef enum
797 {
831 
832 
834 typedef enum
835 {
862 
864 typedef enum
865 {
876 
878 typedef enum
879 {
889 
891 typedef enum
892 {
895 
898 
901 
903 
905 typedef enum
906 {
914 
916 typedef enum
917 {
980 
982 typedef enum
983 {
1008 
1010 
1012 typedef enum
1013 {
1034 
1036 
1038 typedef enum
1039 {
1045 
1047 typedef enum
1048 {
1074 
1076 typedef enum
1077 {
1095 
1097 typedef enum
1098 {
1108 
1110 typedef enum
1111 {
1119 
1121 typedef enum
1122 {
1136 
1138 typedef enum
1139 {
1170 
1172 typedef enum
1173 {
1179 
1181 typedef enum
1182 {
1192 
1194 typedef enum
1195 {
1203 
1204 /******************************************************************************
1205  Structures - Building blocks for the API for the MAC Module
1206  *****************************************************************************/
1207 
1210 
1212 typedef struct
1213 {
1218  union
1219  {
1221  uint16_t shortAddr;
1223  ApiMac_sAddrExt_t extAddr;
1224  } addr;
1225 
1228 } ApiMac_sAddr_t;
1229 
1231 typedef struct _apimac_sdata
1232 {
1234  uint8_t *p;
1236  uint16_t len;
1237 } ApiMac_sData_t;
1238 
1243 typedef struct _apimac_mrfskphydesc
1244 {
1248  uint16_t numChannels;
1250  uint32_t channelSpacing;
1252  uint8_t fskModScheme;
1254  uint16_t symbolRate;
1264  uint8_t fskModIndex;
1266  uint8_t ccaType;
1268 
1270 typedef struct _apimac_sec
1271 {
1273  uint8_t keySource[APIMAC_KEY_SOURCE_MAX_LEN];
1275  uint8_t securityLevel;
1277  uint8_t keyIdMode;
1279  uint8_t keyIndex;
1280 } ApiMac_sec_t;
1281 
1284 {
1286  uint8_t lookupData[APIMAC_MAX_KEY_LOOKUP_LEN];
1290 
1293 {
1301 
1304 {
1306  uint8_t frameType;
1308  uint8_t cmdFrameId;
1310 
1313 {
1323 
1326 
1332  uint8_t key[APIMAC_KEY_MAX_LEN];
1338  uint32_t frameCounter;
1340 
1343 {
1345  uint16_t panID;
1347  uint16_t shortAddress;
1352  ApiMac_sAddrExt_t extAddress;
1354 
1357 {
1359  uint8_t frameType;
1374 
1376 typedef struct
1377 {
1378  uint32_t frameCounter;
1379  uint16_t keyIdx;
1381 
1384 {
1394  bool exempt;
1396 
1399 {
1401  uint8_t keyEntry[APIMAC_KEY_MAX_LEN];
1403  uint8_t keyIndex;
1405  uint32_t frameCounter;
1407 
1413 {
1415  uint16_t keyIndex;
1421 
1427 {
1429  uint16_t keyIndex;
1431  uint16_t keyDeviceIndex;
1435 
1441 {
1443  uint16_t keyIndex;
1445  uint8_t keyUsageIndex;
1449 
1455 {
1457  uint16_t keyIndex;
1459  uint8_t keyEntry[APIMAC_KEY_MAX_LEN];
1461  uint32_t frameCounter;
1463 
1469 {
1471  uint16_t deviceIndex;
1475 
1476 
1482 {
1484  uint8_t levelIndex;
1488 
1491 {
1493  bool panCoord;
1495  bool ffd;
1502  bool security;
1509 
1511 typedef struct _apimac_txoptions
1512 {
1517  bool ack;
1523  bool indirect;
1541  bool useAltBE;
1552 
1554 typedef struct _apimac_mcpsdatareq
1555 {
1559  uint16_t dstPanId;
1563  uint8_t msduHandle;
1567  uint8_t channel;
1569  uint8_t power;
1571  uint8_t *pIEList;
1573  uint16_t payloadIELen;
1580  uint32_t includeFhIEs;
1586  uint8_t gpOffset;
1588  uint8_t gpDuration;
1590 
1593 {
1597  uint8_t ieId;
1599  uint16_t ieContentLen;
1601  uint8_t *pIEContent;
1603 
1605 typedef struct _apimac_payloadierec
1606 {
1608  void *pNext;
1612 
1614 typedef struct _apimac_mcpsdataind
1615 {
1621  uint32_t timestamp;
1625  uint16_t timestamp2;
1627  uint16_t srcPanId;
1629  uint16_t dstPanId;
1633  uint8_t correlation;
1635  int8_t rssi;
1637  uint8_t dsn;
1639  uint16_t payloadIeLen;
1641  uint8_t *pPayloadIE;
1647  uint32_t frameCntr;
1653 
1655 typedef struct _apimac_mcpsdatacnf
1656 {
1660  uint8_t msduHandle;
1662  uint32_t timestamp;
1667  uint16_t timestamp2;
1669  uint8_t retries;
1673  uint8_t correlation;
1675  int8_t rssi;
1677  uint32_t frameCntr;
1679 
1681 typedef struct _apimac_mcpspurgecnf
1682 {
1686  uint8_t msduHandle;
1688 
1690 typedef struct _apimac_pandesc
1691 {
1695  uint16_t coordPanId;
1705  uint16_t superframeSpec;
1709  uint8_t channelPage;
1716  uint8_t linkQuality;
1718  uint32_t timestamp;
1724 
1727 {
1733  uint8_t channelPage;
1735  uint8_t phyID;
1739  uint16_t coordPanId;
1743 
1746 {
1750  ApiMac_sAddrExt_t deviceAddress;
1756 
1759 {
1765  uint16_t devicePanId;
1771 
1774 {
1778  ApiMac_sAddrExt_t orphanAddress;
1780  uint16_t shortAddress;
1786 
1788 typedef struct _apimac_mlmepollreq
1789 {
1793  uint16_t coordPanId;
1797 
1799 typedef struct _apimac_mlmescanreq
1800 {
1802  uint8_t scanChannels[APIMAC_154G_CHANNEL_BITMAP_SIZ];
1806  uint8_t scanDuration;
1808  uint8_t channelPage;
1810  uint8_t phyID;
1815  uint8_t maxResults;
1825  uint8_t linkQuality;
1831  uint8_t percentFilter;
1838  bool MPMScan;
1840  uint8_t MPMScanType;
1855 
1857 typedef struct _apimac_mpmParams
1858 {
1863  uint8_t eBeaconOrder;
1879  uint8_t *pIEIDs;
1884  uint8_t numIEs;
1886 
1888 typedef struct _apimac_mlmestartreq
1889 {
1893  uint32_t startTime;
1897  uint16_t panId;
1907  uint8_t channelPage;
1909  uint8_t phyID;
1911  uint8_t beaconOrder;
1934  bool startFH;
1936 
1938 typedef struct _apimac_mlmesyncreq
1939 {
1943  uint8_t channelPage;
1945  uint8_t phyID;
1950  uint8_t trackBeacon;
1952 
1955 {
1968 
1970 typedef struct _apimac_secadddevice
1971 {
1973  uint16_t panID;
1975  uint16_t shortAddr;
1977  ApiMac_sAddrExt_t extAddr;
1983  bool exempt;
1985  uint32_t frameCounter;
1986 #ifndef FEATURE_SECURE_COMMISSIONING
1987 
1996  uint8_t keyIdLookupData[APIMAC_MAX_KEY_LOOKUP_LEN];
2008 #endif
2010 
2013 {
2015  uint8_t key[APIMAC_KEY_MAX_LEN];
2017  uint32_t frameCounter;
2024 
2042  uint8_t lookupData[APIMAC_MAX_KEY_LOOKUP_LEN];
2043 #ifdef FEATURE_SECURE_COMMISSIONING
2044  /* device key or network key */
2045  bool networkKey;
2046  /* ext. Address*/
2047  ApiMac_sAddrExt_t ApiMac_extAddr;
2048 #endif
2050 
2053 {
2055  ApiMac_sAddrExt_t deviceAddress;
2061 
2064 {
2072 
2075 {
2077  ApiMac_sAddrExt_t deviceAddress;
2083 
2086 {
2098  uint16_t panId;
2100 
2102 typedef struct _apimac_beacondata
2103 {
2110  uint16_t *pShortAddrList;
2117  uint8_t *pExtAddrList;
2119  uint8_t sduLength;
2121  uint8_t *pSdu;
2123 
2125 typedef struct _apimac_coexist
2126 {
2130  uint8_t beaconOrder;
2138  uint8_t finalCapSlot;
2143  uint8_t eBeaconOrder;
2152  uint8_t capBackOff;
2159 
2161 typedef struct _apimac_ebeacondata
2162 {
2166 
2168 typedef struct
2169 {
2173  uint8_t bsn;
2180  union
2181  {
2186  } beaconData;
2188 
2191 {
2193  ApiMac_sAddrExt_t orphanAddress;
2197 
2199 typedef struct _apimac_mlmescancnf
2200 {
2206  uint8_t channelPage;
2208  uint8_t phyId;
2210  uint8_t unscannedChannels[APIMAC_154G_CHANNEL_BITMAP_SIZ];
2214  union
2215  {
2217  uint8_t *pEnergyDetect;
2220  } result;
2222 
2224 typedef struct _apimac_mlmestartcnf
2225 {
2229 
2232 {
2236  uint16_t panId;
2240  uint8_t channelPage;
2242  uint8_t phyID;
2246 
2248 typedef struct _apimac_mlmepollcnf
2249 {
2253  uint8_t framePending;
2255 
2258 {
2266  uint16_t panId;
2272 
2274 typedef struct _apimac_mlmepollind
2275 {
2279  uint16_t srcPanId;
2285  bool noRsp;
2287 
2290 
2293 {
2297 
2303 
2309 
2315  ApiMac_mlmeDisassociateInd_t *pDisassociateInd);
2316 
2322  ApiMac_mlmeDisassociateCnf_t *pDisassociateCnf);
2323 
2329  ApiMac_mlmeBeaconNotifyInd_t *pBeaconNotifyInd);
2330 
2335 typedef void (*ApiMac_orphanIndFp_t)(ApiMac_mlmeOrphanInd_t *pOrphanInd);
2336 
2341 typedef void (*ApiMac_scanCnfFp_t)(ApiMac_mlmeScanCnf_t *pScanCnf);
2342 
2347 typedef void (*ApiMac_startCnfFp_t)(ApiMac_mlmeStartCnf_t *pStartCnf);
2348 
2353 typedef void (*ApiMac_syncLossIndFp_t)(ApiMac_mlmeSyncLossInd_t *pSyncLossInd);
2354 
2359 typedef void (*ApiMac_pollCnfFp_t)(ApiMac_mlmePollCnf_t *pPollCnf);
2360 
2366  ApiMac_mlmeCommStatusInd_t *pCommStatus);
2367 
2372 typedef void (*ApiMac_pollIndFp_t)(ApiMac_mlmePollInd_t *pPollInd);
2373 
2378 typedef void (*ApiMac_dataCnfFp_t)(ApiMac_mcpsDataCnf_t *pDataCnf);
2379 
2384 typedef void (*ApiMac_dataIndFp_t)(ApiMac_mcpsDataInd_t *pDataInd);
2385 
2390 typedef void (*ApiMac_purgeCnfFp_t)(ApiMac_mcpsPurgeCnf_t *pPurgeCnf);
2391 
2396 typedef void (*ApiMac_wsAsyncIndFp_t)(ApiMac_mlmeWsAsyncInd_t *pWsAsyncInd);
2397 
2402 typedef void (*ApiMac_wsAsyncCnfFp_t)(ApiMac_mlmeWsAsyncCnf_t *pWsAsyncCnf);
2403 
2409 typedef void (*ApiMac_unprocessedFp_t)(uint16_t param1, uint16_t param2,
2410  void *pMsg);
2411 
2419 typedef struct _apimac_callbacks
2420 {
2458 
2459 /******************************************************************************
2460  Function Prototypes
2461  *****************************************************************************/
2462 
2470 extern void *ApiMac_init(bool enableFH);
2471 
2477 extern void ApiMac_registerCallbacks(ApiMac_callbacks_t *pCallbacks);
2478 
2482 extern void ApiMac_processIncoming(void);
2483 
2510 
2525 extern ApiMac_status_t ApiMac_mcpsPurgeReq(uint8_t msduHandle);
2526 
2548  ApiMac_mlmeAssociateReq_t *pData);
2549 
2568  ApiMac_mlmeAssociateRsp_t *pData);
2569 
2588 
2599  ApiMac_attribute_bool_t pibAttribute,
2600  bool *pValue);
2601 
2612  ApiMac_attribute_uint8_t pibAttribute,
2613  uint8_t *pValue);
2614 
2625  ApiMac_attribute_uint16_t pibAttribute,
2626  uint16_t *pValue);
2627 
2638  ApiMac_attribute_uint32_t pibAttribute,
2639  uint32_t *pValue);
2640 
2651  ApiMac_attribute_array_t pibAttribute,
2652  uint8_t *pValue);
2653 
2668  ApiMac_FHAttribute_uint8_t pibAttribute, uint8_t *pValue);
2669 
2684  ApiMac_FHAttribute_uint16_t pibAttribute, uint16_t *pValue);
2685 
2700  ApiMac_FHAttribute_uint32_t pibAttribute, uint32_t *pValue);
2701 
2716  ApiMac_FHAttribute_array_t pibAttribute, uint8_t *pValue);
2717 
2732  ApiMac_securityAttribute_uint8_t pibAttribute, uint8_t *pValue);
2733 
2748  ApiMac_securityAttribute_uint16_t pibAttribute, uint16_t *pValue);
2749 
2764  ApiMac_securityAttribute_array_t pibAttribute, uint8_t *pValue);
2765 
2780  ApiMac_securityAttribute_struct_t pibAttribute, void *pValue);
2781 
2802 
2823 
2835 extern ApiMac_status_t ApiMac_mlmeResetReq(bool setDefaultPib);
2836 
2891 
2902  ApiMac_attribute_bool_t pibAttribute,
2903  bool value);
2904 
2915  ApiMac_attribute_uint8_t pibAttribute,
2916  uint8_t value);
2917 
2928  ApiMac_attribute_uint16_t pibAttribute,
2929  uint16_t value);
2930 
2941  ApiMac_attribute_uint32_t pibAttribute,
2942  uint32_t value);
2943 
2954  ApiMac_attribute_array_t pibAttribute,
2955  uint8_t *pValue);
2956 
2971  ApiMac_FHAttribute_uint8_t pibAttribute, uint8_t value);
2972 
2987  ApiMac_FHAttribute_uint16_t pibAttribute, uint16_t value);
2988 
3003  ApiMac_FHAttribute_uint32_t pibAttribute, uint32_t value);
3004 
3019  ApiMac_FHAttribute_array_t pibAttribute, uint8_t *pValue);
3020 
3035  ApiMac_securityAttribute_uint8_t pibAttribute, uint8_t value);
3036 
3051  ApiMac_securityAttribute_uint16_t pibAttribute, uint16_t value);
3052 
3067  ApiMac_securityAttribute_array_t pibAttribute, uint8_t *pValue);
3068 
3083  ApiMac_securityAttribute_struct_t pibAttribute, void *pValue);
3084 
3119 
3161 
3168 extern uint8_t ApiMac_randomByte(void);
3169 
3181 extern ApiMac_status_t ApiMac_updatePanId(uint16_t panId);
3182 
3183 #if defined(COMBO_MAC) || defined(FREQ_2_4G)
3184 
3193 extern ApiMac_status_t ApiMac_srcMatchEnable(void);
3194 #endif
3195 
3212 
3226 extern ApiMac_status_t ApiMac_startFH(void);
3227 
3258  uint8_t *pPayload, uint16_t payloadLen,
3259  ApiMac_payloadIeRec_t **pList);
3260 
3288 extern ApiMac_status_t ApiMac_parsePayloadSubIEs(uint8_t *pContent,
3289  uint16_t contentLen,
3290  ApiMac_payloadIeRec_t **pList);
3291 
3298 extern void ApiMac_freeIEList(ApiMac_payloadIeRec_t *pList);
3299 
3312 extern ApiMac_status_t ApiMac_enableFH(void);
3313 
3321 extern uint8_t ApiMac_convertCapabilityInfo(
3322  ApiMac_capabilityInfo_t *pMsgcapInfo);
3323 
3330 extern void ApiMac_buildMsgCapInfo(uint8_t cInfo,
3331  ApiMac_capabilityInfo_t *pPBcapInfo);
3332 
3342 
3352 extern ApiMac_status_t ApiMac_secDeleteDevice(ApiMac_sAddrExt_t *pExtAddr);
3353 
3366 extern ApiMac_status_t ApiMac_secDeleteKeyAndAssocDevices(uint8_t keyIndex);
3367 
3375 
3388 extern ApiMac_status_t ApiMac_secGetDefaultSourceKey(uint8_t keyId,
3389  uint32_t *pFrameCounter);
3390 
3406 
3407 #ifdef __cplusplus
3408 }
3409 #endif
3410 
3411 #endif /* API_MAC_H */
3412 
uint8_t keyIdLookupIndex
Definition: api_mac.h:1417
Definition: api_mac.h:1188
ApiMac_sec_t sec
Definition: api_mac.h:2244
struct _apimac_mlmescancnf ApiMac_mlmeScanCnf_t
Definition: api_mac.h:2231
ApiMac_sec_t sec
Definition: api_mac.h:2195
void(* ApiMac_beaconNotifyIndFp_t)(ApiMac_mlmeBeaconNotifyInd_t *pBeaconNotifyInd)
Definition: api_mac.h:2328
bool panCoordinator
Definition: api_mac.h:1915
uint8_t ApiMac_randomByte(void)
This function returns a random byte from the MAC random number generator.
Definition: api_mac.h:1212
void(* ApiMac_dataCnfFp_t)(ApiMac_mcpsDataCnf_t *pDataCnf)
Definition: api_mac.h:2378
Definition: api_mac.h:1970
Definition: api_mac.h:410
ApiMac_keyDeviceDescriptor_t * keyDeviceList
Definition: api_mac.h:1322
struct _apimac_callbacks ApiMac_callbacks_t
Definition: api_mac.h:460
ApiMac_secLevel_t
Definition: api_mac.h:629
struct _apimac_mlmesyncreq ApiMac_mlmeSyncReq_t
struct _apimac_securitypibkeyentry ApiMac_securityPibKeyEntry_t
Definition: api_mac.h:638
Definition: api_mac.h:2052
ApiMac_assocStatus_t
Definition: api_mac.h:390
Definition: api_mac.h:1093
int8_t rssi
Definition: api_mac.h:1635
ApiMac_sec_t sec
Definition: api_mac.h:1776
ApiMac_disassociateIndFp_t pDisassociateIndCb
Definition: api_mac.h:2426
uint16_t timestamp2
Definition: api_mac.h:1667
Definition: api_mac.h:960
bool exempt
Definition: api_mac.h:1394
uint8_t phyID
Definition: api_mac.h:1909
Definition: api_mac.h:1128
bool rxOnWhenIdle
Definition: api_mac.h:1499
struct _apimac_mlmeassociateind ApiMac_mlmeAssociateInd_t
Definition: api_mac.h:609
ApiMac_sec_t sec
Definition: api_mac.h:2081
Definition: api_mac.h:1554
ApiMac_mpmParams_t mpmParams
Definition: api_mac.h:1932
Definition: api_mac.h:1130
uint8_t * pPayloadIE
Definition: api_mac.h:1641
Definition: api_mac.h:590
Definition: api_mac.h:428
ApiMac_status_t ApiMac_mlmeSetFhReqUint32(ApiMac_FHAttribute_uint32_t pibAttribute, uint32_t value)
This direct execute function sets an attribute value in the MAC Frequency Hopping PIB...
Definition: api_mac.h:445
Definition: api_mac.h:479
Definition: api_mac.h:850
Definition: api_mac.h:803
uint32_t frameCounter
Definition: api_mac.h:1461
Definition: api_mac.h:848
uint8_t * pExtAddrList
Definition: api_mac.h:2117
ApiMac_scanCnfFp_t pScanCnfCb
Definition: api_mac.h:2434
uint8_t channelPage
Definition: api_mac.h:1808
uint8_t mpduLinkQuality
Definition: api_mac.h:1631
#define APIMAC_154G_CHANNEL_BITMAP_SIZ
Definition: api_mac.h:338
Definition: api_mac.h:2190
Definition: api_mac.h:1083
bool indirect
Definition: api_mac.h:1523
struct _apimac_mlmesynclossind ApiMac_mlmeSyncLossInd_t
Definition: api_mac.h:437
bool ieTypeLong
Definition: api_mac.h:1595
ApiMac_status_t ApiMac_mlmeSetReqUint16(ApiMac_attribute_uint16_t pibAttribute, uint16_t value)
This direct execute function sets an attribute value in the MAC PIB.
ApiMac_status_t ApiMac_mlmeStartReq(ApiMac_mlmeStartReq_t *pData)
This function is called by a coordinator or PAN coordinator to start or reconfigure a network...
ApiMac_status_t ApiMac_mlmeSetSecurityReqArray(ApiMac_securityAttribute_array_t pibAttribute, uint8_t *pValue)
This direct execute function sets an attribute value in the MAC Security PIB.
ApiMac_mcpsDataInd_t ApiMac_mlmeWsAsyncInd_t
Definition: api_mac.h:2289
bool usePowerAndChannel
Definition: api_mac.h:1546
Definition: api_mac.h:743
Definition: api_mac.h:1043
ApiMac_status_t status
Definition: api_mac.h:2260
Definition: api_mac.h:529
uint32_t startTime
Definition: api_mac.h:1893
Definition: api_mac.h:1342
struct _apimac_securitypibkeyusageentry ApiMac_securityPibKeyUsageEntry_t
Definition: api_mac.h:924
uint32_t firstChCentrFreq
Definition: api_mac.h:1246
Definition: api_mac.h:1398
Definition: api_mac.h:538
Definition: api_mac.h:1745
ApiMac_wsAsyncIndFp_t pWsAsyncIndCb
Definition: api_mac.h:2452
uint8_t cmdFrameId
Definition: api_mac.h:1308
struct _apimac_securityleveldescriptor ApiMac_securityLevelDescriptor_t
ApiMac_beaconType_t
Definition: api_mac.h:414
uint8_t levelIndex
Definition: api_mac.h:1484
uint32_t timestamp
Definition: api_mac.h:1621
Definition: api_mac.h:1126
bool associatedMember
Definition: api_mac.h:1784
uint16_t * pShortAddrList
Definition: api_mac.h:2110
ApiMac_fhFrameType_t
Definition: api_mac.h:1076
ApiMac_status_t ApiMac_startFH(void)
This function starts the frequency hopping. Frequency hopping operation should have been enabled usin...
Definition: api_mac.h:621
bool coordRealignment
Definition: api_mac.h:1926
Definition: api_mac.h:452
uint32_t frameCounter
Definition: api_mac.h:1985
struct _apimac_mlmeorphanrsp ApiMac_mlmeOrphanRsp_t
uint8_t offsetTimeSlot
Definition: api_mac.h:2147
Definition: api_mac.h:1168
ApiMac_keyIdLookupDescriptor_t * keyIdLookupList
Definition: api_mac.h:1315
void(* ApiMac_wsAsyncIndFp_t)(ApiMac_mlmeWsAsyncInd_t *pWsAsyncInd)
Definition: api_mac.h:2396
uint8_t msduHandle
Definition: api_mac.h:1686
void(* ApiMac_syncLossIndFp_t)(ApiMac_mlmeSyncLossInd_t *pSyncLossInd)
Definition: api_mac.h:2353
struct _apimac_keyidlookupdescriptor ApiMac_keyIdLookupDescriptor_t
struct _apimac_capabilityinfo ApiMac_capabilityInfo_t
uint8_t fskModIndex
Definition: api_mac.h:1264
Definition: api_mac.h:1081
uint8_t securityMinimum
Definition: api_mac.h:1365
#define APIMAC_KEY_SOURCE_MAX_LEN
Definition: api_mac.h:207
ApiMac_status_t ApiMac_mlmeGetSecurityReqUint16(ApiMac_securityAttribute_uint16_t pibAttribute, uint16_t *pValue)
This direct execute function retrieves an attribute value from the MAC Secutity PIB.
uint8_t sduLength
Definition: api_mac.h:2119
uint16_t srcPanId
Definition: api_mac.h:1627
Definition: api_mac.h:842
Definition: api_mac.h:2161
Definition: api_mac.h:2257
bool noRsp
Definition: api_mac.h:2285
ApiMac_beaconNotifyIndFp_t pBeaconNotifyIndCb
Definition: api_mac.h:2430
Definition: api_mac.h:784
Definition: api_mac.h:1089
void(* ApiMac_disassociateCnfFp_t)(ApiMac_mlmeDisassociateCnf_t *pDisassociateCnf)
Definition: api_mac.h:2321
ApiMac_status_t ApiMac_mlmeSetReqUint32(ApiMac_attribute_uint32_t pibAttribute, uint32_t value)
This direct execute function sets an attribute value in the MAC PIB.
ApiMac_panDesc_t panDesc
Definition: api_mac.h:2175
Definition: api_mac.h:1511
Definition: api_mac.h:829
Definition: api_mac.h:489
uint16_t deviceIndex
Definition: api_mac.h:1471
struct _apimac_payloadieitem ApiMac_payloadIeItem_t
ApiMac_sec_t sec
Definition: api_mac.h:1722
bool uniqueDevice
Definition: api_mac.h:1998
ApiMac_sAddrExt_t deviceAddress
Definition: api_mac.h:2077
ApiMac_startCnfFp_t pStartCnfCb
Definition: api_mac.h:2436
Definition: api_mac.h:640
Definition: api_mac.h:611
uint8_t phyID
Definition: api_mac.h:1945
ApiMac_wisunAsycnOperation_t operation
Definition: api_mac.h:1959
Definition: api_mac.h:581
void(* ApiMac_startCnfFp_t)(ApiMac_mlmeStartCnf_t *pStartCnf)
Definition: api_mac.h:2347
uint16_t keyIndex
Definition: api_mac.h:1429
ApiMac_status_t ApiMac_mlmeAssociateRsp(ApiMac_mlmeAssociateRsp_t *pData)
This function sends an associate response to a device requesting to associate. This function must be ...
uint16_t MPMScanDuration
Definition: api_mac.h:1853
Definition: api_mac.h:846
ApiMac_status_t ApiMac_mlmeGetFhReqUint32(ApiMac_FHAttribute_uint32_t pibAttribute, uint32_t *pValue)
This direct execute function retrieves an attribute value from the MAC Frequency Hopping PIB...
uint16_t replaceKeyIndex
Definition: api_mac.h:2023
uint16_t deviceDescriptorHandle
Definition: api_mac.h:1295
Definition: api_mac.h:1106
uint8_t offsetTimeSlot
Definition: api_mac.h:1868
Definition: api_mac.h:1102
bool startFH
Definition: api_mac.h:1934
Definition: api_mac.h:657
bool noRetransmits
Definition: api_mac.h:1532
uint16_t coordPanId
Definition: api_mac.h:1793
Definition: api_mac.h:533
Definition: api_mac.h:808
Definition: api_mac.h:1023
ApiMac_sAddr_t dstAddr
Definition: api_mac.h:1619
Definition: api_mac.h:1758
ApiMac_dataCnfFp_t pDataCnfCb
Definition: api_mac.h:2446
ApiMac_scantype_t scanType
Definition: api_mac.h:2204
Definition: api_mac.h:767
ApiMac_status_t ApiMac_secDeleteKeyAndAssocDevices(uint8_t keyIndex)
Removes the key at the specified key Index and removes all MAC device table enteries associated with ...
ApiMac_FHAttribute_array_t
Definition: api_mac.h:1047
uint8_t keyIdLookupDataSize
Definition: api_mac.h:1991
ApiMac_status_t ApiMac_mlmeSyncReq(ApiMac_mlmeSyncReq_t *pData)
This function requests the MAC to synchronize with the coordinator by acquiring and optionally tracki...
ApiMac_attribute_bool_t
Definition: api_mac.h:663
ApiMac_FHAttribute_uint32_t
Definition: api_mac.h:1038
Definition: api_mac.h:1376
Definition: api_mac.h:462
Definition: api_mac.h:470
ApiMac_sData_t msdu
Definition: api_mac.h:1651
Definition: api_mac.h:969
uint32_t frameCntr
Definition: api_mac.h:1677
Definition: api_mac.h:1100
Definition: api_mac.h:588
uint8_t * p
Definition: api_mac.h:1234
Definition: api_mac.h:2199
uint8_t bsn
Definition: api_mac.h:2173
uint16_t shortAddress
Definition: api_mac.h:1780
ApiMac_disassocateReason_t disassociateReason
Definition: api_mac.h:2079
bool security
Definition: api_mac.h:1502
Definition: api_mac.h:1655
Definition: api_mac.h:858
uint16_t assocShortAddress
Definition: api_mac.h:1752
struct _apimac_mcpsdatareq ApiMac_mcpsDataReq_t
uint32_t timestamp
Definition: api_mac.h:1662
Definition: api_mac.h:625
ApiMac_status_t ApiMac_mcpsDataReq(ApiMac_mcpsDataReq_t *pData)
This function sends application data to the MAC for transmission in a MAC data frame. The MAC can only buffer a certain number of data request frames. When the MAC is congested and cannot accept the data request it will initiate a callback (ApiMac_dataCnfFp_t) with an overflow status (ApiMac_status_transactionOverflow) . Eventually the MAC will become uncongested and initiate the callback (ApiMac_dataCnfFp_t) for a buffered request. At this point the application can attempt another data request. Using this scheme, the application can send data whenever it wants but it must queue data to be resent if it receives an overflow status.
int8_t rssi
Definition: api_mac.h:1675
struct _apimac_sdata ApiMac_sData_t
ApiMac_status_t ApiMac_mlmeGetSecurityReqUint8(ApiMac_securityAttribute_uint8_t pibAttribute, uint8_t *pValue)
This direct execute function retrieves an attribute value from the MAC Secutity PIB.
uint16_t assocShortAddress
Definition: api_mac.h:2068
Definition: api_mac.h:712
ApiMac_status_t ApiMac_secDeleteAllDevices(void)
Removes all MAC device table entries.
ApiMac_panDesc_t * pPanDescriptor
Definition: api_mac.h:2219
bool exempt
Definition: api_mac.h:1983
Definition: api_mac.h:780
Definition: api_mac.h:840
Definition: api_mac.h:572
void * ApiMac_init(bool enableFH)
Initialize this module.
uint8_t numIEs
Definition: api_mac.h:1884
Definition: api_mac.h:1145
ApiMac_disassociateCnfFp_t pDisassociateCnfCb
Definition: api_mac.h:2428
Definition: api_mac.h:1938
Definition: api_mac.h:542
Definition: api_mac.h:1773
Definition: api_mac.h:1156
ApiMac_status_t status
Definition: api_mac.h:2227
Definition: api_mac.h:872
ApiMac_status_t ApiMac_secAddDevice(ApiMac_secAddDevice_t *pAddDevice)
Adds a new MAC device table entry.
Definition: api_mac.h:673
ApiMac_sec_t sec
Definition: api_mac.h:1833
struct _apimac_mlmeorphanind ApiMac_mlmeOrphanInd_t
ApiMac_sData_t msdu
Definition: api_mac.h:1582
uint8_t commandFrameIdentifier
Definition: api_mac.h:1361
Definition: api_mac.h:792
uint8_t securityLevel
Definition: api_mac.h:1275
ApiMac_unprocessedFp_t pUnprocessedCb
Definition: api_mac.h:2456
ApiMac_status_t ApiMac_mlmeGetFhReqUint16(ApiMac_FHAttribute_uint16_t pibAttribute, uint16_t *pValue)
This direct execute function retrieves an attribute value from the MAC Frequency Hopping PIB...
uint8_t channelPage
Definition: api_mac.h:1733
Definition: api_mac.h:406
struct _apimac_securitykeyentry ApiMac_securityKeyEntry_t
Definition: api_mac.h:579
Definition: api_mac.h:852
uint8_t msduHandle
Definition: api_mac.h:1660
Definition: api_mac.h:1064
uint8_t trackBeacon
Definition: api_mac.h:1950
ApiMac_status_t reason
Definition: api_mac.h:2234
uint8_t framePending
Definition: api_mac.h:2253
Definition: api_mac.h:1115
ApiMac_status_t ApiMac_secGetDefaultSourceKey(uint8_t keyId, uint32_t *pFrameCounter)
Reads the frame counter value associated with a MAC security key indexed by the designated key identi...
uint8_t ccaType
Definition: api_mac.h:1266
Definition: api_mac.h:659
ApiMac_dataIndFp_t pDataIndCb
Definition: api_mac.h:2448
uint8_t channelPage
Definition: api_mac.h:1943
uint8_t mpduLinkQuality
Definition: api_mac.h:1671
Definition: api_mac.h:1283
ApiMac_scantype_t scanType
Definition: api_mac.h:1804
ApiMac_status_t ApiMac_mlmeDisassociateReq(ApiMac_mlmeDisassociateReq_t *pData)
This function is used by an associated device to notify the coordinator of its intent to leave the PA...
ApiMac_status_t ApiMac_mlmeGetReqBool(ApiMac_attribute_bool_t pibAttribute, bool *pValue)
This direct execute function retrieves an attribute value from the MAC PIB.
bool noConfirm
Definition: api_mac.h:1537
Definition: api_mac.h:756
ApiMac_keyUsageDescriptor_t * keyUsageList
Definition: api_mac.h:1328
Definition: api_mac.h:1184
Definition: api_mac.h:646
uint16_t symbolRate
Definition: api_mac.h:1254
ApiMac_wisunAsyncFrame_t
Definition: api_mac.h:1181
ApiMac_status_t ApiMac_mlmeGetReqUint16(ApiMac_attribute_uint16_t pibAttribute, uint16_t *pValue)
This direct execute function retrieves an attribute value from the MAC PIB.
ApiMac_payloadIeItem_t item
Definition: api_mac.h:1610
ApiMac_wisunSubIE_t
Definition: api_mac.h:1121
uint8_t correlation
Definition: api_mac.h:1633
void * pNext
Definition: api_mac.h:1608
ApiMac_status_t ApiMac_mlmeOrphanRsp(ApiMac_mlmeOrphanRsp_t *pData)
This function is called in response to an orphan notification from a peer device. This function must ...
Definition: api_mac.h:522
Definition: api_mac.h:636
Definition: api_mac.h:687
Definition: api_mac.h:2012
Definition: api_mac.h:550
Definition: api_mac.h:1412
void(* ApiMac_dataIndFp_t)(ApiMac_mcpsDataInd_t *pDataInd)
Definition: api_mac.h:2384
Definition: api_mac.h:1440
uint8_t eBeaconOrder
Definition: api_mac.h:2143
ApiMac_commStatusReason_t
Definition: api_mac.h:432
Definition: api_mac.h:685
Definition: api_mac.h:642
uint8_t percentFilter
Definition: api_mac.h:1831
ApiMac_status_t status
Definition: api_mac.h:2202
Definition: api_mac.h:417
struct _apimac_secadddevice ApiMac_secAddDevice_t
ApiMac_associateCnfFp_t pAssocCnfCb
Definition: api_mac.h:2424
struct _apimac_mlmedisassociatereq ApiMac_mlmeDisassociateReq_t
ApiMac_pollIndFp_t pPollIndCb
Definition: api_mac.h:2444
Definition: api_mac.h:1117
ApiMac_securityLevelDescriptor_t levelEntry
Definition: api_mac.h:1486
Definition: api_mac.h:2419
uint16_t shortAddr
Definition: api_mac.h:1221
Definition: api_mac.h:1175
ApiMac_assocStatus_t status
Definition: api_mac.h:1754
Definition: api_mac.h:2074
ApiMac_status_t ApiMac_mlmeAssociateReq(ApiMac_mlmeAssociateReq_t *pData)
This function sends an associate request to a coordinator device. The application shall attempt to as...
uint8_t beaconOrder
Definition: api_mac.h:1911
Definition: api_mac.h:717
Definition: api_mac.h:696
ApiMac_status_t ApiMac_mlmeResetReq(bool setDefaultPib)
This direct execute function resets the MAC. This function must be called once at system startup befo...
uint8_t gpOffset
Definition: api_mac.h:1586
Definition: api_mac.h:1072
uint16_t payloadIeLen
Definition: api_mac.h:1639
ApiMac_keyUsageDescriptor_t usageEntry
Definition: api_mac.h:1447
void(* ApiMac_purgeCnfFp_t)(ApiMac_mcpsPurgeCnf_t *pPurgeCnf)
Definition: api_mac.h:2390
ApiMac_sAddr_t deviceAddress
Definition: api_mac.h:2093
ApiMac_wisunAsycnOperation_t
Definition: api_mac.h:1172
uint8_t logicalChannel
Definition: api_mac.h:1941
struct _apimac_keydescriptor ApiMac_keyDescriptor_t
Definition: api_mac.h:632
ApiMac_status_t ApiMac_enableFH(void)
Enables the Frequency hopping operation. Make sure you call this function before setting any FH param...
Definition: api_mac.h:1190
ApiMac_sAddrExt_t deviceAddress
Definition: api_mac.h:2055
ApiMac_pollCnfFp_t pPollCnfCb
Definition: api_mac.h:2440
uint16_t timestamp2
Definition: api_mac.h:1625
ApiMac_status_t ApiMac_mlmeGetReqUint8(ApiMac_attribute_uint8_t pibAttribute, uint8_t *pValue)
This direct execute function retrieves an attribute value from the MAC PIB.
Definition: api_mac.h:1079
uint8_t lookupDataSize
Definition: api_mac.h:1288
uint16_t payloadIELen
Definition: api_mac.h:1573
Definition: api_mac.h:860
bool useAltBE
Definition: api_mac.h:1541
uint32_t frameCounter
Definition: api_mac.h:2017
Definition: api_mac.h:419
struct _apimac_securitypibdeviceentry ApiMac_securityPibDeviceEntry_t
ApiMac_status_t ApiMac_parsePayloadSubIEs(uint8_t *pContent, uint16_t contentLen, ApiMac_payloadIeRec_t **pList)
Parses the payload sub information element. This function creates a linked list (pList) of sub IEs fr...
uint8_t scanDuration
Definition: api_mac.h:1806
Definition: api_mac.h:512
ApiMac_sec_t sec
Definition: api_mac.h:1748
uint8_t finalCapSlot
Definition: api_mac.h:2138
Definition: api_mac.h:856
Definition: api_mac.h:706
ApiMac_keyDeviceDescriptor_t deviceEntry
Definition: api_mac.h:1433
uint8_t power
Definition: api_mac.h:1569
ApiMac_status_t ApiMac_updatePanId(uint16_t panId)
Update Device Table entry and PIB with new Pan Id.
uint8_t linkQuality
Definition: api_mac.h:1716
Definition: api_mac.h:683
uint32_t timestamp
Definition: api_mac.h:1718
Definition: api_mac.h:725
Definition: api_mac.h:531
Definition: api_mac.h:1356
uint8_t phyID
Definition: api_mac.h:1735
ApiMac_commStatusReason_t reason
Definition: api_mac.h:2268
uint8_t superFrameOrder
Definition: api_mac.h:2136
ApiMac_sec_t sec
Definition: api_mac.h:1761
Definition: api_mac.h:1104
Definition: api_mac.h:1085
Definition: api_mac.h:991
Definition: api_mac.h:1001
Definition: api_mac.h:2063
Definition: api_mac.h:644
uint8_t channelPage
Definition: api_mac.h:1709
Definition: api_mac.h:613
Definition: api_mac.h:1087
Definition: api_mac.h:1031
Definition: api_mac.h:2224
Definition: api_mac.h:1270
ApiMac_purgeCnfFp_t pPurgeCnfCb
Definition: api_mac.h:2450
struct _apimac_mlmestartreq ApiMac_mlmeStartReq_t
bool permitJoining
Definition: api_mac.h:1820
Definition: api_mac.h:507
uint8_t msduHandle
Definition: api_mac.h:1563
Definition: api_mac.h:1954
uint8_t * pIEList
Definition: api_mac.h:1571
Definition: api_mac.h:854
Definition: api_mac.h:689
bool gtsPermit
Definition: api_mac.h:1714
uint32_t includeFhIEs
Definition: api_mac.h:1580
struct _apimac_macmlmeassociatereq ApiMac_mlmeAssociateReq_t
Definition: api_mac.h:788
struct _apimac_mlmeassociatecnf ApiMac_mlmeAssociateCnf_t
bool securityFailure
Definition: api_mac.h:1720
uint8_t frameType
Definition: api_mac.h:1359
Definition: api_mac.h:393
ApiMac_deviceDescriptor_t devInfo
Definition: api_mac.h:1386
ApiMac_attribute_array_t
Definition: api_mac.h:864
Definition: api_mac.h:456
ApiMac_sAddrExt_t deviceAddress
Definition: api_mac.h:1750
bool allocAddr
Definition: api_mac.h:1507
ApiMac_sAddrExt_t orphanAddress
Definition: api_mac.h:2193
Definition: api_mac.h:729
ApiMac_commStatusIndFp_t pCommStatusCb
Definition: api_mac.h:2442
struct _apimac_mlmedisassociateind ApiMac_mlmeDisassociateInd_t
uint16_t numChannels
Definition: api_mac.h:1248
ApiMac_sec_t beaconSec
Definition: api_mac.h:1930
ApiMac_status_t ApiMac_mlmeWSAsyncReq(ApiMac_mlmeWSAsyncReq_t *pData)
This functions handles a WiSUN async request. The possible operation is Async Start or Async Stop...
ApiMac_status_t status
Definition: api_mac.h:1658
bool duplicateDevFlag
Definition: api_mac.h:2007
struct _apimac_securitypibkeydeviceentry ApiMac_securityPibKeyDeviceEntry_t
Definition: api_mac.h:1124
Definition: api_mac.h:475
struct _apimac_keyusagedescriptor ApiMac_keyUsageDescriptor_t
ApiMac_sAddr_t deviceAddress
Definition: api_mac.h:1763
ApiMac_status_t ApiMac_mlmeSetReqBool(ApiMac_attribute_bool_t pibAttribute, bool value)
This direct execute function sets an attribute value in the MAC PIB.
uint16_t keyIndex
Definition: api_mac.h:1443
ApiMac_capabilityInfo_t capabilityInformation
Definition: api_mac.h:2057
Definition: api_mac.h:592
ApiMac_assocStatus_t status
Definition: api_mac.h:2066
Definition: api_mac.h:754
ApiMac_sec_t sec
Definition: api_mac.h:2270
uint8_t keyUsageListEntries
Definition: api_mac.h:1330
Definition: api_mac.h:555
bool MPMScan
Definition: api_mac.h:1838
bool ffd
Definition: api_mac.h:1495
ApiMac_attribute_uint32_t
Definition: api_mac.h:834
Definition: api_mac.h:2248
Definition: api_mac.h:464
uint16_t NBPANEBeaconOrder
Definition: api_mac.h:1873
ApiMac_status_t ApiMac_mlmeSetFhReqUint8(ApiMac_FHAttribute_uint8_t pibAttribute, uint8_t value)
This direct execute function sets an attribute value in the MAC Frequency Hopping PIB...
Definition: api_mac.h:1426
Definition: api_mac.h:1690
ApiMac_securityAttribute_uint16_t
Definition: api_mac.h:891
Definition: api_mac.h:1199
Definition: api_mac.h:677
ApiMac_sAddrExt_t extAddress
Definition: api_mac.h:1352
Definition: api_mac.h:605
void(* ApiMac_pollIndFp_t)(ApiMac_mlmePollInd_t *pPollInd)
Definition: api_mac.h:2372
ApiMac_status_t ApiMac_secDeleteDevice(ApiMac_sAddrExt_t *pExtAddr)
Removes MAC device table entries.
ApiMac_attribute_uint8_t
Definition: api_mac.h:693
Definition: api_mac.h:727
Definition: api_mac.h:1201
ApiMac_frameCntr_t * frameCntr
Definition: api_mac.h:1392
Definition: api_mac.h:675
struct _apimac_mlmestartcnf ApiMac_mlmeStartCnf_t
uint8_t frameType
Definition: api_mac.h:1306
uint8_t * pIEIDs
Definition: api_mac.h:1879
ApiMac_status_t ApiMac_secAddKeyInitFrameCounter(ApiMac_secAddKeyInitFrameCounter_t *pInfo)
Adds the MAC security key, adds the associated lookup list for the key, initializes the frame counter...
Definition: api_mac.h:1292
Definition: api_mac.h:544
uint16_t keyIdx
Definition: api_mac.h:1379
ApiMac_status_t ApiMac_mlmeGetFhReqUint8(ApiMac_FHAttribute_uint8_t pibAttribute, uint8_t *pValue)
This direct execute function retrieves an attribute value from the MAC Frequency Hopping PIB...
Definition: api_mac.h:2292
uint32_t channelSpacing
Definition: api_mac.h:1250
ApiMac_keyIdLookupDescriptor_t lookupEntry
Definition: api_mac.h:1419
Definition: api_mac.h:615
bool useGreenPower
Definition: api_mac.h:1550
ApiMac_sAddr_t coordAddress
Definition: api_mac.h:1693
ApiMac_status_t
Definition: api_mac.h:449
uint16_t superframeSpec
Definition: api_mac.h:1705
ApiMac_status_t ApiMac_mlmeSetFhReqUint16(ApiMac_FHAttribute_uint16_t pibAttribute, uint16_t value)
This direct execute function sets an attribute value in the MAC Frequency Hopping PIB...
Definition: api_mac.h:441
struct _apimac_coexist ApiMac_coexist_t
ApiMac_status_t ApiMac_mlmeGetSecurityReqStruct(ApiMac_securityAttribute_struct_t pibAttribute, void *pValue)
This direct execute function retrieves an attribute value from the MAC Secutity PIB.
ApiMac_payloadIEGroup_t
Definition: api_mac.h:1097
struct _apimac_securitypiblevelentry ApiMac_securityPibSecurityLevelEntry_t
uint8_t superframeOrder
Definition: api_mac.h:1913
Definition: api_mac.h:577
Definition: api_mac.h:1091
Definition: api_mac.h:765
struct _apimac_mlmewsasynccnf ApiMac_mlmeWsAsyncCnf_t
Definition: api_mac.h:1243
void ApiMac_processIncoming(void)
Process incoming messages from the MAC stack.
uint16_t keyIndex
Definition: api_mac.h:1457
Definition: api_mac.h:1605
ApiMac_status_t ApiMac_mlmePollReq(ApiMac_mlmePollReq_t *pData)
This function is used to request pending data from the coordinator. When the poll request is complete...
Definition: api_mac.h:1857
Definition: api_mac.h:426
Definition: api_mac.h:1003
Definition: api_mac.h:758
Definition: api_mac.h:395
ApiMac_wsAsyncCnfFp_t pWsAsyncCnfCb
Definition: api_mac.h:2454
bool securityOverrideSecurityMinimum
Definition: api_mac.h:1372
struct _apimac_mlmecommstatusind ApiMac_mlmeCommStatusInd_t
uint16_t panID
Definition: api_mac.h:1973
ApiMac_status_t ApiMac_mlmeSetSecurityReqStruct(ApiMac_securityAttribute_struct_t pibAttribute, void *pValue)
This direct execute function sets an attribute value in the MAC Security PIB.
Definition: api_mac.h:2125
Definition: api_mac.h:607
ApiMac_sec_t sec
Definition: api_mac.h:1729
struct _apimac_keydevicedescriptor ApiMac_keyDeviceDescriptor_t
uint8_t linkQuality
Definition: api_mac.h:1825
ApiMac_sec_t sec
Definition: api_mac.h:2070
Definition: api_mac.h:752
ApiMac_MLMESubIE_t
Definition: api_mac.h:1110
Definition: api_mac.h:1113
Definition: api_mac.h:623
Definition: api_mac.h:477
Definition: api_mac.h:1025
Definition: api_mac.h:601
Definition: api_mac.h:2085
Definition: api_mac.h:1132
Definition: api_mac.h:1027
Definition: api_mac.h:1197
ApiMac_status_t ApiMac_mlmeGetSecurityReqArray(ApiMac_securityAttribute_array_t pibAttribute, uint8_t *pValue)
This direct execute function retrieves an attribute value from the MAC Secutity PIB.
void ApiMac_registerCallbacks(ApiMac_callbacks_t *pCallbacks)
Register for MAC callbacks.
struct _apimac_beacondata ApiMac_beaconData_t
uint8_t channelPage
Definition: api_mac.h:2240
Definition: api_mac.h:565
uint8_t keyIdLookupEntries
Definition: api_mac.h:1317
uint8_t dsn
Definition: api_mac.h:1637
ApiMac_beaconType_t beaconType
Definition: api_mac.h:2171
struct _apimac_txoptions ApiMac_txOptions_t
Definition: api_mac.h:1050
ApiMac_status_t ApiMac_mlmeSetReqUint8(ApiMac_attribute_uint8_t pibAttribute, uint8_t value)
This direct execute function sets an attribute value in the MAC PIB.
uint8_t keyIndex
Definition: api_mac.h:1403
void(* ApiMac_associateCnfFp_t)(ApiMac_mlmeAssociateCnf_t *pAssocCnf)
Definition: api_mac.h:2308
uint8_t channel
Definition: api_mac.h:1567
ApiMac_status_t ApiMac_mlmeScanReq(ApiMac_mlmeScanReq_t *pData)
This function initiates an energy detect, active, passive, or orphan scan on one or more channels...
struct _apimac_sec ApiMac_sec_t
uint8_t maxResults
Definition: api_mac.h:1815
ApiMac_scantype_t
Definition: api_mac.h:1138
Definition: api_mac.h:619
ApiMac_addrType_t addrMode
Definition: api_mac.h:1227
uint8_t keyUsageIndex
Definition: api_mac.h:1445
Definition: api_mac.h:499
uint8_t lookupDataSize
Definition: api_mac.h:2037
#define APIMAC_MAX_KEY_LOOKUP_LEN
Definition: api_mac.h:220
uint8_t * pIEContent
Definition: api_mac.h:1601
ApiMac_sAddr_t dstAddr
Definition: api_mac.h:2264
Definition: api_mac.h:1033
struct _apimac_payloadierec ApiMac_payloadIeRec_t
Definition: api_mac.h:739
ApiMac_sAddr_t srcAddr
Definition: api_mac.h:2277
void ApiMac_freeIEList(ApiMac_payloadIeRec_t *pList)
Free the linked list allocated by ApiMac_parsePayloadGroupIEs() or ApiMac_parsePayloadSubIEs().
struct _apimac_mlmepollreq ApiMac_mlmePollReq_t
uint8_t ieId
Definition: api_mac.h:1597
struct _apimac_mcpspurgecnf ApiMac_mcpsPurgeCnf_t
uint8_t phyID
Definition: api_mac.h:2242
uint8_t retries
Definition: api_mac.h:1669
struct _apimac_devicedescriptor ApiMac_deviceDescriptor_t
ApiMac_status_t ApiMac_mlmeGetFhReqArray(ApiMac_FHAttribute_array_t pibAttribute, uint8_t *pValue)
This direct execute function retrieves an attribute value from the MAC Frequency Hopping PIB...
uint16_t devicePanId
Definition: api_mac.h:1765
uint16_t keyDeviceIndex
Definition: api_mac.h:1431
Definition: api_mac.h:1490
uint8_t * pSdu
Definition: api_mac.h:2121
Definition: api_mac.h:1068
ApiMac_fhDispatchType_t fhProtoDispatch
Definition: api_mac.h:1645
ApiMac_status_t ApiMac_mlmeSetFhReqArray(ApiMac_FHAttribute_array_t pibAttribute, uint8_t *pValue)
This direct execute function sets an attribute value in the MAC Frequency Hopping PIB...
ApiMac_status_t ApiMac_mcpsPurgeReq(uint8_t msduHandle)
This function purges and discards a data request from the MAC data queue. When the operation is compl...
ApiMac_sec_t sec
Definition: api_mac.h:1649
Definition: api_mac.h:1614
Definition: api_mac.h:997
uint8_t logicalChannel
Definition: api_mac.h:2238
bool newKeyFlag
Definition: api_mac.h:2032
uint16_t coordPanId
Definition: api_mac.h:1695
void(* ApiMac_associateIndFp_t)(ApiMac_mlmeAssociateInd_t *pAssocInd)
Definition: api_mac.h:2302
uint16_t panId
Definition: api_mac.h:1897
Definition: api_mac.h:603
Definition: api_mac.h:546
Definition: api_mac.h:397
ApiMac_sAddrExt_t extAddr
Definition: api_mac.h:1223
uint8_t keyIdMode
Definition: api_mac.h:1277
void(* ApiMac_pollCnfFp_t)(ApiMac_mlmePollCnf_t *pPollCnf)
Definition: api_mac.h:2359
Definition: api_mac.h:594
Definition: api_mac.h:1888
Definition: api_mac.h:505
ApiMac_associateIndFp_t pAssocIndCb
Definition: api_mac.h:2422
ApiMac_status_t status
Definition: api_mac.h:1684
Definition: api_mac.h:494
uint32_t frameCounter
Definition: api_mac.h:1378
ApiMac_sAddr_t srcAddr
Definition: api_mac.h:1617
Definition: api_mac.h:1060
struct _apimac_mlmediassociatecnf ApiMac_mlmeDisassociateCnf_t
Definition: api_mac.h:570
ApiMac_sAddr_t coordAddress
Definition: api_mac.h:1737
Definition: api_mac.h:816
uint32_t frameCounter
Definition: api_mac.h:1405
ApiMac_status_t ApiMac_mlmeSetSecurityReqUint16(ApiMac_securityAttribute_uint16_t pibAttribute, uint16_t value)
This direct execute function sets an attribute value in the MAC Security PIB.
Definition: api_mac.h:563
Definition: api_mac.h:745
bool mainsPower
Definition: api_mac.h:1497
ApiMac_FHAttribute_uint16_t
Definition: api_mac.h:1012
ApiMac_sec_t sec
Definition: api_mac.h:1795
Definition: api_mac.h:867
ApiMac_securityAttribute_array_t
Definition: api_mac.h:905
ApiMac_fhFrameType_t fhFrameType
Definition: api_mac.h:1643
ApiMac_status_t status
Definition: api_mac.h:2088
Definition: api_mac.h:1017
struct _apimac_mlmepollcnf ApiMac_mlmePollCnf_t
uint16_t panId
Definition: api_mac.h:2236
ApiMac_disassocateReason_t disassociateReason
Definition: api_mac.h:1767
ApiMac_status_t ApiMac_mlmeSetSecurityReqUint8(ApiMac_securityAttribute_uint8_t pibAttribute, uint8_t value)
This direct execute function sets an attribute value in the MAC Security PIB.
Definition: api_mac.h:2102
ApiMac_FHAttribute_uint8_t
Definition: api_mac.h:982
uint32_t frameCounter
Definition: api_mac.h:1338
ApiMac_sec_t sec
Definition: api_mac.h:1957
ApiMac_sec_t sec
Definition: api_mac.h:2059
Definition: api_mac.h:1799
uint16_t shortAddr
Definition: api_mac.h:1975
Definition: api_mac.h:540
Definition: api_mac.h:1788
uint8_t logicalChannel
Definition: api_mac.h:1707
bool txIndirect
Definition: api_mac.h:1769
ApiMac_sec_t sec
Definition: api_mac.h:1584
void(* ApiMac_scanCnfFp_t)(ApiMac_mlmeScanCnf_t *pScanCnf)
Definition: api_mac.h:2341
Definition: api_mac.h:1134
Definition: api_mac.h:679
ApiMac_status_t ApiMac_mlmeGetReqArray(ApiMac_attribute_array_t pibAttribute, uint8_t *pValue)
This direct execute function retrieves an attribute value from the MAC PIB.
uint32_t frameCntr
Definition: api_mac.h:1647
void(* ApiMac_disassociateIndFp_t)(ApiMac_mlmeDisassociateInd_t *pDisassociateInd)
Definition: api_mac.h:2314
#define APIMAC_SADDR_EXT_LEN
Definition: api_mac.h:152
uint8_t eBeaconOrder
Definition: api_mac.h:1863
Definition: api_mac.h:710
uint8_t channelPage
Definition: api_mac.h:2206
bool panCoord
Definition: api_mac.h:1493
bool blackListed
Definition: api_mac.h:1299
Definition: api_mac.h:548
Definition: api_mac.h:1005
Definition: api_mac.h:1312
struct _apimac_mlmewsasyncreq ApiMac_mlmeWSAsyncReq_t
void ApiMac_buildMsgCapInfo(uint8_t cInfo, ApiMac_capabilityInfo_t *pPBcapInfo)
Convert from bitmask byte to API MAC capInfo.
struct _apimac_mrfskphydesc ApiMac_MRFSKPHYDesc_t
struct _apimac_mlmeassociatersp ApiMac_mlmeAssociateRsp_t
ApiMac_orphanIndFp_t pOrphanIndCb
Definition: api_mac.h:2432
Definition: api_mac.h:1383
ApiMac_status_t status
Definition: api_mac.h:2295
uint8_t keyIndex
Definition: api_mac.h:1279
ApiMac_coexist_t coexist
Definition: api_mac.h:2164
Definition: api_mac.h:1162
uint8_t numPendExtAddr
Definition: api_mac.h:2112
Definition: api_mac.h:1056
Definition: api_mac.h:708
uint8_t beaconOrder
Definition: api_mac.h:2130
uint16_t coordPanId
Definition: api_mac.h:1739
Definition: api_mac.h:1726
ApiMac_beaconData_t beacon
Definition: api_mac.h:2183
uint8_t phyId
Definition: api_mac.h:2208
ApiMac_addrType_t
Definition: api_mac.h:403
void(* ApiMac_wsAsyncCnfFp_t)(ApiMac_mlmeWsAsyncCnf_t *pWsAsyncCnf)
Definition: api_mac.h:2402
uint8_t MPMScanType
Definition: api_mac.h:1840
Definition: api_mac.h:501
uint8_t capBackOff
Definition: api_mac.h:2152
Definition: api_mac.h:1481
ApiMac_fhDispatchType_t fhProtoDispatch
Definition: api_mac.h:1578
ApiMac_attribute_uint16_t
Definition: api_mac.h:796
ApiMac_sAddr_t coordAddress
Definition: api_mac.h:1791
ApiMac_sec_t realignSec
Definition: api_mac.h:1928
ApiMac_wisunAsyncFrame_t frameType
Definition: api_mac.h:1961
Definition: api_mac.h:561
struct _apimac_pandesc ApiMac_panDesc_t
struct _apimac_secdevicedescriptor ApiMac_securityDeviceDescriptor_t
uint8_t logicalChannel
Definition: api_mac.h:1731
Definition: api_mac.h:517
Definition: api_mac.h:655
ApiMac_keyIdMode_t
Definition: api_mac.h:650
uint8_t ApiMac_convertCapabilityInfo(ApiMac_capabilityInfo_t *pMsgcapInfo)
Convert ApiMac_capabilityInfo_t data type to uint8 capInfo.
Definition: api_mac.h:458
Definition: api_mac.h:681
Definition: api_mac.h:737
ApiMac_disassocateReason_t
Definition: api_mac.h:423
ApiMac_txOptions_t txOptions
Definition: api_mac.h:1565
Definition: api_mac.h:617
ApiMac_status_t ApiMac_parsePayloadGroupIEs(uint8_t *pPayload, uint16_t payloadLen, ApiMac_payloadIeRec_t **pList)
Parses the Group payload information element. This function creates a linked list (plist) from the Pa...
ApiMac_status_t status
Definition: api_mac.h:2251
Definition: api_mac.h:527
uint16_t panId
Definition: api_mac.h:2098
Definition: api_mac.h:466
Definition: api_mac.h:583
uint16_t dstPanId
Definition: api_mac.h:1629
struct _apimac_mcpsdatacnf ApiMac_mcpsDataCnf_t
Definition: api_mac.h:989
uint8_t * pEnergyDetect
Definition: api_mac.h:2217
Definition: api_mac.h:671
bool ack
Definition: api_mac.h:1517
bool batteryLifeExt
Definition: api_mac.h:1921
ApiMac_sAddr_t srcAddr
Definition: api_mac.h:2262
Definition: api_mac.h:503
ApiMac_capabilityInfo_t capabilityInformation
Definition: api_mac.h:1741
uint16_t srcPanId
Definition: api_mac.h:2279
uint8_t phyID
Definition: api_mac.h:1810
Definition: api_mac.h:1007
uint8_t resultListSize
Definition: api_mac.h:2212
ApiMac_securityAttribute_uint8_t
Definition: api_mac.h:878
Definition: api_mac.h:1303
ApiMac_sAddrExt_t extAddr
Definition: api_mac.h:1977
Definition: api_mac.h:731
ApiMac_status_t ApiMac_mlmeSetReqArray(ApiMac_attribute_array_t pibAttribute, uint8_t *pValue)
This direct execute function sets an attribute value in the MAC PIB.
ApiMac_sAddrExt_t orphanAddress
Definition: api_mac.h:1778
Definition: api_mac.h:874
uint16_t ieContentLen
Definition: api_mac.h:1599
void(* ApiMac_unprocessedFp_t)(uint16_t param1, uint16_t param2, void *pMsg)
Definition: api_mac.h:2409
uint8_t ApiMac_sAddrExt_t[APIMAC_SADDR_EXT_LEN]
Definition: api_mac.h:1209
Definition: api_mac.h:1681
ApiMac_syncLossIndFp_t pSyncLossIndCb
Definition: api_mac.h:2438
Definition: api_mac.h:844
Definition: api_mac.h:1231
struct _apimac_ebeacondata ApiMac_eBeaconData_t
Definition: api_mac.h:599
ApiMac_status_t ApiMac_mlmeGetReqUint32(ApiMac_attribute_uint32_t pibAttribute, uint32_t *pValue)
This direct execute function retrieves an attribute value from the MAC PIB.
Definition: api_mac.h:408
uint16_t keyIndex
Definition: api_mac.h:1415
uint16_t shortAddress
Definition: api_mac.h:1347
uint8_t correlation
Definition: api_mac.h:1673
void(* ApiMac_orphanIndFp_t)(ApiMac_mlmeOrphanInd_t *pOrphanInd)
Definition: api_mac.h:2335
uint8_t fskModScheme
Definition: api_mac.h:1252
Definition: api_mac.h:701
ApiMac_addrType_t srcAddrMode
Definition: api_mac.h:1561
uint16_t eBeaconOrderNBPAN
Definition: api_mac.h:2157
Definition: api_mac.h:999
uint16_t dstPanId
Definition: api_mac.h:1559
Definition: api_mac.h:1454
uint16_t keyDeviceListEntries
Definition: api_mac.h:1325
ApiMac_fhDispatchType_t
Definition: api_mac.h:1194
#define APIMAC_KEY_MAX_LEN
Definition: api_mac.h:149
uint16_t len
Definition: api_mac.h:1236
uint8_t numPendShortAddr
Definition: api_mac.h:2105
uint16_t panID
Definition: api_mac.h:1345
Definition: api_mac.h:454
Definition: api_mac.h:666
uint8_t channelPage
Definition: api_mac.h:1907
ApiMac_eBeaconData_t eBeacon
Definition: api_mac.h:2185
struct _apimac_securitypibkeyidlookupentry ApiMac_securityPibKeyIdLookupEntry_t
Definition: api_mac.h:653
uint16_t panId
Definition: api_mac.h:2266
struct _apimac_mpmParams ApiMac_mpmParams_t
ApiMac_securityAttribute_struct_t
Definition: api_mac.h:916
Definition: api_mac.h:484
struct _apimac_secaddkeyinitframecounter ApiMac_secAddKeyInitFrameCounter_t
Definition: api_mac.h:1019
Definition: api_mac.h:2168
bool pendingBit
Definition: api_mac.h:1528
struct _apimac_mlmepollind ApiMac_mlmePollInd_t
ApiMac_securityDeviceDescriptor_t deviceEntry
Definition: api_mac.h:1473
uint8_t logicalChannel
Definition: api_mac.h:1902
Definition: api_mac.h:1177
Definition: api_mac.h:2274
Definition: api_mac.h:1592
struct _apimac_mlmescanreq ApiMac_mlmeScanReq_t
Definition: api_mac.h:1029
Definition: api_mac.h:1151
uint8_t gpDuration
Definition: api_mac.h:1588
bool uniqueDevice
Definition: api_mac.h:1297
Definition: api_mac.h:634
Definition: api_mac.h:1468
Definition: api_mac.h:776
void(* ApiMac_commStatusIndFp_t)(ApiMac_mlmeCommStatusInd_t *pCommStatus)
Definition: api_mac.h:2365
ApiMac_sAddr_t dstAddr
Definition: api_mac.h:1557
struct _apimac_mcpsdataind ApiMac_mcpsDataInd_t
© Copyright 1995-2024, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale