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  #define MAX_KEY_TABLE_ENTRIES 2
158  #endif
159 
160  #ifndef MAX_SECURITY_LEVEL_TABLE_ENTRIES
161  #define MAX_SECURITY_LEVEL_TABLE_ENTRIES 2
162  #endif
163 
164  /* MAC key table related constants */
165  #ifndef MAX_KEY_ID_LOOKUP_ENTRIES
166  #define MAX_KEY_ID_LOOKUP_ENTRIES 1
167  #endif
168 
169  #ifndef MAX_KEY_DEVICE_TABLE_ENTRIES
170  #define MAX_KEY_DEVICE_TABLE_ENTRIES MAX_DEVICE_TABLE_ENTRIES
171  #endif
172 
173  /*Max keys/node */
174  #ifndef MAX_NODE_KEY_ENTRIES
175  #define MAX_NODE_KEY_ENTRIES 1
176  #endif
177 
178  #ifndef MAX_KEY_USAGE_TABLE_ENTRIES
179  #define MAX_KEY_USAGE_TABLE_ENTRIES 2
180  #endif
181 
183 #define APIMAC_MAX_KEY_TABLE_ENTRIES MAX_KEY_TABLE_ENTRIES
184 
186 #define API_MAX_NODE_KEY_ENTRIES MAX_NODE_KEY_ENTRIES
187 
189 #define APIMAC_KEYID_IMPLICIT_LEN 0
190 
191 #define APIMAC_KEYID_MODE1_LEN 1
192 
193 #define APIMAC_KEYID_MODE4_LEN 5
194 
195 #define APIMAC_KEYID_MODE8_LEN 9
196 
198 #define APIMAC_KEY_SOURCE_MAX_LEN 8
199 
201 #define APIMAC_KEY_INDEX_LEN 1
202 
204 #define APIMAC_FRAME_COUNTER_LEN 4
205 
207 #define APIMAC_KEY_LOOKUP_SHORT_LEN 5
208 
209 #define APIMAC_KEY_LOOKUP_LONG_LEN 9
210 
211 #define APIMAC_MAX_KEY_LOOKUP_LEN APIMAC_KEY_LOOKUP_LONG_LEN
212 
214 #define APIMAC_DATA_OFFSET 24
215 
217 #define APIMAC_MAX_BEACON_PAYLOAD 16
218 
220 #define APIMAC_MIC_32_LEN 4
221 
222 #define APIMAC_MIC_64_LEN 8
223 
224 #define APIMAC_MIC_128_LEN 16
225 
230 #define APIMAC_MHR_LEN 37
231 
233 #define APIMAC_CHANNEL_PAGE_9 9
234 
235 #define APIMAC_CHANNEL_PAGE_10 10
236 
237 #define APIMAC_CHANNEL_PAGE_NONE 0
238 
240 #define APIMAC_STANDARD_PHY_DESCRIPTOR_ENTRIES 5
241 
242 #define APIMAC_GENERIC_PHY_DESCRIPTOR_ENTRIES 10
243 
245  #define APIMAC_STD_US_915_PHY_1 1
246 
247  #define APIMAC_STD_ETSI_863_PHY_3 3
248 
249  #define APIMAC_GENERIC_CHINA_433_PHY_128 128
250 
251  #define APIMAC_GENERIC_US_LRM_915_PHY_129 129
252 
253  #define APIMAC_GENERIC_CHINA_LRM_433_PHY_130 130
254 
255  #define APIMAC_GENERIC_ETSI_LRM_863_PHY_131 131
256 
257 #define APIMAC_GENERIC_US_915_PHY_132 132
258 
259 #define APIMAC_GENERIC_ETSI_863_PHY_133 133
260 
261 #define APIMAC_PHY_ID_NONE 0
262 
263 #define APIMAC_MRFSK_GENERIC_PHY_ID_BEGIN APIMAC_GENERIC_CHINA_433_PHY_128
264 
265 #define APIMAC_MRFSK_GENERIC_PHY_ID_END ( APIMAC_MRFSK_GENERIC_PHY_ID_BEGIN + APIMAC_GENERIC_PHY_DESCRIPTOR_ENTRIES - 1 )
266 
268 #define APIMAC_MRFSK_STD_PHY_ID_BEGIN APIMAC_STD_US_915_PHY_1
269 
270 #define APIMAC_MRFSK_STD_PHY_ID_END ( APIMAC_MRFSK_STD_PHY_ID_BEGIN + APIMAC_STANDARD_PHY_DESCRIPTOR_ENTRIES - 1 )
271 
273 #define APIMAC_PHY_DESCRIPTOR 0x01
274 
276 #define APIMAC_NO_EXTENDER 0x00
277 
278 #define APIMAC_HIGH_GAIN_MODE 0x01
279 
281 #define APIMAC_DEFAULT_PA 0x00
282 
283 #define APIMAC_HIGH_PA 0x01
284 
289 #define APIMAC_ADDR_USE_EXT 0xFFFE
290 
291 #define APIMAC_SHORT_ADDR_BROADCAST 0xFFFF
292 
293 #define APIMAC_SHORT_ADDR_NONE 0xFFFF
294 
296 #define APIMAC_RANDOM_SEED_LEN 32
297 
299 #define APIMAC_FH_UTT_IE 0x00000002
300 
301 #define APIMAC_FH_BT_IE 0x00000008
302 
303 #define APIMAC_FH_US_IE 0x00010000
304 
305 #define APIMAC_FH_BS_IE 0x00020000
306 
308 #define APIMAC_FH_HEADER_IE_MASK 0x000000FF
309 
313 #define APIMAC_FH_PROTO_DISPATCH_NONE 0x00
314 
317 #define APIMAC_FH_PROTO_DISPATCH_MHD_PDU 0x01
318 
321 #define APIMAC_FH_PROTO_DISPATCH_6LOWPAN 0x02
322 
324 #define APIMAC_154G_MAX_NUM_CHANNEL 129
325 
327 #define APIMAC_154G_CHANNEL_BITMAP_SIZ \
328  ((APIMAC_154G_MAX_NUM_CHANNEL + 7) / 8)
329 
331 #define APIMAC_HEADER_IE_MAX 2
332 
333 #define APIMAC_PAYLOAD_IE_MAX 2
334 
335 #define APIMAC_PAYLOAD_SUB_IE_MAX 4
336 
340 #define APIMAC_SFS_BEACON_ORDER(s) ((s) & 0x0F)
341 
345 #define APIMAC_SFS_SUPERFRAME_ORDER(s) (((s) >> 4) & 0x0F)
346 
350 #define APIMAC_SFS_FINAL_CAP_SLOT(s) (((s) >> 8) & 0x0F)
351 
356 #define APIMAC_SFS_BLE(s) (((s) >> 12) & 0x01)
357 
361 #define APIMAC_SFS_PAN_COORDINATOR(s) (((s) >> 14) & 0x01)
362 
367 #define APIMAC_SFS_ASSOCIATION_PERMIT(s) (((s) >> 15) & 0x01)
368 
370 #define APIMAC_FH_MAX_BIT_MAP_SIZE 32
371 
373 #define APIMAC_FH_NET_NAME_SIZE_MAX 32
374 
376 #define APIMAC_FH_GTK_HASH_SIZE 8
377 
379 typedef enum
380 {
388 
392 typedef enum
393 {
401 
403 typedef enum
404 {
410 
412 typedef enum
413 {
419 
421 typedef enum
422 {
436 
438 typedef enum
439 {
616 
618 typedef enum
619 {
637 
639 typedef enum
640 {
650 
652 typedef enum
653 {
680 
682 typedef enum
683 {
783 
785 typedef enum
786 {
820 
821 
823 typedef enum
824 {
851 
853 typedef enum
854 {
865 
867 typedef enum
868 {
878 
880 typedef enum
881 {
884 
887 
890 
892 
894 typedef enum
895 {
903 
905 typedef enum
906 {
969 
971 typedef enum
972 {
997 
999 
1001 typedef enum
1002 {
1023 
1025 
1027 typedef enum
1028 {
1034 
1036 typedef enum
1037 {
1063 
1065 typedef enum
1066 {
1084 
1086 typedef enum
1087 {
1097 
1099 typedef enum
1100 {
1108 
1110 typedef enum
1111 {
1125 
1127 typedef enum
1128 {
1159 
1161 typedef enum
1162 {
1168 
1170 typedef enum
1171 {
1181 
1183 typedef enum
1184 {
1192 
1193 /******************************************************************************
1194  Structures - Building blocks for the API for the MAC Module
1195  *****************************************************************************/
1196 
1199 
1201 typedef struct
1202 {
1207  union
1208  {
1210  uint16_t shortAddr;
1212  ApiMac_sAddrExt_t extAddr;
1213  } addr;
1214 
1217 } ApiMac_sAddr_t;
1218 
1220 typedef struct _apimac_sdata
1221 {
1223  uint8_t *p;
1225  uint16_t len;
1226 } ApiMac_sData_t;
1227 
1232 typedef struct _apimac_mrfskphydesc
1233 {
1237  uint16_t numChannels;
1239  uint32_t channelSpacing;
1241  uint8_t fskModScheme;
1243  uint16_t symbolRate;
1253  uint8_t fskModIndex;
1255  uint8_t ccaType;
1257 
1259 typedef struct _apimac_sec
1260 {
1262  uint8_t keySource[APIMAC_KEY_SOURCE_MAX_LEN];
1264  uint8_t securityLevel;
1266  uint8_t keyIdMode;
1268  uint8_t keyIndex;
1269 } ApiMac_sec_t;
1270 
1273 {
1275  uint8_t lookupData[APIMAC_MAX_KEY_LOOKUP_LEN];
1279 
1282 {
1290 
1293 {
1295  uint8_t frameType;
1297  uint8_t cmdFrameId;
1299 
1302 {
1312 
1315 
1321  uint8_t key[APIMAC_KEY_MAX_LEN];
1327  uint32_t frameCounter;
1329 
1332 {
1334  uint16_t panID;
1336  uint16_t shortAddress;
1341  ApiMac_sAddrExt_t extAddress;
1343 
1346 {
1348  uint8_t frameType;
1363 
1365 typedef struct
1366 {
1367  uint32_t frameCounter;
1368  uint16_t keyIdx;
1370 
1373 {
1383  bool exempt;
1385 
1388 {
1390  uint8_t keyEntry[APIMAC_KEY_MAX_LEN];
1392  uint8_t keyIndex;
1394  uint32_t frameCounter;
1396 
1402 {
1404  uint16_t keyIndex;
1410 
1416 {
1418  uint16_t keyIndex;
1420  uint16_t keyDeviceIndex;
1424 
1430 {
1432  uint16_t keyIndex;
1434  uint8_t keyUsageIndex;
1438 
1444 {
1446  uint16_t keyIndex;
1448  uint8_t keyEntry[APIMAC_KEY_MAX_LEN];
1450  uint32_t frameCounter;
1452 
1458 {
1460  uint16_t deviceIndex;
1464 
1465 
1471 {
1473  uint8_t levelIndex;
1477 
1480 {
1482  bool panCoord;
1484  bool ffd;
1491  bool security;
1498 
1500 typedef struct _apimac_txoptions
1501 {
1506  bool ack;
1512  bool indirect;
1530  bool useAltBE;
1541 
1543 typedef struct _apimac_mcpsdatareq
1544 {
1548  uint16_t dstPanId;
1552  uint8_t msduHandle;
1556  uint8_t channel;
1558  uint8_t power;
1560  uint8_t *pIEList;
1562  uint16_t payloadIELen;
1569  uint32_t includeFhIEs;
1575  uint8_t gpOffset;
1577  uint8_t gpDuration;
1579 
1582 {
1586  uint8_t ieId;
1588  uint16_t ieContentLen;
1590  uint8_t *pIEContent;
1592 
1594 typedef struct _apimac_payloadierec
1595 {
1597  void *pNext;
1601 
1603 typedef struct _apimac_mcpsdataind
1604 {
1610  uint32_t timestamp;
1614  uint16_t timestamp2;
1616  uint16_t srcPanId;
1618  uint16_t dstPanId;
1622  uint8_t correlation;
1624  int8_t rssi;
1626  uint8_t dsn;
1628  uint16_t payloadIeLen;
1630  uint8_t *pPayloadIE;
1636  uint32_t frameCntr;
1642 
1644 typedef struct _apimac_mcpsdatacnf
1645 {
1649  uint8_t msduHandle;
1651  uint32_t timestamp;
1656  uint16_t timestamp2;
1658  uint8_t retries;
1662  uint8_t correlation;
1664  int8_t rssi;
1666  uint32_t frameCntr;
1668 
1670 typedef struct _apimac_mcpspurgecnf
1671 {
1675  uint8_t msduHandle;
1677 
1679 typedef struct _apimac_pandesc
1680 {
1684  uint16_t coordPanId;
1694  uint16_t superframeSpec;
1698  uint8_t channelPage;
1705  uint8_t linkQuality;
1707  uint32_t timestamp;
1713 
1716 {
1722  uint8_t channelPage;
1724  uint8_t phyID;
1728  uint16_t coordPanId;
1732 
1735 {
1739  ApiMac_sAddrExt_t deviceAddress;
1745 
1748 {
1754  uint16_t devicePanId;
1760 
1763 {
1767  ApiMac_sAddrExt_t orphanAddress;
1769  uint16_t shortAddress;
1775 
1777 typedef struct _apimac_mlmepollreq
1778 {
1782  uint16_t coordPanId;
1786 
1788 typedef struct _apimac_mlmescanreq
1789 {
1791  uint8_t scanChannels[APIMAC_154G_CHANNEL_BITMAP_SIZ];
1795  uint8_t scanDuration;
1797  uint8_t channelPage;
1799  uint8_t phyID;
1804  uint8_t maxResults;
1814  uint8_t linkQuality;
1820  uint8_t percentFilter;
1827  bool MPMScan;
1829  uint8_t MPMScanType;
1844 
1846 typedef struct _apimac_mpmParams
1847 {
1852  uint8_t eBeaconOrder;
1868  uint8_t *pIEIDs;
1873  uint8_t numIEs;
1875 
1877 typedef struct _apimac_mlmestartreq
1878 {
1882  uint32_t startTime;
1886  uint16_t panId;
1896  uint8_t channelPage;
1898  uint8_t phyID;
1900  uint8_t beaconOrder;
1923  bool startFH;
1925 
1927 typedef struct _apimac_mlmesyncreq
1928 {
1932  uint8_t channelPage;
1934  uint8_t phyID;
1939  uint8_t trackBeacon;
1941 
1944 {
1957 
1959 typedef struct _apimac_secadddevice
1960 {
1962  uint16_t panID;
1964  uint16_t shortAddr;
1966  ApiMac_sAddrExt_t extAddr;
1972  bool exempt;
1982  uint8_t keyIdLookupData[APIMAC_MAX_KEY_LOOKUP_LEN];
1984  uint32_t frameCounter;
1997 
2000 {
2002  uint8_t key[APIMAC_KEY_MAX_LEN];
2004  uint32_t frameCounter;
2011 
2029  uint8_t lookupData[APIMAC_MAX_KEY_LOOKUP_LEN];
2031 
2034 {
2036  ApiMac_sAddrExt_t deviceAddress;
2042 
2045 {
2053 
2056 {
2058  ApiMac_sAddrExt_t deviceAddress;
2064 
2067 {
2079  uint16_t panId;
2081 
2083 typedef struct _apimac_beacondata
2084 {
2091  uint16_t *pShortAddrList;
2098  uint8_t *pExtAddrList;
2100  uint8_t sduLength;
2102  uint8_t *pSdu;
2104 
2106 typedef struct _apimac_coexist
2107 {
2111  uint8_t beaconOrder;
2119  uint8_t finalCapSlot;
2124  uint8_t eBeaconOrder;
2133  uint8_t capBackOff;
2140 
2142 typedef struct _apimac_ebeacondata
2143 {
2147 
2149 typedef struct
2150 {
2154  uint8_t bsn;
2161  union
2162  {
2167  } beaconData;
2169 
2172 {
2174  ApiMac_sAddrExt_t orphanAddress;
2178 
2180 typedef struct _apimac_mlmescancnf
2181 {
2187  uint8_t channelPage;
2189  uint8_t phyId;
2191  uint8_t unscannedChannels[APIMAC_154G_CHANNEL_BITMAP_SIZ];
2195  union
2196  {
2198  uint8_t *pEnergyDetect;
2201  } result;
2203 
2205 typedef struct _apimac_mlmestartcnf
2206 {
2210 
2213 {
2217  uint16_t panId;
2221  uint8_t channelPage;
2223  uint8_t phyID;
2227 
2229 typedef struct _apimac_mlmepollcnf
2230 {
2234  uint8_t framePending;
2236 
2239 {
2247  uint16_t panId;
2253 
2255 typedef struct _apimac_mlmepollind
2256 {
2260  uint16_t srcPanId;
2266  bool noRsp;
2268 
2271 
2274 {
2278 
2284 
2290 
2296  ApiMac_mlmeDisassociateInd_t *pDisassociateInd);
2297 
2303  ApiMac_mlmeDisassociateCnf_t *pDisassociateCnf);
2304 
2310  ApiMac_mlmeBeaconNotifyInd_t *pBeaconNotifyInd);
2311 
2316 typedef void (*ApiMac_orphanIndFp_t)(ApiMac_mlmeOrphanInd_t *pOrphanInd);
2317 
2322 typedef void (*ApiMac_scanCnfFp_t)(ApiMac_mlmeScanCnf_t *pScanCnf);
2323 
2328 typedef void (*ApiMac_startCnfFp_t)(ApiMac_mlmeStartCnf_t *pStartCnf);
2329 
2334 typedef void (*ApiMac_syncLossIndFp_t)(ApiMac_mlmeSyncLossInd_t *pSyncLossInd);
2335 
2340 typedef void (*ApiMac_pollCnfFp_t)(ApiMac_mlmePollCnf_t *pPollCnf);
2341 
2347  ApiMac_mlmeCommStatusInd_t *pCommStatus);
2348 
2353 typedef void (*ApiMac_pollIndFp_t)(ApiMac_mlmePollInd_t *pPollInd);
2354 
2359 typedef void (*ApiMac_dataCnfFp_t)(ApiMac_mcpsDataCnf_t *pDataCnf);
2360 
2365 typedef void (*ApiMac_dataIndFp_t)(ApiMac_mcpsDataInd_t *pDataInd);
2366 
2371 typedef void (*ApiMac_purgeCnfFp_t)(ApiMac_mcpsPurgeCnf_t *pPurgeCnf);
2372 
2377 typedef void (*ApiMac_wsAsyncIndFp_t)(ApiMac_mlmeWsAsyncInd_t *pWsAsyncInd);
2378 
2383 typedef void (*ApiMac_wsAsyncCnfFp_t)(ApiMac_mlmeWsAsyncCnf_t *pWsAsyncCnf);
2384 
2390 typedef void (*ApiMac_unprocessedFp_t)(uint16_t param1, uint16_t param2,
2391  void *pMsg);
2392 
2400 typedef struct _apimac_callbacks
2401 {
2439 
2440 /******************************************************************************
2441  Function Prototypes
2442  *****************************************************************************/
2443 
2451 extern void *ApiMac_init(bool enableFH);
2452 
2458 extern void ApiMac_registerCallbacks(ApiMac_callbacks_t *pCallbacks);
2459 
2463 extern void ApiMac_processIncoming(void);
2464 
2491 
2506 extern ApiMac_status_t ApiMac_mcpsPurgeReq(uint8_t msduHandle);
2507 
2529  ApiMac_mlmeAssociateReq_t *pData);
2530 
2549  ApiMac_mlmeAssociateRsp_t *pData);
2550 
2569 
2580  ApiMac_attribute_bool_t pibAttribute,
2581  bool *pValue);
2582 
2593  ApiMac_attribute_uint8_t pibAttribute,
2594  uint8_t *pValue);
2595 
2606  ApiMac_attribute_uint16_t pibAttribute,
2607  uint16_t *pValue);
2608 
2619  ApiMac_attribute_uint32_t pibAttribute,
2620  uint32_t *pValue);
2621 
2632  ApiMac_attribute_array_t pibAttribute,
2633  uint8_t *pValue);
2634 
2649  ApiMac_FHAttribute_uint8_t pibAttribute, uint8_t *pValue);
2650 
2665  ApiMac_FHAttribute_uint16_t pibAttribute, uint16_t *pValue);
2666 
2681  ApiMac_FHAttribute_uint32_t pibAttribute, uint32_t *pValue);
2682 
2697  ApiMac_FHAttribute_array_t pibAttribute, uint8_t *pValue);
2698 
2713  ApiMac_securityAttribute_uint8_t pibAttribute, uint8_t *pValue);
2714 
2729  ApiMac_securityAttribute_uint16_t pibAttribute, uint16_t *pValue);
2730 
2745  ApiMac_securityAttribute_array_t pibAttribute, uint8_t *pValue);
2746 
2761  ApiMac_securityAttribute_struct_t pibAttribute, void *pValue);
2762 
2783 
2804 
2816 extern ApiMac_status_t ApiMac_mlmeResetReq(bool setDefaultPib);
2817 
2872 
2883  ApiMac_attribute_bool_t pibAttribute,
2884  bool value);
2885 
2896  ApiMac_attribute_uint8_t pibAttribute,
2897  uint8_t value);
2898 
2909  ApiMac_attribute_uint16_t pibAttribute,
2910  uint16_t value);
2911 
2922  ApiMac_attribute_uint32_t pibAttribute,
2923  uint32_t value);
2924 
2935  ApiMac_attribute_array_t pibAttribute,
2936  uint8_t *pValue);
2937 
2952  ApiMac_FHAttribute_uint8_t pibAttribute, uint8_t value);
2953 
2968  ApiMac_FHAttribute_uint16_t pibAttribute, uint16_t value);
2969 
2984  ApiMac_FHAttribute_uint32_t pibAttribute, uint32_t value);
2985 
3000  ApiMac_FHAttribute_array_t pibAttribute, uint8_t *pValue);
3001 
3016  ApiMac_securityAttribute_uint8_t pibAttribute, uint8_t value);
3017 
3032  ApiMac_securityAttribute_uint16_t pibAttribute, uint16_t value);
3033 
3048  ApiMac_securityAttribute_array_t pibAttribute, uint8_t *pValue);
3049 
3064  ApiMac_securityAttribute_struct_t pibAttribute, void *pValue);
3065 
3100 
3142 
3149 extern uint8_t ApiMac_randomByte(void);
3150 
3162 extern ApiMac_status_t ApiMac_updatePanId(uint16_t panId);
3163 
3164 #if defined(COMBO_MAC) || defined(FREQ_2_4G)
3165 
3174 extern ApiMac_status_t ApiMac_srcMatchEnable(void);
3175 #endif
3176 
3193 
3207 extern ApiMac_status_t ApiMac_startFH(void);
3208 
3239  uint8_t *pPayload, uint16_t payloadLen,
3240  ApiMac_payloadIeRec_t **pList);
3241 
3269 extern ApiMac_status_t ApiMac_parsePayloadSubIEs(uint8_t *pContent,
3270  uint16_t contentLen,
3271  ApiMac_payloadIeRec_t **pList);
3272 
3279 extern void ApiMac_freeIEList(ApiMac_payloadIeRec_t *pList);
3280 
3293 extern ApiMac_status_t ApiMac_enableFH(void);
3294 
3302 extern uint8_t ApiMac_convertCapabilityInfo(
3303  ApiMac_capabilityInfo_t *pMsgcapInfo);
3304 
3311 extern void ApiMac_buildMsgCapInfo(uint8_t cInfo,
3312  ApiMac_capabilityInfo_t *pPBcapInfo);
3313 
3323 
3333 extern ApiMac_status_t ApiMac_secDeleteDevice(ApiMac_sAddrExt_t *pExtAddr);
3334 
3347 extern ApiMac_status_t ApiMac_secDeleteKeyAndAssocDevices(uint8_t keyIndex);
3348 
3356 
3369 extern ApiMac_status_t ApiMac_secGetDefaultSourceKey(uint8_t keyId,
3370  uint32_t *pFrameCounter);
3371 
3387 
3388 #ifdef __cplusplus
3389 }
3390 #endif
3391 
3392 #endif /* API_MAC_H */
3393 
uint8_t keyIdLookupIndex
Definition: api_mac.h:1406
Definition: api_mac.h:1177
ApiMac_sec_t sec
Definition: api_mac.h:2225
struct _apimac_mlmescancnf ApiMac_mlmeScanCnf_t
Definition: api_mac.h:2212
ApiMac_sec_t sec
Definition: api_mac.h:2176
void(* ApiMac_beaconNotifyIndFp_t)(ApiMac_mlmeBeaconNotifyInd_t *pBeaconNotifyInd)
Definition: api_mac.h:2309
bool panCoordinator
Definition: api_mac.h:1904
uint8_t ApiMac_randomByte(void)
This function returns a random byte from the MAC random number generator.
Definition: api_mac.h:1201
void(* ApiMac_dataCnfFp_t)(ApiMac_mcpsDataCnf_t *pDataCnf)
Definition: api_mac.h:2359
Definition: api_mac.h:1959
Definition: api_mac.h:399
ApiMac_keyDeviceDescriptor_t * keyDeviceList
Definition: api_mac.h:1311
struct _apimac_callbacks ApiMac_callbacks_t
Definition: api_mac.h:449
ApiMac_secLevel_t
Definition: api_mac.h:618
struct _apimac_mlmesyncreq ApiMac_mlmeSyncReq_t
struct _apimac_securitypibkeyentry ApiMac_securityPibKeyEntry_t
Definition: api_mac.h:627
Definition: api_mac.h:2033
ApiMac_assocStatus_t
Definition: api_mac.h:379
Definition: api_mac.h:1082
int8_t rssi
Definition: api_mac.h:1624
ApiMac_sec_t sec
Definition: api_mac.h:1765
ApiMac_disassociateIndFp_t pDisassociateIndCb
Definition: api_mac.h:2407
uint16_t timestamp2
Definition: api_mac.h:1656
Definition: api_mac.h:949
bool exempt
Definition: api_mac.h:1383
uint8_t phyID
Definition: api_mac.h:1898
Definition: api_mac.h:1117
bool rxOnWhenIdle
Definition: api_mac.h:1488
struct _apimac_mlmeassociateind ApiMac_mlmeAssociateInd_t
Definition: api_mac.h:598
ApiMac_sec_t sec
Definition: api_mac.h:2062
Definition: api_mac.h:1543
ApiMac_mpmParams_t mpmParams
Definition: api_mac.h:1921
Definition: api_mac.h:1119
uint8_t * pPayloadIE
Definition: api_mac.h:1630
Definition: api_mac.h:579
Definition: api_mac.h:417
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:434
Definition: api_mac.h:468
Definition: api_mac.h:839
Definition: api_mac.h:792
uint32_t frameCounter
Definition: api_mac.h:1450
Definition: api_mac.h:837
uint8_t * pExtAddrList
Definition: api_mac.h:2098
ApiMac_scanCnfFp_t pScanCnfCb
Definition: api_mac.h:2415
uint8_t channelPage
Definition: api_mac.h:1797
uint8_t mpduLinkQuality
Definition: api_mac.h:1620
#define APIMAC_154G_CHANNEL_BITMAP_SIZ
Definition: api_mac.h:327
Definition: api_mac.h:2171
Definition: api_mac.h:1072
bool indirect
Definition: api_mac.h:1512
struct _apimac_mlmesynclossind ApiMac_mlmeSyncLossInd_t
Definition: api_mac.h:426
bool ieTypeLong
Definition: api_mac.h:1584
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:2270
bool usePowerAndChannel
Definition: api_mac.h:1535
Definition: api_mac.h:732
Definition: api_mac.h:1032
ApiMac_status_t status
Definition: api_mac.h:2241
Definition: api_mac.h:518
uint32_t startTime
Definition: api_mac.h:1882
Definition: api_mac.h:1331
struct _apimac_securitypibkeyusageentry ApiMac_securityPibKeyUsageEntry_t
Definition: api_mac.h:913
uint32_t firstChCentrFreq
Definition: api_mac.h:1235
Definition: api_mac.h:1387
Definition: api_mac.h:527
Definition: api_mac.h:1734
ApiMac_wsAsyncIndFp_t pWsAsyncIndCb
Definition: api_mac.h:2433
uint8_t cmdFrameId
Definition: api_mac.h:1297
struct _apimac_securityleveldescriptor ApiMac_securityLevelDescriptor_t
ApiMac_beaconType_t
Definition: api_mac.h:403
uint8_t levelIndex
Definition: api_mac.h:1473
uint32_t timestamp
Definition: api_mac.h:1610
Definition: api_mac.h:1115
bool associatedMember
Definition: api_mac.h:1773
uint16_t * pShortAddrList
Definition: api_mac.h:2091
ApiMac_fhFrameType_t
Definition: api_mac.h:1065
ApiMac_status_t ApiMac_startFH(void)
This function starts the frequency hopping. Frequency hopping operation should have been enabled usin...
Definition: api_mac.h:610
bool coordRealignment
Definition: api_mac.h:1915
Definition: api_mac.h:441
uint32_t frameCounter
Definition: api_mac.h:1984
struct _apimac_mlmeorphanrsp ApiMac_mlmeOrphanRsp_t
uint8_t offsetTimeSlot
Definition: api_mac.h:2128
Definition: api_mac.h:1157
ApiMac_keyIdLookupDescriptor_t * keyIdLookupList
Definition: api_mac.h:1304
void(* ApiMac_wsAsyncIndFp_t)(ApiMac_mlmeWsAsyncInd_t *pWsAsyncInd)
Definition: api_mac.h:2377
uint8_t msduHandle
Definition: api_mac.h:1675
void(* ApiMac_syncLossIndFp_t)(ApiMac_mlmeSyncLossInd_t *pSyncLossInd)
Definition: api_mac.h:2334
struct _apimac_keyidlookupdescriptor ApiMac_keyIdLookupDescriptor_t
struct _apimac_capabilityinfo ApiMac_capabilityInfo_t
uint8_t fskModIndex
Definition: api_mac.h:1253
Definition: api_mac.h:1070
uint8_t securityMinimum
Definition: api_mac.h:1354
#define APIMAC_KEY_SOURCE_MAX_LEN
Definition: api_mac.h:198
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:2100
uint16_t srcPanId
Definition: api_mac.h:1616
Definition: api_mac.h:831
Definition: api_mac.h:2142
Definition: api_mac.h:2238
bool noRsp
Definition: api_mac.h:2266
ApiMac_beaconNotifyIndFp_t pBeaconNotifyIndCb
Definition: api_mac.h:2411
Definition: api_mac.h:773
Definition: api_mac.h:1078
void(* ApiMac_disassociateCnfFp_t)(ApiMac_mlmeDisassociateCnf_t *pDisassociateCnf)
Definition: api_mac.h:2302
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:2156
Definition: api_mac.h:1500
Definition: api_mac.h:818
Definition: api_mac.h:478
uint16_t deviceIndex
Definition: api_mac.h:1460
struct _apimac_payloadieitem ApiMac_payloadIeItem_t
ApiMac_sec_t sec
Definition: api_mac.h:1711
bool uniqueDevice
Definition: api_mac.h:1986
ApiMac_sAddrExt_t deviceAddress
Definition: api_mac.h:2058
ApiMac_startCnfFp_t pStartCnfCb
Definition: api_mac.h:2417
Definition: api_mac.h:629
Definition: api_mac.h:600
uint8_t phyID
Definition: api_mac.h:1934
ApiMac_wisunAsycnOperation_t operation
Definition: api_mac.h:1948
Definition: api_mac.h:570
void(* ApiMac_startCnfFp_t)(ApiMac_mlmeStartCnf_t *pStartCnf)
Definition: api_mac.h:2328
uint16_t keyIndex
Definition: api_mac.h:1418
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:1842
Definition: api_mac.h:835
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:2010
uint16_t deviceDescriptorHandle
Definition: api_mac.h:1284
Definition: api_mac.h:1095
uint8_t offsetTimeSlot
Definition: api_mac.h:1857
Definition: api_mac.h:1091
bool startFH
Definition: api_mac.h:1923
Definition: api_mac.h:646
bool noRetransmits
Definition: api_mac.h:1521
uint16_t coordPanId
Definition: api_mac.h:1782
Definition: api_mac.h:522
Definition: api_mac.h:797
Definition: api_mac.h:1012
ApiMac_sAddr_t dstAddr
Definition: api_mac.h:1608
Definition: api_mac.h:1747
ApiMac_dataCnfFp_t pDataCnfCb
Definition: api_mac.h:2427
ApiMac_scantype_t scanType
Definition: api_mac.h:2185
Definition: api_mac.h:756
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:1036
uint8_t keyIdLookupDataSize
Definition: api_mac.h:1977
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:652
ApiMac_FHAttribute_uint32_t
Definition: api_mac.h:1027
Definition: api_mac.h:1365
Definition: api_mac.h:451
Definition: api_mac.h:459
ApiMac_sData_t msdu
Definition: api_mac.h:1640
Definition: api_mac.h:958
uint32_t frameCntr
Definition: api_mac.h:1666
Definition: api_mac.h:1089
Definition: api_mac.h:577
uint8_t * p
Definition: api_mac.h:1223
Definition: api_mac.h:2180
uint8_t bsn
Definition: api_mac.h:2154
uint16_t shortAddress
Definition: api_mac.h:1769
ApiMac_disassocateReason_t disassociateReason
Definition: api_mac.h:2060
bool security
Definition: api_mac.h:1491
Definition: api_mac.h:1644
Definition: api_mac.h:847
uint16_t assocShortAddress
Definition: api_mac.h:1741
struct _apimac_mcpsdatareq ApiMac_mcpsDataReq_t
uint32_t timestamp
Definition: api_mac.h:1651
Definition: api_mac.h:614
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:1664
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:2049
Definition: api_mac.h:701
ApiMac_status_t ApiMac_secDeleteAllDevices(void)
Removes all MAC device table entries.
ApiMac_panDesc_t * pPanDescriptor
Definition: api_mac.h:2200
bool exempt
Definition: api_mac.h:1972
Definition: api_mac.h:769
Definition: api_mac.h:829
Definition: api_mac.h:561
void * ApiMac_init(bool enableFH)
Initialize this module.
uint8_t numIEs
Definition: api_mac.h:1873
Definition: api_mac.h:1134
ApiMac_disassociateCnfFp_t pDisassociateCnfCb
Definition: api_mac.h:2409
Definition: api_mac.h:1927
Definition: api_mac.h:531
Definition: api_mac.h:1762
Definition: api_mac.h:1145
ApiMac_status_t status
Definition: api_mac.h:2208
Definition: api_mac.h:861
ApiMac_status_t ApiMac_secAddDevice(ApiMac_secAddDevice_t *pAddDevice)
Adds a new MAC device table entry.
Definition: api_mac.h:662
ApiMac_sec_t sec
Definition: api_mac.h:1822
struct _apimac_mlmeorphanind ApiMac_mlmeOrphanInd_t
ApiMac_sData_t msdu
Definition: api_mac.h:1571
uint8_t commandFrameIdentifier
Definition: api_mac.h:1350
Definition: api_mac.h:781
uint8_t securityLevel
Definition: api_mac.h:1264
ApiMac_unprocessedFp_t pUnprocessedCb
Definition: api_mac.h:2437
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:1722
Definition: api_mac.h:395
struct _apimac_securitykeyentry ApiMac_securityKeyEntry_t
Definition: api_mac.h:568
Definition: api_mac.h:841
uint8_t msduHandle
Definition: api_mac.h:1649
Definition: api_mac.h:1053
uint8_t trackBeacon
Definition: api_mac.h:1939
ApiMac_status_t reason
Definition: api_mac.h:2215
uint8_t framePending
Definition: api_mac.h:2234
Definition: api_mac.h:1104
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:1255
Definition: api_mac.h:648
ApiMac_dataIndFp_t pDataIndCb
Definition: api_mac.h:2429
uint8_t channelPage
Definition: api_mac.h:1932
uint8_t mpduLinkQuality
Definition: api_mac.h:1660
Definition: api_mac.h:1272
ApiMac_scantype_t scanType
Definition: api_mac.h:1793
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:1526
Definition: api_mac.h:745
ApiMac_keyUsageDescriptor_t * keyUsageList
Definition: api_mac.h:1317
Definition: api_mac.h:1173
Definition: api_mac.h:635
uint16_t symbolRate
Definition: api_mac.h:1243
ApiMac_wisunAsyncFrame_t
Definition: api_mac.h:1170
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:1599
ApiMac_wisunSubIE_t
Definition: api_mac.h:1110
uint8_t correlation
Definition: api_mac.h:1622
void * pNext
Definition: api_mac.h:1597
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:511
Definition: api_mac.h:625
Definition: api_mac.h:676
Definition: api_mac.h:1999
Definition: api_mac.h:539
Definition: api_mac.h:1401
void(* ApiMac_dataIndFp_t)(ApiMac_mcpsDataInd_t *pDataInd)
Definition: api_mac.h:2365
Definition: api_mac.h:1429
uint8_t eBeaconOrder
Definition: api_mac.h:2124
ApiMac_commStatusReason_t
Definition: api_mac.h:421
Definition: api_mac.h:674
Definition: api_mac.h:631
uint8_t percentFilter
Definition: api_mac.h:1820
ApiMac_status_t status
Definition: api_mac.h:2183
Definition: api_mac.h:406
struct _apimac_secadddevice ApiMac_secAddDevice_t
ApiMac_associateCnfFp_t pAssocCnfCb
Definition: api_mac.h:2405
struct _apimac_mlmedisassociatereq ApiMac_mlmeDisassociateReq_t
ApiMac_pollIndFp_t pPollIndCb
Definition: api_mac.h:2425
Definition: api_mac.h:1106
ApiMac_securityLevelDescriptor_t levelEntry
Definition: api_mac.h:1475
Definition: api_mac.h:2400
uint16_t shortAddr
Definition: api_mac.h:1210
Definition: api_mac.h:1164
ApiMac_assocStatus_t status
Definition: api_mac.h:1743
Definition: api_mac.h:2055
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:1900
Definition: api_mac.h:706
Definition: api_mac.h:685
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:1575
Definition: api_mac.h:1061
uint16_t payloadIeLen
Definition: api_mac.h:1628
ApiMac_keyUsageDescriptor_t usageEntry
Definition: api_mac.h:1436
void(* ApiMac_purgeCnfFp_t)(ApiMac_mcpsPurgeCnf_t *pPurgeCnf)
Definition: api_mac.h:2371
ApiMac_sAddr_t deviceAddress
Definition: api_mac.h:2074
ApiMac_wisunAsycnOperation_t
Definition: api_mac.h:1161
uint8_t logicalChannel
Definition: api_mac.h:1930
struct _apimac_keydescriptor ApiMac_keyDescriptor_t
Definition: api_mac.h:621
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:1179
ApiMac_sAddrExt_t deviceAddress
Definition: api_mac.h:2036
ApiMac_pollCnfFp_t pPollCnfCb
Definition: api_mac.h:2421
uint16_t timestamp2
Definition: api_mac.h:1614
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:1068
uint8_t lookupDataSize
Definition: api_mac.h:1277
uint16_t payloadIELen
Definition: api_mac.h:1562
Definition: api_mac.h:849
bool useAltBE
Definition: api_mac.h:1530
uint32_t frameCounter
Definition: api_mac.h:2004
Definition: api_mac.h:408
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:1795
Definition: api_mac.h:501
ApiMac_sec_t sec
Definition: api_mac.h:1737
uint8_t finalCapSlot
Definition: api_mac.h:2119
Definition: api_mac.h:845
Definition: api_mac.h:695
ApiMac_keyDeviceDescriptor_t deviceEntry
Definition: api_mac.h:1422
uint8_t power
Definition: api_mac.h:1558
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:1705
Definition: api_mac.h:672
uint32_t timestamp
Definition: api_mac.h:1707
Definition: api_mac.h:714
Definition: api_mac.h:520
Definition: api_mac.h:1345
uint8_t phyID
Definition: api_mac.h:1724
ApiMac_commStatusReason_t reason
Definition: api_mac.h:2249
uint8_t superFrameOrder
Definition: api_mac.h:2117
ApiMac_sec_t sec
Definition: api_mac.h:1750
Definition: api_mac.h:1093
Definition: api_mac.h:1074
Definition: api_mac.h:980
Definition: api_mac.h:990
Definition: api_mac.h:2044
Definition: api_mac.h:633
uint8_t channelPage
Definition: api_mac.h:1698
Definition: api_mac.h:602
Definition: api_mac.h:1076
Definition: api_mac.h:1020
Definition: api_mac.h:2205
Definition: api_mac.h:1259
ApiMac_purgeCnfFp_t pPurgeCnfCb
Definition: api_mac.h:2431
struct _apimac_mlmestartreq ApiMac_mlmeStartReq_t
bool permitJoining
Definition: api_mac.h:1809
Definition: api_mac.h:496
uint8_t msduHandle
Definition: api_mac.h:1552
Definition: api_mac.h:1943
uint8_t * pIEList
Definition: api_mac.h:1560
Definition: api_mac.h:843
Definition: api_mac.h:678
bool gtsPermit
Definition: api_mac.h:1703
uint32_t includeFhIEs
Definition: api_mac.h:1569
struct _apimac_macmlmeassociatereq ApiMac_mlmeAssociateReq_t
Definition: api_mac.h:777
struct _apimac_mlmeassociatecnf ApiMac_mlmeAssociateCnf_t
bool securityFailure
Definition: api_mac.h:1709
uint8_t frameType
Definition: api_mac.h:1348
Definition: api_mac.h:382
ApiMac_deviceDescriptor_t devInfo
Definition: api_mac.h:1375
ApiMac_attribute_array_t
Definition: api_mac.h:853
Definition: api_mac.h:445
ApiMac_sAddrExt_t deviceAddress
Definition: api_mac.h:1739
bool allocAddr
Definition: api_mac.h:1496
ApiMac_sAddrExt_t orphanAddress
Definition: api_mac.h:2174
Definition: api_mac.h:718
ApiMac_commStatusIndFp_t pCommStatusCb
Definition: api_mac.h:2423
struct _apimac_mlmedisassociateind ApiMac_mlmeDisassociateInd_t
uint16_t numChannels
Definition: api_mac.h:1237
ApiMac_sec_t beaconSec
Definition: api_mac.h:1919
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:1647
bool duplicateDevFlag
Definition: api_mac.h:1995
struct _apimac_securitypibkeydeviceentry ApiMac_securityPibKeyDeviceEntry_t
Definition: api_mac.h:1113
Definition: api_mac.h:464
struct _apimac_keyusagedescriptor ApiMac_keyUsageDescriptor_t
ApiMac_sAddr_t deviceAddress
Definition: api_mac.h:1752
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:1432
ApiMac_capabilityInfo_t capabilityInformation
Definition: api_mac.h:2038
Definition: api_mac.h:581
ApiMac_assocStatus_t status
Definition: api_mac.h:2047
Definition: api_mac.h:743
ApiMac_sec_t sec
Definition: api_mac.h:2251
uint8_t keyUsageListEntries
Definition: api_mac.h:1319
Definition: api_mac.h:544
bool MPMScan
Definition: api_mac.h:1827
bool ffd
Definition: api_mac.h:1484
ApiMac_attribute_uint32_t
Definition: api_mac.h:823
Definition: api_mac.h:2229
Definition: api_mac.h:453
uint16_t NBPANEBeaconOrder
Definition: api_mac.h:1862
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:1415
Definition: api_mac.h:1679
ApiMac_securityAttribute_uint16_t
Definition: api_mac.h:880
Definition: api_mac.h:1188
Definition: api_mac.h:666
ApiMac_sAddrExt_t extAddress
Definition: api_mac.h:1341
Definition: api_mac.h:594
void(* ApiMac_pollIndFp_t)(ApiMac_mlmePollInd_t *pPollInd)
Definition: api_mac.h:2353
ApiMac_status_t ApiMac_secDeleteDevice(ApiMac_sAddrExt_t *pExtAddr)
Removes MAC device table entries.
ApiMac_attribute_uint8_t
Definition: api_mac.h:682
Definition: api_mac.h:716
Definition: api_mac.h:1190
ApiMac_frameCntr_t * frameCntr
Definition: api_mac.h:1381
Definition: api_mac.h:664
struct _apimac_mlmestartcnf ApiMac_mlmeStartCnf_t
uint8_t frameType
Definition: api_mac.h:1295
uint8_t * pIEIDs
Definition: api_mac.h:1868
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:1281
Definition: api_mac.h:533
uint16_t keyIdx
Definition: api_mac.h:1368
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:2273
uint32_t channelSpacing
Definition: api_mac.h:1239
ApiMac_keyIdLookupDescriptor_t lookupEntry
Definition: api_mac.h:1408
Definition: api_mac.h:604
bool useGreenPower
Definition: api_mac.h:1539
ApiMac_sAddr_t coordAddress
Definition: api_mac.h:1682
ApiMac_status_t
Definition: api_mac.h:438
uint16_t superframeSpec
Definition: api_mac.h:1694
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:430
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:1086
struct _apimac_securitypiblevelentry ApiMac_securityPibSecurityLevelEntry_t
uint8_t superframeOrder
Definition: api_mac.h:1902
Definition: api_mac.h:566
Definition: api_mac.h:1080
Definition: api_mac.h:754
struct _apimac_mlmewsasynccnf ApiMac_mlmeWsAsyncCnf_t
Definition: api_mac.h:1232
void ApiMac_processIncoming(void)
Process incoming messages from the MAC stack.
uint16_t keyIndex
Definition: api_mac.h:1446
Definition: api_mac.h:1594
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:1846
Definition: api_mac.h:415
Definition: api_mac.h:992
Definition: api_mac.h:747
Definition: api_mac.h:384
ApiMac_wsAsyncCnfFp_t pWsAsyncCnfCb
Definition: api_mac.h:2435
bool securityOverrideSecurityMinimum
Definition: api_mac.h:1361
struct _apimac_mlmecommstatusind ApiMac_mlmeCommStatusInd_t
uint16_t panID
Definition: api_mac.h:1962
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:2106
Definition: api_mac.h:596
ApiMac_sec_t sec
Definition: api_mac.h:1718
struct _apimac_keydevicedescriptor ApiMac_keyDeviceDescriptor_t
uint8_t linkQuality
Definition: api_mac.h:1814
ApiMac_sec_t sec
Definition: api_mac.h:2051
Definition: api_mac.h:741
ApiMac_MLMESubIE_t
Definition: api_mac.h:1099
Definition: api_mac.h:1102
Definition: api_mac.h:612
Definition: api_mac.h:466
Definition: api_mac.h:1014
Definition: api_mac.h:590
Definition: api_mac.h:2066
Definition: api_mac.h:1121
Definition: api_mac.h:1016
Definition: api_mac.h:1186
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:2221
Definition: api_mac.h:554
uint8_t keyIdLookupEntries
Definition: api_mac.h:1306
uint8_t dsn
Definition: api_mac.h:1626
ApiMac_beaconType_t beaconType
Definition: api_mac.h:2152
struct _apimac_txoptions ApiMac_txOptions_t
Definition: api_mac.h:1039
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:1392
void(* ApiMac_associateCnfFp_t)(ApiMac_mlmeAssociateCnf_t *pAssocCnf)
Definition: api_mac.h:2289
uint8_t channel
Definition: api_mac.h:1556
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:1804
ApiMac_scantype_t
Definition: api_mac.h:1127
Definition: api_mac.h:608
ApiMac_addrType_t addrMode
Definition: api_mac.h:1216
uint8_t keyUsageIndex
Definition: api_mac.h:1434
Definition: api_mac.h:488
uint8_t lookupDataSize
Definition: api_mac.h:2024
#define APIMAC_MAX_KEY_LOOKUP_LEN
Definition: api_mac.h:211
uint8_t * pIEContent
Definition: api_mac.h:1590
ApiMac_sAddr_t dstAddr
Definition: api_mac.h:2245
Definition: api_mac.h:1022
struct _apimac_payloadierec ApiMac_payloadIeRec_t
Definition: api_mac.h:728
ApiMac_sAddr_t srcAddr
Definition: api_mac.h:2258
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:1586
struct _apimac_mcpspurgecnf ApiMac_mcpsPurgeCnf_t
uint8_t phyID
Definition: api_mac.h:2223
uint8_t retries
Definition: api_mac.h:1658
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:1754
uint16_t keyDeviceIndex
Definition: api_mac.h:1420
Definition: api_mac.h:1479
uint8_t * pSdu
Definition: api_mac.h:2102
Definition: api_mac.h:1057
ApiMac_fhDispatchType_t fhProtoDispatch
Definition: api_mac.h:1634
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:1638
Definition: api_mac.h:1603
Definition: api_mac.h:986
uint8_t logicalChannel
Definition: api_mac.h:2219
bool newKeyFlag
Definition: api_mac.h:2019
uint16_t coordPanId
Definition: api_mac.h:1684
void(* ApiMac_associateIndFp_t)(ApiMac_mlmeAssociateInd_t *pAssocInd)
Definition: api_mac.h:2283
uint16_t panId
Definition: api_mac.h:1886
Definition: api_mac.h:592
Definition: api_mac.h:535
Definition: api_mac.h:386
ApiMac_sAddrExt_t extAddr
Definition: api_mac.h:1212
uint8_t keyIdMode
Definition: api_mac.h:1266
void(* ApiMac_pollCnfFp_t)(ApiMac_mlmePollCnf_t *pPollCnf)
Definition: api_mac.h:2340
Definition: api_mac.h:583
Definition: api_mac.h:1877
Definition: api_mac.h:494
ApiMac_associateIndFp_t pAssocIndCb
Definition: api_mac.h:2403
ApiMac_status_t status
Definition: api_mac.h:1673
Definition: api_mac.h:483
uint32_t frameCounter
Definition: api_mac.h:1367
ApiMac_sAddr_t srcAddr
Definition: api_mac.h:1606
Definition: api_mac.h:1049
struct _apimac_mlmediassociatecnf ApiMac_mlmeDisassociateCnf_t
Definition: api_mac.h:559
ApiMac_sAddr_t coordAddress
Definition: api_mac.h:1726
Definition: api_mac.h:805
uint32_t frameCounter
Definition: api_mac.h:1394
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:552
Definition: api_mac.h:734
bool mainsPower
Definition: api_mac.h:1486
ApiMac_FHAttribute_uint16_t
Definition: api_mac.h:1001
ApiMac_sec_t sec
Definition: api_mac.h:1784
Definition: api_mac.h:856
ApiMac_securityAttribute_array_t
Definition: api_mac.h:894
ApiMac_fhFrameType_t fhFrameType
Definition: api_mac.h:1632
ApiMac_status_t status
Definition: api_mac.h:2069
Definition: api_mac.h:1006
struct _apimac_mlmepollcnf ApiMac_mlmePollCnf_t
uint16_t panId
Definition: api_mac.h:2217
ApiMac_disassocateReason_t disassociateReason
Definition: api_mac.h:1756
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:2083
ApiMac_FHAttribute_uint8_t
Definition: api_mac.h:971
uint32_t frameCounter
Definition: api_mac.h:1327
ApiMac_sec_t sec
Definition: api_mac.h:1946
ApiMac_sec_t sec
Definition: api_mac.h:2040
Definition: api_mac.h:1788
uint16_t shortAddr
Definition: api_mac.h:1964
Definition: api_mac.h:529
Definition: api_mac.h:1777
uint8_t logicalChannel
Definition: api_mac.h:1696
bool txIndirect
Definition: api_mac.h:1758
ApiMac_sec_t sec
Definition: api_mac.h:1573
void(* ApiMac_scanCnfFp_t)(ApiMac_mlmeScanCnf_t *pScanCnf)
Definition: api_mac.h:2322
Definition: api_mac.h:1123
Definition: api_mac.h:668
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:1636
void(* ApiMac_disassociateIndFp_t)(ApiMac_mlmeDisassociateInd_t *pDisassociateInd)
Definition: api_mac.h:2295
#define APIMAC_SADDR_EXT_LEN
Definition: api_mac.h:152
uint8_t eBeaconOrder
Definition: api_mac.h:1852
Definition: api_mac.h:699
uint8_t channelPage
Definition: api_mac.h:2187
bool panCoord
Definition: api_mac.h:1482
bool blackListed
Definition: api_mac.h:1288
Definition: api_mac.h:537
Definition: api_mac.h:994
Definition: api_mac.h:1301
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:2413
Definition: api_mac.h:1372
ApiMac_status_t status
Definition: api_mac.h:2276
uint8_t keyIndex
Definition: api_mac.h:1268
ApiMac_coexist_t coexist
Definition: api_mac.h:2145
Definition: api_mac.h:1151
uint8_t numPendExtAddr
Definition: api_mac.h:2093
Definition: api_mac.h:1045
Definition: api_mac.h:697
uint8_t beaconOrder
Definition: api_mac.h:2111
uint16_t coordPanId
Definition: api_mac.h:1728
Definition: api_mac.h:1715
ApiMac_beaconData_t beacon
Definition: api_mac.h:2164
uint8_t phyId
Definition: api_mac.h:2189
ApiMac_addrType_t
Definition: api_mac.h:392
void(* ApiMac_wsAsyncCnfFp_t)(ApiMac_mlmeWsAsyncCnf_t *pWsAsyncCnf)
Definition: api_mac.h:2383
uint8_t MPMScanType
Definition: api_mac.h:1829
Definition: api_mac.h:490
uint8_t capBackOff
Definition: api_mac.h:2133
Definition: api_mac.h:1470
ApiMac_fhDispatchType_t fhProtoDispatch
Definition: api_mac.h:1567
ApiMac_attribute_uint16_t
Definition: api_mac.h:785
ApiMac_sAddr_t coordAddress
Definition: api_mac.h:1780
ApiMac_sec_t realignSec
Definition: api_mac.h:1917
ApiMac_wisunAsyncFrame_t frameType
Definition: api_mac.h:1950
Definition: api_mac.h:550
struct _apimac_pandesc ApiMac_panDesc_t
struct _apimac_secdevicedescriptor ApiMac_securityDeviceDescriptor_t
uint8_t logicalChannel
Definition: api_mac.h:1720
Definition: api_mac.h:506
Definition: api_mac.h:644
ApiMac_keyIdMode_t
Definition: api_mac.h:639
uint8_t ApiMac_convertCapabilityInfo(ApiMac_capabilityInfo_t *pMsgcapInfo)
Convert ApiMac_capabilityInfo_t data type to uint8 capInfo.
Definition: api_mac.h:447
Definition: api_mac.h:670
Definition: api_mac.h:726
ApiMac_disassocateReason_t
Definition: api_mac.h:412
ApiMac_txOptions_t txOptions
Definition: api_mac.h:1554
Definition: api_mac.h:606
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:2232
Definition: api_mac.h:516
uint16_t panId
Definition: api_mac.h:2079
Definition: api_mac.h:455
Definition: api_mac.h:572
uint16_t dstPanId
Definition: api_mac.h:1618
struct _apimac_mcpsdatacnf ApiMac_mcpsDataCnf_t
Definition: api_mac.h:978
uint8_t * pEnergyDetect
Definition: api_mac.h:2198
Definition: api_mac.h:660
bool ack
Definition: api_mac.h:1506
bool batteryLifeExt
Definition: api_mac.h:1910
ApiMac_sAddr_t srcAddr
Definition: api_mac.h:2243
Definition: api_mac.h:492
ApiMac_capabilityInfo_t capabilityInformation
Definition: api_mac.h:1730
uint16_t srcPanId
Definition: api_mac.h:2260
uint8_t phyID
Definition: api_mac.h:1799
Definition: api_mac.h:996
uint8_t resultListSize
Definition: api_mac.h:2193
ApiMac_securityAttribute_uint8_t
Definition: api_mac.h:867
Definition: api_mac.h:1292
ApiMac_sAddrExt_t extAddr
Definition: api_mac.h:1966
Definition: api_mac.h:720
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:1767
Definition: api_mac.h:863
uint16_t ieContentLen
Definition: api_mac.h:1588
void(* ApiMac_unprocessedFp_t)(uint16_t param1, uint16_t param2, void *pMsg)
Definition: api_mac.h:2390
uint8_t ApiMac_sAddrExt_t[APIMAC_SADDR_EXT_LEN]
Definition: api_mac.h:1198
Definition: api_mac.h:1670
ApiMac_syncLossIndFp_t pSyncLossIndCb
Definition: api_mac.h:2419
Definition: api_mac.h:833
Definition: api_mac.h:1220
struct _apimac_ebeacondata ApiMac_eBeaconData_t
Definition: api_mac.h:588
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:397
uint16_t keyIndex
Definition: api_mac.h:1404
uint16_t shortAddress
Definition: api_mac.h:1336
uint8_t correlation
Definition: api_mac.h:1662
void(* ApiMac_orphanIndFp_t)(ApiMac_mlmeOrphanInd_t *pOrphanInd)
Definition: api_mac.h:2316
uint8_t fskModScheme
Definition: api_mac.h:1241
Definition: api_mac.h:690
ApiMac_addrType_t srcAddrMode
Definition: api_mac.h:1550
uint16_t eBeaconOrderNBPAN
Definition: api_mac.h:2138
Definition: api_mac.h:988
uint16_t dstPanId
Definition: api_mac.h:1548
Definition: api_mac.h:1443
uint16_t keyDeviceListEntries
Definition: api_mac.h:1314
ApiMac_fhDispatchType_t
Definition: api_mac.h:1183
#define APIMAC_KEY_MAX_LEN
Definition: api_mac.h:149
uint16_t len
Definition: api_mac.h:1225
uint8_t numPendShortAddr
Definition: api_mac.h:2086
uint16_t panID
Definition: api_mac.h:1334
Definition: api_mac.h:443
Definition: api_mac.h:655
uint8_t channelPage
Definition: api_mac.h:1896
ApiMac_eBeaconData_t eBeacon
Definition: api_mac.h:2166
struct _apimac_securitypibkeyidlookupentry ApiMac_securityPibKeyIdLookupEntry_t
Definition: api_mac.h:642
uint16_t panId
Definition: api_mac.h:2247
struct _apimac_mpmParams ApiMac_mpmParams_t
ApiMac_securityAttribute_struct_t
Definition: api_mac.h:905
Definition: api_mac.h:473
struct _apimac_secaddkeyinitframecounter ApiMac_secAddKeyInitFrameCounter_t
Definition: api_mac.h:1008
Definition: api_mac.h:2149
bool pendingBit
Definition: api_mac.h:1517
struct _apimac_mlmepollind ApiMac_mlmePollInd_t
ApiMac_securityDeviceDescriptor_t deviceEntry
Definition: api_mac.h:1462
uint8_t logicalChannel
Definition: api_mac.h:1891
Definition: api_mac.h:1166
Definition: api_mac.h:2255
Definition: api_mac.h:1581
struct _apimac_mlmescanreq ApiMac_mlmeScanReq_t
Definition: api_mac.h:1018
Definition: api_mac.h:1140
uint8_t gpDuration
Definition: api_mac.h:1577
bool uniqueDevice
Definition: api_mac.h:1286
Definition: api_mac.h:623
Definition: api_mac.h:1457
Definition: api_mac.h:765
void(* ApiMac_commStatusIndFp_t)(ApiMac_mlmeCommStatusInd_t *pCommStatus)
Definition: api_mac.h:2346
ApiMac_sAddr_t dstAddr
Definition: api_mac.h:1546
struct _apimac_mcpsdataind ApiMac_mcpsDataInd_t
© Copyright 1995-2018, Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy policy | Terms of use | Terms of sale