Cascoda SDK
Cascoda SDK for building software to run with CA-821x transceivers
mac_messages.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2019, Cascoda Ltd.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * 1. Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * 3. Neither the name of the copyright holder nor the
13  * names of its contributors may be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  * POSSIBILITY OF SUCH DAMAGE.
27  */
40 #ifndef MAC_MESSAGES_H
41 #define MAC_MESSAGES_H
42 
43 #include <stdint.h>
44 
45 #include "ca821x_config.h"
46 #include "ca821x_error.h"
47 #include "hwme_tdme.h"
48 #include "ieee_802_15_4.h"
49 
50 #ifdef __cplusplus
51 extern "C" {
52 #endif
53 
54 #define MAX_HWME_ATTRIBUTE_SIZE 16
55 #define MAX_TDME_ATTRIBUTE_SIZE 2
57 /******************************************************************************/
58 /****** Structures used in the MAC MCPS/MLME Procedure Definitions ******/
59 /******************************************************************************/
60 
62 struct FullAddr
63 {
64  uint8_t AddressMode;
65  uint8_t PANId[2];
66  uint8_t Address[8];
67 };
68 
70 struct ShortAddr
71 {
72  uint8_t Address[2];
73 };
74 
76 struct ExtAddr
77 {
78  uint8_t Address[8];
79 };
80 
82 struct MacAddr
83 {
84  uint8_t AddressMode;
85  uint8_t Address[8];
86 };
87 
89 struct SecSpec
90 {
91  uint8_t SecurityLevel;
92  uint8_t KeyIdMode;
93  uint8_t KeySource[8];
94  uint8_t KeyIndex;
95 };
96 
99 {
100  struct FullAddr Coord;
101  uint8_t LogicalChannel;
102  uint8_t SuperframeSpec[2];
103  uint8_t GTSPermit;
104  uint8_t LinkQuality;
105  uint8_t TimeStamp[4];
106  uint8_t SecurityFailure;
107  struct SecSpec Security;
108 };
109 
110 // MCPS
111 #if CASCODA_CA_VER >= 8212
114 {
115  uint8_t SrcAddrMode;
116  struct FullAddr Dst;
117  uint8_t HeaderIELength;
118  uint8_t PayloadIELength;
119  uint8_t MsduLength;
120  uint8_t MsduHandle;
121  uint8_t TxOptions[2];
122  uint8_t Data[MAX_DATA_SIZE];
123 };
124 #else
127 {
128  uint8_t SrcAddrMode;
129  struct FullAddr Dst;
130  uint8_t MsduLength;
131  uint8_t MsduHandle;
132  uint8_t TxOptions;
133  uint8_t Msdu[MAX_DATA_SIZE];
134 };
135 #endif // CASCODA_CA_VER >= 8212
136 
137 // PCPS
138 #if CASCODA_CA_VER >= 8212
140 struct PCPS_DATA_request_pset
141 {
142  uint8_t PsduHandle;
143  uint8_t TxOpts;
144  /* 6 bytes (Optional: SCH timestamp and period) + 1 byte PsduLength + aMaxPHYPacketSize bytes Psdu */
145  uint8_t VariableData[7 + aMaxPHYPacketSize];
146 };
147 #elif CASCODA_CA_VER == 8211
149 struct PCPS_DATA_request_pset
150 {
151  uint8_t PsduHandle;
152  uint8_t TxOpts;
153  uint8_t PsduLength;
154  uint8_t Psdu[aMaxPHYPacketSize];
155 };
156 #endif // CASCODA_CA_VER >= 8212
157 
158 // MLME
159 
162 {
163  uint8_t LogicalChannel;
164  struct FullAddr Dst;
165  uint8_t CapabilityInfo;
166  struct SecSpec Security;
167 };
168 
171 {
172  uint8_t DeviceAddress[8];
173  uint8_t AssocShortAddress[2];
174  uint8_t Status;
175  struct SecSpec Security;
176 };
177 
180 {
181  struct FullAddr DevAddr;
183  uint8_t TxIndirect;
184  struct SecSpec Security;
185 };
186 
189 {
190  uint8_t PIBAttribute;
192 };
193 
196 {
197  uint8_t Status;
198  uint8_t PIBAttribute;
202 };
203 
206 {
207  uint8_t OrphanAddress[8];
208  uint8_t ShortAddress[2];
210  struct SecSpec Security;
211 };
212 
215 {
216  struct FullAddr CoordAddress;
217 #if CASCODA_CA_VER == 8210
218  uint8_t Interval[2]; /* polling interval in 0.1 seconds res */
219  /* 0 means poll once */
220  /* 0xFFFF means stop polling */
221 #endif // CASCODA_CA_VER == 8210
222 #if CASCODA_CA_VER >= 8212
223  uint8_t FrameVersion; /* Determines if the Data request frame to be sent is a 2015 frame (FrameVersion set to 1) */
224 #endif // CASCODA_CA_VER >= 8212
225  struct SecSpec Security;
226 };
227 
228 #if CASCODA_CA_VER >= 8212
229 struct MLME_POLL_confirm_pset
230 {
231  uint8_t Status;
232 };
233 #endif // CASCODA_CA_VER >= 8212
234 
237 {
238  uint8_t DeferPermit;
239  uint8_t RxOnTime[4];
240  uint8_t RxOnDuration[4];
241 };
242 
245 {
246  uint8_t ScanType;
247  uint8_t ScanChannels[4];
248  uint8_t ScanDuration;
249  struct SecSpec Security;
250 };
251 
254 {
255  uint8_t PIBAttribute;
259 };
260 
263 {
264  uint8_t Status;
265  uint8_t PIBAttribute;
267 };
268 
271 {
272  uint8_t PANId[2];
273  uint8_t LogicalChannel;
274  uint8_t BeaconOrder;
276  uint8_t PANCoordinator;
280  struct SecSpec BeaconSecurity;
281 };
282 
283 // HWME
284 
287 {
288  uint8_t HWAttribute;
291 };
292 
295 {
296  uint8_t HWAttribute;
297 };
298 
301 {
302  uint8_t HAESMode;
303  uint8_t HAESData[16];
304 };
305 
306 // TDME
307 
310 {
311  uint8_t SFRPage;
312  uint8_t SFRAddress;
313  uint8_t SFRValue;
314 };
315 
318 {
319  uint8_t SFRPage;
320  uint8_t SFRAddress;
321 };
322 
325 {
326  uint8_t TestMode;
327 };
328 
331 {
332  uint8_t TDAttribute;
335 };
336 
339 {
343  uint8_t TestPacketData[128];
344 };
345 
348 {
349  uint8_t TestChannel;
350  uint8_t TestRxTxb;
351 };
352 
353 // MCPS
354 
357 {
358  uint8_t MsduHandle;
359  uint8_t Status;
360  uint8_t TimeStamp[4];
361 #if CASCODA_CA_VER >= 8211
362  uint8_t FramePending;
363 #endif // CASCODA_CA_VER >= 8211
364 #if CASCODA_CA_VER >= 8212
365  uint8_t FailCount_NoAck;
366  uint8_t FailCount_CsmaCa;
367  uint8_t Channel;
368 #endif // CASCODA_CA_VER >= 8212
369 };
370 
373 {
374  uint8_t MsduHandle;
375  uint8_t Status;
376 };
377 
384 {
385  struct FullAddr Src;
386  struct FullAddr Dst;
387 #if CASCODA_CA_VER >= 8212
388  uint8_t HeaderIELength;
389  uint8_t PayloadIELength;
390 #endif // CASCODA_CA_VER >= 8212
391  uint8_t MsduLength;
393  uint8_t DSN;
394  uint8_t TimeStamp[4];
395 #if CASCODA_CA_VER >= 8211
396  uint8_t FramePending;
397 #endif // CASCODA_CA_VER >= 8212
398 #if CASCODA_CA_VER >= 8212
399  uint8_t Data[MAX_DATA_SIZE]; /* IEs and MSDU and Security are concatenated into Data */
400 #else
401  uint8_t Msdu[MAX_DATA_SIZE]; /* Security is concatenated here */
402 #endif // CASCODA_CA_VER >= 8212
403 };
404 
405 #if CASCODA_CA_VER >= 8212
407 struct PCPS_DATA_indication_pset
408 {
409  uint8_t CS;
410  uint8_t ED;
411  uint8_t Timestamp[4];
412  uint8_t PsduLength;
413  uint8_t Psdu[aMaxPHYPacketSize];
414 };
415 
417 struct PCPS_DATA_confirm_pset
418 {
419  uint8_t PsduHandle;
420  uint8_t Status;
421  uint8_t TimeStamp[4];
422  uint8_t FramePending;
423  uint8_t FailCount_NoAck;
424  uint8_t FailCount_CsmaCa;
425 };
426 
428 struct MLME_IE_NOTIFY_indication_pset
429 {
430  struct FullAddr Src;
431  struct FullAddr Dst;
432  uint8_t HeaderIELength;
433  uint8_t PayloadIELength;
434  uint8_t FrameType;
435  uint8_t CommandID;
436  uint8_t VariableData[MAX_DATA_SIZE];
437 };
438 #elif CASCODA_CA_VER == 8211
440 struct PCPS_DATA_indication_pset
441 {
442  uint8_t CS;
443  uint8_t ED;
444  uint8_t PsduLength;
445  uint8_t Psdu[aMaxPHYPacketSize];
446 };
447 
449 struct PCPS_DATA_confirm_pset
450 {
451  uint8_t PsduHandle;
452  uint8_t Status;
453  uint8_t FramePending;
454 };
455 #endif // CASCODA_CA_VER >= 8212
456 
457 // MLME
458 
461 {
462  uint8_t DeviceAddress[8];
464  struct SecSpec Security;
465 };
466 
469 {
470  uint8_t AssocShortAddress[2];
471  uint8_t Status;
472  struct SecSpec Security;
473 };
474 
477 {
478  uint8_t Status;
479  struct FullAddr Address;
480 };
481 
484 {
485  uint8_t DevAddr[8];
486  uint8_t Reason;
487  struct SecSpec Security;
488 };
489 
492 {
493  uint8_t BSN;
497  /* u8_t PendAddrSpec; */
498  /* variable Address List */
499  /* variable Beacon payload */
500 };
501 
503 #define DEFAULT_RESULT_LIST_SIZE (128)
504 
507 {
508  uint8_t Status;
509  uint8_t ScanType;
510  uint8_t UnscannedChannels[4];
511  uint8_t ResultListSize;
513 };
514 
517 {
518  uint8_t PANId[2];
519  uint8_t SrcAddrMode;
520  uint8_t SrcAddr[8];
521  uint8_t DstAddrMode;
522  uint8_t DstAddr[8];
523  uint8_t Status;
524  struct SecSpec Security;
525 };
526 
529 {
530  uint8_t OrphanAddr[8];
531  struct SecSpec Security;
532 };
533 
536 {
537  uint8_t LossReason;
538  uint8_t PANId[2];
539  uint8_t LogicalChannel;
540  struct SecSpec Security;
541 };
542 
544 {
545  struct FullAddr Src;
546  struct FullAddr Dst;
547  uint8_t LQI;
548  uint8_t DSN;
549 #if CASCODA_CA_VER >= 8212
550  uint8_t Timestamp[4];
551 #endif // CASCODA_CA_VER >= 8212
552  struct SecSpec Security;
553 };
554 
555 // HWME
556 
559 {
560  uint8_t Status;
561  uint8_t HWAttribute;
562 };
563 
566 {
567  uint8_t Status;
568  uint8_t HWAttribute;
571 };
572 
575 {
576  uint8_t Status;
577  uint8_t HAESData[16];
578 };
579 
582 {
584 };
585 
586 // TDME
587 
590 {
591  uint8_t Status;
592  uint8_t SFRPage;
593  uint8_t SFRAddress;
594 };
595 
598 {
599  uint8_t Status;
600  uint8_t SFRPage;
601  uint8_t SFRAddress;
602  uint8_t SFRValue;
603 };
604 
607 {
608  uint8_t Status;
609  uint8_t TestMode;
610 };
611 
614 {
615  uint8_t Status;
616  uint8_t TDAttribute;
617 };
618 
621 {
622  uint8_t Status;
625  uint8_t TestPacketData[128];
626 };
627 
630 {
631  uint8_t Status;
636  uint8_t TestPacketData[128];
637 };
638 
641 {
643  uint8_t TestEDValue;
644  uint8_t TestCSValue;
646 };
647 
650 {
651  uint8_t ErrorCode;
652 };
653 
656 {
657  uint8_t Status;
658  uint8_t TestChannel;
659  uint8_t TestRxTxb;
661  uint8_t TestLOAMPValue;
663 };
664 
665 /******************************************************************************/
666 /****** Security PIB Table Size Definitions ******/
667 /******************************************************************************/
669 {
670 #if CASCODA_CA_VER >= 8212
671  KEY_TABLE_SIZE = 6,
672  LOOKUP_DESC_TABLE_SIZE = 10,
673  DEVICE_TABLE_SIZE = 150,
674  SECURITY_LEVEL_TABLE_SIZE = 10,
675  COMMAND_ID_SECURITY_LEVEL_TABLE_SIZE = 10,
676  IE_SECURITY_LEVEL_TABLE_SIZE = 10,
677  SECURITY_LEVEL_EXEMPTION_TABLE_SIZE = 4,
678 #elif CASCODA_CA_VER == 8211
679  KEY_TABLE_SIZE = 4,
680  LOOKUP_DESC_TABLE_SIZE = 5,
681  KEY_DEVICE_TABLE_SIZE = 32,
682  KEY_USAGE_TABLE_SIZE = 12,
683  SECURITY_LEVEL_TABLE_SIZE = 2,
684  DEVICE_TABLE_SIZE = 32,
685 #elif CASCODA_CA_VER == 8210
686  KEY_TABLE_SIZE = 4,
687  LOOKUP_DESC_TABLE_SIZE = 5,
688  KEY_DEVICE_TABLE_SIZE = 10,
689  KEY_USAGE_TABLE_SIZE = 12,
690  SECURITY_LEVEL_TABLE_SIZE = 2,
691  DEVICE_TABLE_SIZE = 10,
692 #else
693 #error "Security table sizes undefined"
694 #endif // CASCODA_CA_VER >= 8212
695 };
696 
697 /*******************************************************************************
698  * Structures used by security PIB attributes
699  ******************************************************************************/
700 
701 #if CASCODA_CA_VER >= 8212
702 struct DeviceTable
703 {
704  uint8_t NumEntries;
705  struct DeviceTableShortPan
706  {
707  uint8_t ShortAddr[2];
708  uint8_t PANId[2];
709  } ShortPan[DEVICE_TABLE_SIZE];
710  struct DeviceTableExtAddr
711  {
712  uint8_t ExtAddr[8];
713  } ExtAddr[DEVICE_TABLE_SIZE];
714  struct
715  {
716  uint8_t FrameCounter[4];
717  uint8_t EnhAckFCOffset;
718  uint8_t KeyMask : 7;
719  uint8_t ThreadKeyIndexEnabled : 1;
720  } Entry[DEVICE_TABLE_SIZE];
721 };
722 
723 struct KeyTable
724 {
725  uint8_t NumEntries;
726  struct
727  {
728  uint8_t Key[16];
729  uint8_t ThreadKeyIDMode2 : 1;
730  } Entry[KEY_TABLE_SIZE];
731 };
732 
733 struct KeyLookupTable
734 {
735  uint8_t NumEntries;
736  struct LookupTableData
737  {
738  uint8_t KeyIdMode;
739  uint8_t LookupData[9];
740  } LookupData[LOOKUP_DESC_TABLE_SIZE];
741  struct
742  {
743  uint8_t KeyTableIndex;
744  } Entry[LOOKUP_DESC_TABLE_SIZE];
745 };
746 
747 struct SecurityLevelTable
748 {
749  uint8_t NumEntries;
750  struct
751  {
752  uint8_t FrameTypeMask;
753  uint8_t SecLevelMask;
754  uint8_t KeyMask;
755  } Entry[SECURITY_LEVEL_TABLE_SIZE];
756 };
757 
758 struct CommandIdSecurityLevelTable
759 {
760  uint8_t NumEntries;
761  uint8_t CommandId[COMMAND_ID_SECURITY_LEVEL_TABLE_SIZE];
762  struct
763  {
764  uint8_t SecLevelMask;
765  uint8_t KeyMask;
766  } Entry[COMMAND_ID_SECURITY_LEVEL_TABLE_SIZE];
767 };
768 
769 struct IESecurityLevelTable
770 {
771  uint8_t NumEntries;
772  uint8_t IEId[IE_SECURITY_LEVEL_TABLE_SIZE];
773  struct
774  {
775  uint8_t FrameTypeMask;
776  uint8_t SecLevelMask;
777  uint8_t KeyMask;
778  } Entry[IE_SECURITY_LEVEL_TABLE_SIZE];
779 };
780 
781 struct SecurityLevelExemptionTable
782 {
783  uint8_t NumEntries;
784  struct
785  {
786  uint8_t FrameTypeMask;
787  uint8_t CommandIdMask;
788  uint8_t SecLevelMask;
789  uint8_t KeyMask;
790  uint8_t DeviceTableIndex;
791  } Entry[SECURITY_LEVEL_EXEMPTION_TABLE_SIZE];
792 };
793 
794 // MLME Get/Set representations of security table entries
795 struct DeviceTablePib
796 {
797  uint8_t ShortAddr[2];
798  uint8_t PANId[2];
799  uint8_t ExtAddr[8];
800  uint8_t FrameCounter[4];
801  uint8_t EnhAckFCOffset;
802  uint8_t KeyMask;
803  uint8_t ThreadKeyIndexEnabled;
804 };
805 
806 struct KeyTablePib
807 {
808  uint8_t Key[16];
809  uint8_t ThreadKeyIDMode2;
810 };
811 
812 struct KeyLookupTablePib
813 {
814  uint8_t KeyIdMode;
815  uint8_t LookupData[9];
816  uint8_t KeyTableIndex;
817 };
818 
819 struct SecurityLevelTablePib
820 {
821  uint8_t FrameTypeMask;
822  uint8_t SecLevelMask;
823  uint8_t KeyMask;
824 };
825 
826 struct CommandIdSecurityLevelTablePib
827 {
828  uint8_t CommandId;
829  uint8_t SecLevelMask;
830  uint8_t KeyMask;
831 };
832 
833 struct IESecurityLevelTablePib
834 {
835  uint8_t IEId;
836  uint8_t FrameTypeMask;
837  uint8_t SecLevelMask;
838  uint8_t KeyMask;
839 };
840 
841 struct SecurityLevelExemptionTablePib
842 {
843  uint8_t FrameTypeMask;
844  uint8_t CommandIdMask;
845  uint8_t SecLevelMask;
846  uint8_t KeyMask;
847  uint8_t DeviceTableIndex;
848 };
849 #else
851 {
852  uint8_t LookupData[9];
854 };
855 
857 {
858  uint8_t PANId[2];
859  uint8_t ShortAddress[2];
860  uint8_t ExtAddress[8];
861  uint8_t FrameCounter[4];
862  uint8_t Exempt;
863 };
864 
866 {
867  uint8_t FrameType;
871 };
872 
874 {
875  // uint8_t DeviceDescriptorHandle : 6;
876  // uint8_t UniqueDevice : 1;
877  // uint8_t Blacklisted : 1;
878  uint8_t Flags;
879 };
880 
883 {
887 #if CASCODA_CA_VER == 8211
888  KDD_NewMask = 0x20,
889 #endif // CASCODA_CA_VER == 8211
890 };
891 
893 {
894  // uint8_t FrameType : 2;
895  // uint8_t CommandFrameIdentifier : 4;
896  uint8_t Flags;
897 };
898 
901 {
905 };
906 
908 {
912  uint8_t Key[16];
913 };
914 
916 {
918  struct M_KeyIdLookupDesc KeyIdLookupList[LOOKUP_DESC_TABLE_SIZE];
919  struct M_KeyDeviceDesc KeyDeviceList[KEY_DEVICE_TABLE_SIZE];
920  struct M_KeyUsageDesc KeyUsageList[KEY_USAGE_TABLE_SIZE];
921 };
922 #endif // CASCODA_CA_VER >= 8212
923 
924 /***************************************************************************/
927 struct ca821x_dev;
928 
930  struct ca821x_dev *pDeviceRef);
932  struct ca821x_dev *pDeviceRef);
934  struct ca821x_dev *pDeviceRef);
936  struct ca821x_dev *pDeviceRef);
938  struct ca821x_dev *pDeviceRef);
940  struct ca821x_dev *pDeviceRef);
942  struct ca821x_dev *pDeviceRef);
944  struct ca821x_dev *pDeviceRef);
946  struct ca821x_dev *pDeviceRef);
948  struct ca821x_dev *pDeviceRef);
949 #if CASCODA_CA_VER >= 8212
950 typedef ca_error (*MLME_POLL_confirm_callback)(struct MLME_POLL_confirm_pset *params, struct ca821x_dev *pDeviceRef);
951 typedef ca_error (*MLME_IE_NOTIFY_indication_callback)(struct MLME_IE_NOTIFY_indication_pset *params,
952  struct ca821x_dev *pDeviceRef);
953 #endif // CASCODA_CA_VER >= 8212
954 typedef ca_error (*MLME_SCAN_confirm_callback)(struct MLME_SCAN_confirm_pset *params, struct ca821x_dev *pDeviceRef);
956  struct ca821x_dev *pDeviceRef);
957 typedef ca_error (*MCPS_DATA_confirm_callback)(struct MCPS_DATA_confirm_pset *params, struct ca821x_dev *pDeviceRef);
958 #if CASCODA_CA_VER >= 8211
959 typedef ca_error (*PCPS_DATA_indication_callback)(struct PCPS_DATA_indication_pset *params,
960  struct ca821x_dev *pDeviceRef);
961 typedef ca_error (*PCPS_DATA_confirm_callback)(struct PCPS_DATA_confirm_pset *params, struct ca821x_dev *pDeviceRef);
962 #endif // CASCODA_CA_VER >= 8211
964  struct ca821x_dev *pDeviceRef);
966  struct ca821x_dev *pDeviceRef);
968  struct ca821x_dev *pDeviceRef);
969 typedef ca_error (*ca821x_generic_callback)(void *params, struct ca821x_dev *pDeviceRef);
970 
973 {
976 #if CASCODA_CA_VER >= 8211
977  PCPS_DATA_indication_callback PCPS_DATA_indication;
978  PCPS_DATA_confirm_callback PCPS_DATA_confirm;
979 #endif // CASCODA_CA_VER >= 8211
989 #if CASCODA_CA_VER >= 8212
990  MLME_POLL_confirm_callback MLME_POLL_confirm;
991  MLME_IE_NOTIFY_indication_callback MLME_IE_NOTIFY_indication;
992 #endif // CASCODA_CA_VER >= 8212
999 };
1000 
1001 /***************************************************************************/
1017 {
1018  uint8_t CommandId;
1019  uint8_t Length;
1020  union
1021  {
1022  /* MAC MCPS / MLME */
1048 #if CASCODA_CA_VER >= 8211
1049  struct MLME_POLL_indication_pset PollInd;
1050 #if CASCODA_CA_VER >= 8212
1051  struct MLME_POLL_confirm_pset PollCnf;
1052  struct MLME_IE_NOTIFY_indication_pset IENotifyInd;
1053 #endif // CASCODA_CA_VER >= 8212
1054  /* PCPS */
1055  struct PCPS_DATA_request_pset PhyDataReq;
1056  struct PCPS_DATA_confirm_pset PhyDataCnf;
1057  struct PCPS_DATA_indication_pset PhyDataInd;
1058 #endif // CASCODA_CA_VER >= 8211
1059  /* HWME */
1067  /* TDME */
1083  /* Common */
1084  uint8_t u8Param;
1085  uint8_t Status;
1086  uint8_t Payload[254];
1088 };
1089 
1090 /******************************************************************************/
1091 /****** SPI Command IDs ******/
1092 /******************************************************************************/
1094 {
1095  SPI_MID_MASK = 0x1F,
1096  SPI_S2M = 0x20,
1097  SPI_SYN = 0x40,
1098  SPI_INVALID = 0x80,
1099 };
1100 
1103 {
1104  //CA821x control bytes
1105  SPI_IDLE = 0xFF,
1106  SPI_NACK = 0xF0,
1107  // MAC MCPS
1113 // MAC PCPS
1114 #if CASCODA_CA_VER >= 8211
1115  SPI_PCPS_DATA_REQUEST = 0x07,
1116  SPI_PCPS_DATA_CONFIRM = 0x38,
1117  SPI_PCPS_DATA_INDICATION = 0x28,
1118 #endif // CASCODA_CA_VER >= 8211
1119  // MAC MLME
1131 #if CASCODA_CA_VER >= 8212
1132  SPI_MLME_POLL_REQUEST = 0x32,
1133 #else
1135 #endif // CASCODA_CA_VER >= 8212
1150 #if CASCODA_CA_VER >= 8212
1151  SPI_MLME_POLL_CONFIRM = 0x33,
1152  SPI_MLME_IE_NOTIFY_INDICATION = 0x22,
1153 #else
1155 #endif // CASCODA_CA_VER >= 8212
1156 #if CASCODA_CA_VER >= 8211
1157  SPI_MLME_POLL_INDICATION = 0x31,
1158 #endif // CASCODA_CA_VER >= 8211
1159  // HWME
1167  // TDME
1183 };
1184 
1185 #ifdef __cplusplus
1186 }
1187 #endif
1188 
1193 #endif // MAC_MESSAGES_H
Global error declarations for use across the Cascoda SDK.
ca_error
Cascoda error type.
Definition: ca821x_error.h:51
@ aMaxPHYPacketSize
Definition: ieee_802_15_4.h:52
@ MAX_ATTRIBUTE_SIZE
Definition: ieee_802_15_4.h:65
@ MAX_DATA_SIZE
Definition: ieee_802_15_4.h:69
kud_mask
Masks for M_KeyUsageDesc Flags.
Definition: mac_messages.h:901
ca_error(* ca821x_generic_callback)(void *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:969
ca_error(* MLME_SYNC_LOSS_indication_callback)(struct MLME_SYNC_LOSS_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:945
SecurityPibSize
Definition: mac_messages.h:669
ca_error(* TDME_RXPKT_indication_callback)(struct TDME_RXPKT_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:963
ca_error(* MLME_ASSOCIATE_indication_callback)(struct MLME_ASSOCIATE_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:931
ca_error(* TDME_ERROR_indication_callback)(struct TDME_ERROR_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:967
ca_error(* MCPS_DATA_confirm_callback)(struct MCPS_DATA_confirm_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:957
kdd_mask
Masks for M_KeyDeviceDesc Flags.
Definition: mac_messages.h:883
ca_error(* MCPS_DATA_indication_callback)(struct MCPS_DATA_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:955
ca_error(* MLME_COMM_STATUS_indication_callback)(struct MLME_COMM_STATUS_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:943
ca_error(* HWME_WAKEUP_indication_callback)(struct HWME_WAKEUP_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:929
ca_error(* MLME_DISASSOCIATE_indication_callback)(struct MLME_DISASSOCIATE_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:935
ca_error(* TDME_EDDET_indication_callback)(struct TDME_EDDET_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:965
#define MAX_HWME_ATTRIBUTE_SIZE
Longest hwme attribute in octets.
Definition: mac_messages.h:54
#define MAX_TDME_ATTRIBUTE_SIZE
Longest tdme attribute in octets.
Definition: mac_messages.h:55
ca_error(* MLME_POLL_indication_callback)(struct MLME_POLL_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:947
#define DEFAULT_RESULT_LIST_SIZE
Default size of scan results list.
Definition: mac_messages.h:503
ca_error(* MLME_BEACON_NOTIFY_indication_callback)(struct MLME_BEACON_NOTIFY_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:939
ca_error(* MLME_ORPHAN_indication_callback)(struct MLME_ORPHAN_indication_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:941
ca_error(* MLME_SCAN_confirm_callback)(struct MLME_SCAN_confirm_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:954
ca_error(* MLME_DISASSOCIATE_confirm_callback)(struct MLME_DISASSOCIATE_confirm_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:937
spi_command_masks
Definition: mac_messages.h:1094
ca_error(* MLME_ASSOCIATE_confirm_callback)(struct MLME_ASSOCIATE_confirm_pset *params, struct ca821x_dev *pDeviceRef)
Definition: mac_messages.h:933
spi_command_ids
SPI Command IDs.
Definition: mac_messages.h:1103
@ KUD_CommandFrameIdentifierMask
Key Usage Descriptor frame type mask.
Definition: mac_messages.h:903
@ KUD_FrameTypeMask
Definition: mac_messages.h:902
@ KUD_CommandFrameIdentifierShift
Key Usage Descriptor command frame identifier mask.
Definition: mac_messages.h:904
@ KDD_UniqueDeviceMask
Key Device Descriptor is blacklisted mask.
Definition: mac_messages.h:886
@ KDD_BlacklistedMask
Key Device Descriptor handle mask.
Definition: mac_messages.h:885
@ KDD_DeviceDescHandleMask
Definition: mac_messages.h:884
@ SPI_MID_MASK
Definition: mac_messages.h:1095
@ SPI_INVALID
Bit indicating a Synchronous Message.
Definition: mac_messages.h:1098
@ SPI_SYN
Bit indicating a Confirm or Indication from Slave to Master.
Definition: mac_messages.h:1097
@ SPI_S2M
Mask to derive the Message ID Code from the Command ID.
Definition: mac_messages.h:1096
@ SPI_MCPS_DATA_REQUEST
Definition: mac_messages.h:1108
@ SPI_HWME_HAES_CONFIRM
Definition: mac_messages.h:1165
@ SPI_TDME_SETSFR_CONFIRM
Definition: mac_messages.h:1174
@ SPI_MCPS_DATA_CONFIRM
Definition: mac_messages.h:1111
@ SPI_HWME_SET_REQUEST
Definition: mac_messages.h:1160
@ SPI_MCPS_DATA_INDICATION
Definition: mac_messages.h:1110
@ SPI_TDME_EDDET_INDICATION
Definition: mac_messages.h:1180
@ SPI_MLME_SYNC_LOSS_INDICATION
Definition: mac_messages.h:1149
@ SPI_TDME_TXPKT_CONFIRM
Definition: mac_messages.h:1178
@ SPI_NACK
Present on SPI when buffer full or busy - resend Request.
Definition: mac_messages.h:1106
@ SPI_MLME_DISASSOCIATE_INDICATION
Definition: mac_messages.h:1138
@ SPI_MLME_DISASSOCIATE_CONFIRM
Definition: mac_messages.h:1139
@ SPI_MLME_POLL_CONFIRM
Definition: mac_messages.h:1154
@ SPI_TDME_TXPKT_REQUEST
Definition: mac_messages.h:1172
@ SPI_MLME_ORPHAN_RESPONSE
Definition: mac_messages.h:1124
@ SPI_IDLE
Present on SPI when stream is idle - No Data.
Definition: mac_messages.h:1105
@ SPI_HWME_GET_CONFIRM
Definition: mac_messages.h:1164
@ SPI_MLME_SCAN_REQUEST
Definition: mac_messages.h:1127
@ SPI_MLME_GET_CONFIRM
Definition: mac_messages.h:1141
@ SPI_MLME_START_REQUEST
Definition: mac_messages.h:1129
@ SPI_MLME_GET_REQUEST
Definition: mac_messages.h:1123
@ SPI_TDME_TESTMODE_REQUEST
Definition: mac_messages.h:1170
@ SPI_TDME_RXPKT_INDICATION
Definition: mac_messages.h:1179
@ SPI_MLME_COMM_STATUS_INDICATION
Definition: mac_messages.h:1146
@ SPI_MLME_ASSOCIATE_REQUEST
Definition: mac_messages.h:1120
@ SPI_MLME_DISASSOCIATE_REQUEST
Definition: mac_messages.h:1122
@ SPI_MLME_SET_REQUEST
Definition: mac_messages.h:1128
@ SPI_MLME_RX_ENABLE_REQUEST
Definition: mac_messages.h:1126
@ SPI_MLME_SCAN_CONFIRM
Definition: mac_messages.h:1145
@ SPI_MLME_RX_ENABLE_CONFIRM
Definition: mac_messages.h:1144
@ SPI_TDME_TESTMODE_CONFIRM
Definition: mac_messages.h:1176
@ SPI_TDME_ERROR_INDICATION
Definition: mac_messages.h:1181
@ SPI_TDME_LOTLK_REQUEST
Definition: mac_messages.h:1173
@ SPI_TDME_SETSFR_REQUEST
Definition: mac_messages.h:1168
@ SPI_HWME_GET_REQUEST
Definition: mac_messages.h:1161
@ SPI_MLME_ASSOCIATE_INDICATION
Definition: mac_messages.h:1136
@ SPI_MLME_SET_CONFIRM
Definition: mac_messages.h:1147
@ SPI_MLME_RESET_REQUEST
Definition: mac_messages.h:1125
@ SPI_HWME_SET_CONFIRM
Definition: mac_messages.h:1163
@ SPI_MLME_ASSOCIATE_RESPONSE
Definition: mac_messages.h:1121
@ SPI_MCPS_PURGE_CONFIRM
Definition: mac_messages.h:1112
@ SPI_MLME_POLL_REQUEST
Definition: mac_messages.h:1134
@ SPI_MLME_ASSOCIATE_CONFIRM
Definition: mac_messages.h:1137
@ SPI_MCPS_PURGE_REQUEST
Definition: mac_messages.h:1109
@ SPI_MLME_SYNC_REQUEST
Definition: mac_messages.h:1130
@ SPI_MLME_RESET_CONFIRM
Definition: mac_messages.h:1143
@ SPI_MLME_START_CONFIRM
Definition: mac_messages.h:1148
@ SPI_HWME_WAKEUP_INDICATION
Definition: mac_messages.h:1166
@ SPI_TDME_GETSFR_REQUEST
Definition: mac_messages.h:1169
@ SPI_TDME_SET_CONFIRM
Definition: mac_messages.h:1177
@ SPI_HWME_HAES_REQUEST
Definition: mac_messages.h:1162
@ SPI_MLME_ORPHAN_INDICATION
Definition: mac_messages.h:1142
@ SPI_MLME_BEACON_NOTIFY_INDICATION
Definition: mac_messages.h:1140
@ SPI_TDME_SET_REQUEST
Definition: mac_messages.h:1171
@ SPI_TDME_GETSFR_CONFIRM
Definition: mac_messages.h:1175
@ SPI_TDME_LOTLK_CONFIRM
Definition: mac_messages.h:1182
Definitions relating to HWME and TDME API messages.
802.15.4 specific definitions (status codes, attributes etc).
Contains raw extended address.
Definition: mac_messages.h:77
uint8_t Address[8]
Extended Address.
Definition: mac_messages.h:78
Contains full addressing information for a node.
Definition: mac_messages.h:63
uint8_t PANId[2]
PanId (little-endian)
Definition: mac_messages.h:65
uint8_t Address[8]
Short or Extended Address, based on AddressMode (little-endian)
Definition: mac_messages.h:66
uint8_t AddressMode
Clarifies the contents of Address (empty, short, extended).
Definition: mac_messages.h:64
HWME_GET_confirm parameter set.
Definition: mac_messages.h:566
uint8_t HWAttribute
Definition: mac_messages.h:568
uint8_t Status
Definition: mac_messages.h:567
uint8_t HWAttributeLength
Definition: mac_messages.h:569
uint8_t HWAttributeValue[MAX_HWME_ATTRIBUTE_SIZE]
Definition: mac_messages.h:570
HWME_GET_request parameter set.
Definition: mac_messages.h:295
uint8_t HWAttribute
Definition: mac_messages.h:296
HWME_HAES_confirm parameter set.
Definition: mac_messages.h:575
uint8_t HAESData[16]
Definition: mac_messages.h:577
uint8_t Status
Definition: mac_messages.h:576
HWME_HAES_request parameter set.
Definition: mac_messages.h:301
uint8_t HAESMode
Definition: mac_messages.h:302
uint8_t HAESData[16]
Definition: mac_messages.h:303
HWME_SET_confirm parameter set.
Definition: mac_messages.h:559
uint8_t HWAttribute
Definition: mac_messages.h:561
uint8_t Status
Definition: mac_messages.h:560
HWME_SET_request parameter set.
Definition: mac_messages.h:287
uint8_t HWAttribute
Definition: mac_messages.h:288
uint8_t HWAttributeValue[MAX_HWME_ATTRIBUTE_SIZE]
Definition: mac_messages.h:290
uint8_t HWAttributeLength
Definition: mac_messages.h:289
HWME_WAKEUP_indication parameter set.
Definition: mac_messages.h:582
uint8_t WakeUpCondition
Definition: mac_messages.h:583
SPI Message Format Typedef.
Definition: mac_messages.h:1017
struct HWME_SET_confirm_pset HWMESetCnf
Definition: mac_messages.h:1063
struct TDME_SET_confirm_pset TDMESetCnf
Definition: mac_messages.h:1077
struct MCPS_DATA_request_pset DataReq
Definition: mac_messages.h:1023
uint8_t Payload[254]
Definition: mac_messages.h:1086
struct MLME_RX_ENABLE_request_pset RxEnableReq
Definition: mac_messages.h:1030
struct MLME_START_request_pset StartReq
Definition: mac_messages.h:1034
struct MLME_ASSOCIATE_indication_pset AssocInd
Definition: mac_messages.h:1038
struct MCPS_DATA_indication_pset DataInd
Definition: mac_messages.h:1037
uint8_t Status
Definition: mac_messages.h:1085
struct TDME_EDDET_indication_pset TDMEEDDetInd
Definition: mac_messages.h:1080
struct HWME_GET_confirm_pset HWMEGetCnf
Definition: mac_messages.h:1064
struct MLME_ASSOCIATE_confirm_pset AssocCnf
Definition: mac_messages.h:1039
struct TDME_GETSFR_request_pset TDMEGetSFRReq
Definition: mac_messages.h:1069
struct TDME_SET_request_pset TDMESetReq
Definition: mac_messages.h:1071
struct TDME_TXPKT_confirm_pset TDMETxPktCnf
Definition: mac_messages.h:1078
uint8_t CommandId
Definition: mac_messages.h:1018
struct TDME_GETSFR_confirm_pset TDMEGetSFRCnf
Definition: mac_messages.h:1075
struct MCPS_DATA_confirm_pset DataCnf
Definition: mac_messages.h:1035
struct HWME_HAES_request_pset HWMEHAESReq
Definition: mac_messages.h:1062
struct TDME_RXPKT_indication_pset TDMERxPktInd
Definition: mac_messages.h:1079
struct HWME_GET_request_pset HWMEGetReq
Definition: mac_messages.h:1061
struct MLME_COMM_STATUS_indication_pset CommStatusInd
Definition: mac_messages.h:1045
struct MLME_ORPHAN_response_pset OrphanRsp
Definition: mac_messages.h:1028
struct MLME_BEACON_NOTIFY_indication_pset BeaconInd
Definition: mac_messages.h:1042
struct TDME_SETSFR_request_pset TDMESetSFRReq
Definition: mac_messages.h:1068
struct HWME_HAES_confirm_pset HWMEHAESCnf
Definition: mac_messages.h:1065
struct MLME_ORPHAN_indication_pset OrphanInd
Definition: mac_messages.h:1047
struct MLME_SET_request_pset SetReq
Definition: mac_messages.h:1032
struct MLME_DISASSOCIATE_request_pset DisassocReq
Definition: mac_messages.h:1026
struct MLME_SCAN_confirm_pset ScanCnf
Definition: mac_messages.h:1044
struct MLME_DISASSOCIATE_indication_pset DisassocInd
Definition: mac_messages.h:1040
struct MLME_ASSOCIATE_request_pset AssocReq
Definition: mac_messages.h:1024
struct TDME_ERROR_indication_pset TDMEErrorInd
Definition: mac_messages.h:1081
struct MLME_GET_confirm_pset GetCnf
Definition: mac_messages.h:1043
struct MLME_SET_confirm_pset SetCnf
Definition: mac_messages.h:1033
struct MLME_SCAN_request_pset ScanReq
Definition: mac_messages.h:1031
struct MLME_GET_request_pset GetReq
Definition: mac_messages.h:1027
struct TDME_TESTMODE_request_pset TDMETestModeReq
Definition: mac_messages.h:1070
struct MLME_SYNC_LOSS_indication_pset SyncLossInd
Definition: mac_messages.h:1046
uint8_t u8Param
Definition: mac_messages.h:1084
struct MLME_DISASSOCIATE_confirm_pset DisassocCnf
Definition: mac_messages.h:1041
struct TDME_TESTMODE_confirm_pset TDMETestModeCnf
Definition: mac_messages.h:1076
struct MLME_POLL_request_pset PollReq
Definition: mac_messages.h:1029
struct TDME_LOTLK_confirm_pset TDMELOTlkCnf
Definition: mac_messages.h:1082
struct TDME_TXPKT_request_pset TDMETxPktReq
Definition: mac_messages.h:1072
uint8_t Length
Definition: mac_messages.h:1019
struct MLME_ASSOCIATE_response_pset AssocRsp
Definition: mac_messages.h:1025
union MAC_Message::@13 PData
struct HWME_WAKEUP_indication_pset HWMEWakeupInd
Definition: mac_messages.h:1066
struct TDME_LOTLK_request_pset TDMELOTlkReq
Definition: mac_messages.h:1073
struct MCPS_PURGE_confirm_pset PurgeCnf
Definition: mac_messages.h:1036
struct TDME_SETSFR_confirm_pset TDMESetSFRCnf
Definition: mac_messages.h:1074
struct HWME_SET_request_pset HWMESetReq
Definition: mac_messages.h:1060
MCPS_DATA_confirm parameter set.
Definition: mac_messages.h:357
uint8_t TimeStamp[4]
Definition: mac_messages.h:360
uint8_t Status
Definition: mac_messages.h:359
uint8_t MsduHandle
Definition: mac_messages.h:358
MCPS_DATA_indication parameter set.
Definition: mac_messages.h:384
struct FullAddr Src
Definition: mac_messages.h:385
struct FullAddr Dst
Definition: mac_messages.h:386
uint8_t DSN
Definition: mac_messages.h:393
uint8_t MpduLinkQuality
Definition: mac_messages.h:392
uint8_t TimeStamp[4]
Definition: mac_messages.h:394
uint8_t Msdu[MAX_DATA_SIZE]
Definition: mac_messages.h:401
uint8_t MsduLength
Definition: mac_messages.h:391
MCPS_DATA_request parameter set.
Definition: mac_messages.h:127
uint8_t MsduHandle
Handle of Data.
Definition: mac_messages.h:131
uint8_t TxOptions
Tx options bit field.
Definition: mac_messages.h:132
struct FullAddr Dst
Destination addressing information.
Definition: mac_messages.h:129
uint8_t Msdu[MAX_DATA_SIZE]
Data.
Definition: mac_messages.h:133
uint8_t MsduLength
Length of Data.
Definition: mac_messages.h:130
uint8_t SrcAddrMode
Source addressing mode.
Definition: mac_messages.h:128
MCPS_PURGE_confirm parameter set.
Definition: mac_messages.h:373
uint8_t MsduHandle
Definition: mac_messages.h:374
uint8_t Status
Definition: mac_messages.h:375
MLME_ASSOCIATE_confirm parameter set.
Definition: mac_messages.h:469
uint8_t Status
Definition: mac_messages.h:471
uint8_t AssocShortAddress[2]
Definition: mac_messages.h:470
struct SecSpec Security
Definition: mac_messages.h:472
MLME_ASSOCIATE_indication parameter set.
Definition: mac_messages.h:461
uint8_t DeviceAddress[8]
Definition: mac_messages.h:462
uint8_t CapabilityInformation
Definition: mac_messages.h:463
struct SecSpec Security
Definition: mac_messages.h:464
MLME_ASSOCIATE_request parameter set.
Definition: mac_messages.h:162
struct SecSpec Security
Security specification.
Definition: mac_messages.h:166
uint8_t LogicalChannel
Channel number.
Definition: mac_messages.h:163
struct FullAddr Dst
Destination addressing information.
Definition: mac_messages.h:164
uint8_t CapabilityInfo
Bitmap of operational capabilities.
Definition: mac_messages.h:165
MLME_ASSOCIATE_response parameter set.
Definition: mac_messages.h:171
uint8_t Status
Definition: mac_messages.h:174
uint8_t DeviceAddress[8]
IEEE address to give to associating device.
Definition: mac_messages.h:172
uint8_t AssocShortAddress[2]
Definition: mac_messages.h:173
struct SecSpec Security
Definition: mac_messages.h:175
MLME_BEACON_NOTIFY_indication parameter set.
Definition: mac_messages.h:492
uint8_t BSN
Definition: mac_messages.h:493
MLME_COMM_STATUS_indication parameter set.
Definition: mac_messages.h:517
uint8_t Status
Definition: mac_messages.h:523
uint8_t SrcAddrMode
Definition: mac_messages.h:519
uint8_t DstAddr[8]
Definition: mac_messages.h:522
uint8_t SrcAddr[8]
Definition: mac_messages.h:520
uint8_t DstAddrMode
Definition: mac_messages.h:521
struct SecSpec Security
Definition: mac_messages.h:524
uint8_t PANId[2]
Definition: mac_messages.h:518
MLME_DISASSOCIATE_confirm parameter set.
Definition: mac_messages.h:477
struct FullAddr Address
Definition: mac_messages.h:479
uint8_t Status
Definition: mac_messages.h:478
MLME_DISASSOCIATE_indication parameter set.
Definition: mac_messages.h:484
uint8_t DevAddr[8]
Definition: mac_messages.h:485
uint8_t Reason
Definition: mac_messages.h:486
struct SecSpec Security
Definition: mac_messages.h:487
MLME_DISASSOCIATE_request parameter set.
Definition: mac_messages.h:180
struct SecSpec Security
Definition: mac_messages.h:184
uint8_t TxIndirect
Definition: mac_messages.h:183
uint8_t DisassociateReason
Definition: mac_messages.h:182
struct FullAddr DevAddr
Definition: mac_messages.h:181
MLME_GET_confirm parameter set.
Definition: mac_messages.h:196
uint8_t PIBAttribute
Definition: mac_messages.h:198
uint8_t PIBAttributeValue[MAX_ATTRIBUTE_SIZE]
Definition: mac_messages.h:201
uint8_t PIBAttributeIndex
Definition: mac_messages.h:199
uint8_t Status
Definition: mac_messages.h:197
uint8_t PIBAttributeLength
Definition: mac_messages.h:200
MLME_GET_request parameter set.
Definition: mac_messages.h:189
uint8_t PIBAttribute
Definition: mac_messages.h:190
uint8_t PIBAttributeIndex
Definition: mac_messages.h:191
MLME_ORPHAN_indication parameter set.
Definition: mac_messages.h:529
struct SecSpec Security
Definition: mac_messages.h:531
uint8_t OrphanAddr[8]
Definition: mac_messages.h:530
MLME_ORPHAN_response parameter set.
Definition: mac_messages.h:206
uint8_t AssociatedMember
Definition: mac_messages.h:209
uint8_t ShortAddress[2]
Definition: mac_messages.h:208
struct SecSpec Security
Definition: mac_messages.h:210
uint8_t OrphanAddress[8]
Definition: mac_messages.h:207
Definition: mac_messages.h:544
struct FullAddr Dst
Definition: mac_messages.h:546
uint8_t LQI
Definition: mac_messages.h:547
struct SecSpec Security
Definition: mac_messages.h:552
struct FullAddr Src
Definition: mac_messages.h:545
uint8_t DSN
Definition: mac_messages.h:548
MLME_POLL_request parameter set.
Definition: mac_messages.h:215
struct FullAddr CoordAddress
Definition: mac_messages.h:216
struct SecSpec Security
Definition: mac_messages.h:225
MLME_RX_ENABLE_request parameter set.
Definition: mac_messages.h:237
uint8_t RxOnTime[4]
Definition: mac_messages.h:239
uint8_t DeferPermit
Definition: mac_messages.h:238
uint8_t RxOnDuration[4]
Definition: mac_messages.h:240
MLME_SCAN_confirm parameter set.
Definition: mac_messages.h:507
uint8_t ScanType
Definition: mac_messages.h:509
uint8_t ResultListSize
Definition: mac_messages.h:511
uint8_t UnscannedChannels[4]
Definition: mac_messages.h:510
uint8_t ResultList[DEFAULT_RESULT_LIST_SIZE]
Definition: mac_messages.h:512
uint8_t Status
Definition: mac_messages.h:508
MLME_SCAN_request parameter set.
Definition: mac_messages.h:245
uint8_t ScanType
Definition: mac_messages.h:246
struct SecSpec Security
Definition: mac_messages.h:249
uint8_t ScanChannels[4]
Definition: mac_messages.h:247
uint8_t ScanDuration
Definition: mac_messages.h:248
MLME_SET_confirm parameter set.
Definition: mac_messages.h:263
uint8_t PIBAttributeIndex
Definition: mac_messages.h:266
uint8_t PIBAttribute
Definition: mac_messages.h:265
uint8_t Status
Definition: mac_messages.h:264
MLME_SET_request parameter set.
Definition: mac_messages.h:254
uint8_t PIBAttributeIndex
Definition: mac_messages.h:256
uint8_t PIBAttributeValue[MAX_ATTRIBUTE_SIZE]
Definition: mac_messages.h:258
uint8_t PIBAttribute
Definition: mac_messages.h:255
uint8_t PIBAttributeLength
Definition: mac_messages.h:257
MLME_START_request parameter set.
Definition: mac_messages.h:271
uint8_t BeaconOrder
Definition: mac_messages.h:274
uint8_t PANCoordinator
Definition: mac_messages.h:276
uint8_t BatteryLifeExtension
Definition: mac_messages.h:277
uint8_t PANId[2]
Definition: mac_messages.h:272
struct SecSpec BeaconSecurity
Definition: mac_messages.h:280
uint8_t SuperframeOrder
Definition: mac_messages.h:275
struct SecSpec CoordRealignSecurity
Definition: mac_messages.h:279
uint8_t CoordRealignment
Definition: mac_messages.h:278
uint8_t LogicalChannel
Definition: mac_messages.h:273
MLME_SYNC_LOSS_indication parameter set.
Definition: mac_messages.h:536
uint8_t LogicalChannel
Definition: mac_messages.h:539
uint8_t LossReason
Definition: mac_messages.h:537
uint8_t PANId[2]
Definition: mac_messages.h:538
struct SecSpec Security
Definition: mac_messages.h:540
Definition: mac_messages.h:857
uint8_t ShortAddress[2]
Definition: mac_messages.h:859
uint8_t ExtAddress[8]
Definition: mac_messages.h:860
uint8_t Exempt
Definition: mac_messages.h:862
uint8_t FrameCounter[4]
Definition: mac_messages.h:861
uint8_t PANId[2]
Definition: mac_messages.h:858
Definition: mac_messages.h:916
struct M_KeyIdLookupDesc KeyIdLookupList[LOOKUP_DESC_TABLE_SIZE]
Definition: mac_messages.h:918
struct M_KeyDeviceDesc KeyDeviceList[KEY_DEVICE_TABLE_SIZE]
Definition: mac_messages.h:919
struct M_KeyUsageDesc KeyUsageList[KEY_USAGE_TABLE_SIZE]
Definition: mac_messages.h:920
struct M_KeyTableEntryFixed Fixed
Definition: mac_messages.h:917
Definition: mac_messages.h:874
uint8_t Flags
Definition: mac_messages.h:878
Definition: mac_messages.h:851
uint8_t LookupData[9]
Definition: mac_messages.h:852
uint8_t LookupDataSizeCode
Definition: mac_messages.h:853
Definition: mac_messages.h:908
uint8_t Key[16]
Definition: mac_messages.h:912
uint8_t KeyUsageListEntries
Definition: mac_messages.h:911
uint8_t KeyDeviceListEntries
Definition: mac_messages.h:910
uint8_t KeyIdLookupListEntries
Definition: mac_messages.h:909
Definition: mac_messages.h:893
uint8_t Flags
Definition: mac_messages.h:896
Definition: mac_messages.h:866
uint8_t FrameType
Definition: mac_messages.h:867
uint8_t DeviceOverrideSecurityMinimum
Definition: mac_messages.h:870
uint8_t CommandFrameIdentifier
Definition: mac_messages.h:868
uint8_t SecurityMinimum
Definition: mac_messages.h:869
Holds either short or extended address.
Definition: mac_messages.h:83
uint8_t Address[8]
Short or Extended Address, based on AddressMode (little-endian)
Definition: mac_messages.h:85
uint8_t AddressMode
Clarifies the contents of Address (empty, short, extended).
Definition: mac_messages.h:84
Describes a discovered PAN.
Definition: mac_messages.h:99
uint8_t SuperframeSpec[2]
Superframe specification.
Definition: mac_messages.h:102
struct FullAddr Coord
PAN coordinator addressing information.
Definition: mac_messages.h:100
uint8_t TimeStamp[4]
Time at which the beacon was received, in symbols.
Definition: mac_messages.h:105
uint8_t SecurityFailure
Security processing status of the beacon frame.
Definition: mac_messages.h:106
uint8_t GTSPermit
True if the beacon originator is a PAN coordinator accepting GTS requests.
Definition: mac_messages.h:103
uint8_t LinkQuality
LQI of the received beacon.
Definition: mac_messages.h:104
struct SecSpec Security
Security specification of the beacon.
Definition: mac_messages.h:107
uint8_t LogicalChannel
Current operating channel.
Definition: mac_messages.h:101
Security specification to be applied to MAC frames.
Definition: mac_messages.h:90
uint8_t KeySource[8]
Source part of key lookup data (commonly addressing info)
Definition: mac_messages.h:93
uint8_t KeyIndex
Index part of key lookup data.
Definition: mac_messages.h:94
uint8_t KeyIdMode
How the key is to be retrieved.
Definition: mac_messages.h:92
uint8_t SecurityLevel
Specifies level of authentication and encryption.
Definition: mac_messages.h:91
Contains raw little endian short address.
Definition: mac_messages.h:71
uint8_t Address[2]
Short Address (little-endian)
Definition: mac_messages.h:72
TDME_EDDET_indication parameter set.
Definition: mac_messages.h:641
uint8_t TestCSValue
Definition: mac_messages.h:644
uint8_t TestTimeAboveThreshold_us[2]
Definition: mac_messages.h:645
uint8_t TestEDThreshold
Definition: mac_messages.h:642
uint8_t TestEDValue
Definition: mac_messages.h:643
TDME_ERROR_indication parameter set.
Definition: mac_messages.h:650
uint8_t ErrorCode
Definition: mac_messages.h:651
TDME_GETSFR_confirm parameter set.
Definition: mac_messages.h:598
uint8_t SFRPage
Definition: mac_messages.h:600
uint8_t SFRValue
Definition: mac_messages.h:602
uint8_t Status
Definition: mac_messages.h:599
uint8_t SFRAddress
Definition: mac_messages.h:601
TDME_GETSFR_request parameter set.
Definition: mac_messages.h:318
uint8_t SFRPage
Definition: mac_messages.h:319
uint8_t SFRAddress
Definition: mac_messages.h:320
TDME_LOTLK_confirm parameter set.
Definition: mac_messages.h:656
uint8_t TestLOTXCALValue
Definition: mac_messages.h:662
uint8_t TestLOFDACValue
Definition: mac_messages.h:660
uint8_t TestLOAMPValue
Definition: mac_messages.h:661
uint8_t TestChannel
Definition: mac_messages.h:658
uint8_t TestRxTxb
Definition: mac_messages.h:659
uint8_t Status
Definition: mac_messages.h:657
TDME_LOTLK_request parameter set.
Definition: mac_messages.h:348
uint8_t TestChannel
Definition: mac_messages.h:349
uint8_t TestRxTxb
Definition: mac_messages.h:350
TDME_RXPKT_indication parameter set.
Definition: mac_messages.h:630
uint8_t TestPacketLength
Definition: mac_messages.h:635
uint8_t TestPacketEDValue
Definition: mac_messages.h:632
uint8_t Status
Definition: mac_messages.h:631
uint8_t TestPacketData[128]
Definition: mac_messages.h:636
uint8_t TestPacketFoffsValue
Definition: mac_messages.h:634
uint8_t TestPacketCSValue
Definition: mac_messages.h:633
TDME_SETSFR_confirm parameter set.
Definition: mac_messages.h:590
uint8_t Status
Definition: mac_messages.h:591
uint8_t SFRAddress
Definition: mac_messages.h:593
uint8_t SFRPage
Definition: mac_messages.h:592
TDME_SETSFR_request parameter set.
Definition: mac_messages.h:310
uint8_t SFRValue
Definition: mac_messages.h:313
uint8_t SFRAddress
Definition: mac_messages.h:312
uint8_t SFRPage
Definition: mac_messages.h:311
TDME_SET_confirm parameter set.
Definition: mac_messages.h:614
uint8_t TDAttribute
Definition: mac_messages.h:616
uint8_t Status
Definition: mac_messages.h:615
TDME_SET_request parameter set.
Definition: mac_messages.h:331
uint8_t TDAttributeValue[MAX_TDME_ATTRIBUTE_SIZE]
Definition: mac_messages.h:334
uint8_t TDAttributeLength
Definition: mac_messages.h:333
uint8_t TDAttribute
Definition: mac_messages.h:332
TDME_TESTMODE_confirm parameter set.
Definition: mac_messages.h:607
uint8_t Status
Definition: mac_messages.h:608
uint8_t TestMode
Definition: mac_messages.h:609
TDME_TESTMODE_request parameter set.
Definition: mac_messages.h:325
uint8_t TestMode
Definition: mac_messages.h:326
TDME_TXPKT_confirm parameter set.
Definition: mac_messages.h:621
uint8_t TestPacketData[128]
Definition: mac_messages.h:625
uint8_t TestPacketSequenceNumber
Definition: mac_messages.h:623
uint8_t TestPacketLength
Definition: mac_messages.h:624
uint8_t Status
Definition: mac_messages.h:622
TDME_TXPKT_request parameter set.
Definition: mac_messages.h:339
uint8_t TestPacketDataType
Definition: mac_messages.h:340
uint8_t TestPacketData[128]
Definition: mac_messages.h:343
uint8_t TestPacketSequenceNumber
Definition: mac_messages.h:341
uint8_t TestPacketLength
Definition: mac_messages.h:342
CA-821x Device reference struct.
Definition: ca821x_api.h:123
Union of all compatible callback types.
Definition: mac_messages.h:973
MLME_DISASSOCIATE_confirm_callback MLME_DISASSOCIATE_confirm
Definition: mac_messages.h:983
ca821x_generic_callback generic_callback
Definition: mac_messages.h:998
TDME_RXPKT_indication_callback TDME_RXPKT_indication
Definition: mac_messages.h:995
MLME_SCAN_confirm_callback MLME_SCAN_confirm
Definition: mac_messages.h:986
MLME_ASSOCIATE_indication_callback MLME_ASSOCIATE_indication
Definition: mac_messages.h:980
MLME_COMM_STATUS_indication_callback MLME_COMM_STATUS_indication
Definition: mac_messages.h:987
TDME_EDDET_indication_callback TDME_EDDET_indication
Definition: mac_messages.h:996
TDME_ERROR_indication_callback TDME_ERROR_indication
Definition: mac_messages.h:997
MLME_ORPHAN_indication_callback MLME_ORPHAN_indication
Definition: mac_messages.h:985
MLME_POLL_indication_callback MLME_POLL_indication
Definition: mac_messages.h:988
MLME_SYNC_LOSS_indication_callback MLME_SYNC_LOSS_indication
Definition: mac_messages.h:993
MLME_ASSOCIATE_confirm_callback MLME_ASSOCIATE_confirm
Definition: mac_messages.h:981
MCPS_DATA_indication_callback MCPS_DATA_indication
Definition: mac_messages.h:974
MLME_BEACON_NOTIFY_indication_callback MLME_BEACON_NOTIFY_indication
Definition: mac_messages.h:984
HWME_WAKEUP_indication_callback HWME_WAKEUP_indication
Definition: mac_messages.h:994
MCPS_DATA_confirm_callback MCPS_DATA_confirm
Definition: mac_messages.h:975
MLME_DISASSOCIATE_indication_callback MLME_DISASSOCIATE_indication
Definition: mac_messages.h:982