?? mac_pib.h
字號(hào):
/**************************************************************************** * * MODULE: MAC * * COMPONENT: $RCSfile: mac_pib.h,v $ * * VERSION: $Name: zed003_cd $ * * REVISION: $Revision: 1.2 $ * * DATED: $Date: 2006/02/17 07:34:03 $ * * STATUS: $State: Exp $ * * AUTHOR: rcc * * DESCRIPTION: * MAC - The 802.15.4 Media Access Controller * For use with ZED003 ROM based MAC build * * LAST MODIFIED BY: $Author: cjg $ * $Modtime$ * * **************************************************************************** * * (c) Copyright 2006, Jennic Limited * ****************************************************************************//** * @defgroup g_mac_pib MAC PIB * * Parameters associated with setting or getting PIB values. * PIB direct access allows getting and setting of PIB attributes directly by obtaining * the PIB handle and dereferencing it appropriately. * All PIB attributes can be read (got) in this manner * Most PIB attributes can be written (set) in this manner, however some PIB attributes * require an auxiliary function call to be called instead. This is because they also require * hardware register values to change as well. * The functions listed in this group indicate which PIB attributes need to be set in this manner * @ingroup g_mac */#ifndef _mac_pib_h_#define _mac_pib_h_#ifdef __cplusplusextern "C" {#endif/***********************//**** INCLUDE FILES ****//***********************/#include "jendefs.h"#include "mac_sap.h"/************************//**** MACROS/DEFINES ****//************************/#define MAC_MAX_ACL_ENTRIES 16/*************//**** PIB ****//*************//** * @name PIB defaults, maxima and minima * @ingroup g_mac_pib * All the default values, minima and maxima for the MAC PIB * @{ *//** Association permit default */#define MAC_PIB_ASSOCIATION_PERMIT_DEF ((bool_t)FALSE)/** Auto request default */#define MAC_PIB_AUTO_REQUEST_DEF ((bool_t)TRUE)/** Battery life extension default */#define MAC_PIB_BATT_LIFE_EXT_DEF ((bool_t)FALSE)/** Beacon order minimum */#define MAC_PIB_BEACON_ORDER_MIN ((uint8)0)/** Beacon order default */#define MAC_PIB_BEACON_ORDER_DEF ((uint8)15)/** Beacon order maximum */#define MAC_PIB_BEACON_ORDER_MAX ((uint8)15)/** Beacon transmit time minimum */#define MAC_PIB_BEACON_TX_TIME_MIN ((uint32)0x000000)/** Beacon transmit time default */#define MAC_PIB_BEACON_TX_TIME_DEF ((uint32)0x000000)/** Beacon transmit time maximum */#define MAC_PIB_BEACON_TX_TIME_MAX ((uint32)0xFFFFFF)/** Coordinator short address minimum */#define MAC_PIB_COORD_SHORT_ADDRESS_MIN ((uint16)0x0000)/** Coordinator short address default */#define MAC_PIB_COORD_SHORT_ADDRESS_DEF ((uint16)0xFFFF)/** Coordinator short address maximum */#define MAC_PIB_COORD_SHORT_ADDRESS_MAX ((uint16)0xFFFF)/** GTS permit default */#define MAC_PIB_GTS_PERMIT_DEF ((bool_t)TRUE)/** Maximum CSMA backoffs minimum */#define MAC_PIB_MAX_CSMA_BACKOFFS_MIN ((uint8)0)/** Maximum CSMA backoffs default */#define MAC_PIB_MAX_CSMA_BACKOFFS_DEF ((uint8)4)/** Maximum CSMA backoffs maximum */#define MAC_PIB_MAX_CSMA_BACKOFFS_MAX ((uint8)5)/** Minimum backoff exponent minimum */#define MAC_PIB_MIN_BE_MIN ((uint8)0)/** Minimum backoff exponent default */#define MAC_PIB_MIN_BE_DEF ((uint8)3)/** Minimum backoff exponent maximum */#define MAC_PIB_MIN_BE_MAX ((uint8)3)/** PAN ID minimum */#define MAC_PIB_PAN_ID_MIN ((uint16)0x0000)/** PAN ID default */#define MAC_PIB_PAN_ID_DEF ((uint16)0xFFFF)/** PAN ID maximum */#define MAC_PIB_PAN_ID_MAX ((uint16)0xFFFF)/** Promiscuous mode default */#define MAC_PIB_PROMISCUOUS_MODE_DEF ((bool_t)FALSE)/** Receive on when idle default */#define MAC_PIB_RX_ON_WHEN_IDLE_DEF ((bool_t)FALSE)/** Short address minimum */#define MAC_PIB_SHORT_ADDRESS_MIN ((uint16)0x0000)/** Short address default */#define MAC_PIB_SHORT_ADDRESS_DEF ((uint16)0xFFFF)/** Short address maximum */#define MAC_PIB_SHORT_ADDRESS_MAX ((uint16)0xFFFF)/** Superframe order minimum */#define MAC_PIB_SUPERFRAME_ORDER_MIN ((uint8)0)/** Superframe order default */#define MAC_PIB_SUPERFRAME_ORDER_DEF ((uint8)15)/** Superframe order maximum */#define MAC_PIB_SUPERFRAME_ORDER_MAX ((uint8)15)/** Transaction persistence time minimum */#define MAC_PIB_TRANSACTION_PERSISTENCE_TIME_MIN ((uint16)0x0000)/** Transaction persistence time default */#define MAC_PIB_TRANSACTION_PERSISTENCE_TIME_DEF ((uint16)0x01F4)/** Transaction persistence time maximum */#define MAC_PIB_TRANSACTION_PERSISTENCE_TIME_MAX ((uint16)0xFFFF)/** Total frame transmit time minimum */#define MAC_PIB_MAX_TOTAL_FRAME_TX_TIME_MIN ((uint16)143)/** Total frame transmit time default */#define MAC_PIB_MAX_TOTAL_FRAME_TX_TIME_DEF ((uint16)1220)/** Total frame transmit time maximum */#define MAC_PIB_MAX_TOTAL_FRAME_TX_TIME_MAX ((uint16)25776)/** Response wait time minimum */#define MAC_PIB_RESPONSE_WAIT_TIME_MIN ((uint8)2)/** Response wait time default */#define MAC_PIB_RESPONSE_WAIT_TIME_DEF ((uint8)32)/** Response wait time maximum */#define MAC_PIB_RESPONSE_WAIT_TIME_MAX ((uint8)64)/** ACL entry descriptor set size minimum */#define MAC_PIB_ACL_ENTRY_DESCRIPTOR_SET_SIZE_MIN ((uint8)0)/** ACL entry descriptor set size default */#define MAC_PIB_ACL_ENTRY_DESCRIPTOR_SET_SIZE_DEF ((uint8)0)/** ACL entry descriptor set size maximum */#define MAC_PIB_ACL_ENTRY_DESCRIPTOR_SET_SIZE_MAX ((uint8)MAC_MAX_ACL_ENTRIES)/** Use default security default */#define MAC_PIB_DEFAULT_SECURITY_DEF ((bool_t)FALSE)/** Default security length minimum */#define MAC_PIB_ACL_DEFAULT_SECURITY_LEN_MIN ((uint8)0)/** Default security length default */#define MAC_PIB_ACL_DEFAULT_SECURITY_LEN_DEF ((uint8)0x15)/** Default security length maximum */#define MAC_PIB_ACL_DEFAULT_SECURITY_LEN_MAX ((uint8)MAC_MAX_SECURITY_MATERIAL_LEN)/** Security suite minimum */#define MAC_PIB_DEFAULT_SECURITY_SUITE_MIN ((uint8)0)/** Security suite default */#define MAC_PIB_DEFAULT_SECURITY_SUITE_DEF ((uint8)0)/** Security suite maximum */#define MAC_PIB_DEFAULT_SECURITY_SUITE_MAX ((uint8)7)/** Security mode minimum */#define MAC_PIB_SECURITY_MODE_MIN ((uint8)0)/** Security mode default */#define MAC_PIB_SECURITY_MODE_DEF ((uint8)0)/** Security mode maximum */#define MAC_PIB_SECURITY_MODE_MAX ((uint8)2)/** Security material: Key length in words */#define MAC_KEY_LEN_WORDS 4/** Security material: Key length in octets */#define MAC_KEY_LEN_OCTETS 16/** Security material: Frame counter length in words */#define MAC_FRAME_COUNTER_WORDS 1/** Security material: Frame counter length in octets */#define MAC_FRAME_COUNTER_OCTETS 4/** Security mode: Unsecured */#define MAC_SECURITY_MODE_UNSECURED 0/** Security mode: ACL mode */#define MAC_SECURITY_MODE_ACL 1/** Security mode: Secured */#define MAC_SECURITY_MODE_SECURED 2/** ACL freshness support: Lowest numbered ACL suite supporting freshness */#define ACL_SUITE_FRESHNESS_MIN 1/** ACL freshness support: Highest numbered ACL suite supporting freshness */#define ACL_SUITE_FRESHNESS_MAX 4/** ACL freshness support: Length of security material supporting freshness */#define ACL_SECURITY_FRESHNESS_LEN 26/* @} *//**************************//**** TYPE DEFINITIONS ****//**************************//** * MAC PIB Ack wait duration * Enumeration of PIB Ack wait duration attribute * @ingroup g_mac_pib */typedef enum{ MAC_PIB_ACK_WAIT_DURATION_HI = 54, MAC_PIB_ACK_WAIT_DURATION_LO = 120, NUM_MAC_PIB_ACK_WAIT_DURATION} MAC_PibAckWaitDuration_e;#define MAC_PIB_ACK_WAIT_DURATION_DEF MAC_PIB_ACK_WAIT_DURATION_HI/** * MAC PIB Battery life extension periods * Enumeration of PIB Battery life extension periods attribute * @ingroup g_mac_pib */typedef enum{ MAC_PIB_BATT_LIFE_EXT_PERIODS_HI = 6, MAC_PIB_BATT_LIFE_EXT_PERIODS_LO = 8, NUM_MAC_PIB_BATT_LIFE_EXT_PERIODS} MAC_PibBattLifeExtPeriods_e;#define MAC_PIB_BATT_LIFE_EXT_PERIODS_DEF MAC_PIB_BATT_LIFE_EXT_PERIODS_HI/** * MAC Security Material. * Contains one instance of security material. * @ingroup g_mac_pib */typedef struct{ uint32 au32SymmetricKey[MAC_KEY_LEN_WORDS]; uint32 u32FrameCounter; uint32 u32ExtFrameCounter; uint8 u8KeySeqCounter; uint8 u8ExtKeySeqCounter;} MAC_PibSecurityMaterial_s;/** * MAC Acl Entry. * Contains data for an Acl Entry. * @ingroup g_mac_pib */typedef struct tagMAC_PibAclEntry_s{ MAC_ExtAddr_s sAclExtAddr; uint16 u16AclShortAddr; uint16 u16AclPanId; uint8 u8AclSecurityMaterialLength; uint8 u8AclSecuritySuite; MAC_PibSecurityMaterial_s sAclSecurityMaterial;} MAC_PibAclEntry_s;/** * MAC PIB * The PIB itself * @ingroup g_mac_pib */typedef struct{ uint8 eAckWaitDuration; /**< macAckWaitDuration attribute. @sa MAC_PibAckWaitDuration_e */ bool_t bAssociationPermit; /**< macAssociationPermit attribute */ bool_t bAutoRequest; /**< macAutoRequest attribute */ bool_t bBattLifeExt; /**< macBattLifeExt attribute */ uint8 eBattLifeExtPeriods; /**< macBattLifeExtPeriods attribute. @sa MAC_PibBattLifeExtPeriods_e */ uint8 u8BeaconOrder; /**< macBeaconOrder attribute */ uint8 u8SuperframeOrder; /**< macSuperframeOrder attribute */ bool_t bGtsPermit; /**< macGTSPermit attribute */ bool_t bPromiscuousMode_ReadOnly; /**< macPromiscuousMode attribute */ bool_t bRxOnWhenIdle_ReadOnly; /**< macRxOnWhenIdle attribute */ /* PIB security attributes */ uint8 u8AclEntrySetSize; /**< macAclEntrySetSize attribute */ bool_t bDefaultSecurity; /**< macDefaultSecurity attribute */ uint8 u8AclDefaultSecurityMaterialLength; /**< macAclDefaultSecurityMaterialLength attribute */ uint8 u8DefaultSecuritySuite; /**< macDefaultSecuritySuite attribute */ uint8 u8SecurityMode; /**< macSecurityMode attribute */ uint16 u16CoordShortAddr; /**< macCoordShortAddress attribute */ uint16 u16TransactionPersistenceTime; /**< macTransactionPersistenceTime attribute */ /**** The attributes below are NOT in the initialisation structure ****/ /* Default 0 attributes */ uint8 u8BeaconPayloadLength; /**< macBeaconPayloadLength attrbute */ uint8 au8BeaconPayload[MAC_MAX_BEACON_PAYLOAD_LEN];/**< macBeaconPayload attrbute */ MAC_ExtAddr_s sCoordExtAddr; /**< macCoordExtendedAddress attribute */ uint32 u32BeaconTxTime; /**< macBeaconTxTime attribute */ /* Explicitly initialised attributes */ uint8 u8Bsn; /**< macBSN attribute */ uint8 u8Dsn; /**< macDSN attribute */ uint8 u8MaxCsmaBackoffs_ReadOnly; /**< macMaxCSMABackoffs attribute */ uint8 u8MinBe_ReadOnly; /**< macMinBE attribute */ uint16 u16PanId_ReadOnly; /**< macPANId attribute */ uint16 u16ShortAddr_ReadOnly; /**< macShortAddress attribute */ /* Structs and arrays at end to make initialisation from const initialiser easy */ /** * macDefaultSecurityMaterial attribute * @note Split into relevant fields */ MAC_PibSecurityMaterial_s sDefaultSecurityMaterial; /** * ACL Entry Table */ MAC_PibAclEntry_s asAclEntryDescriptorSet[MAC_MAX_ACL_ENTRIES];} MAC_Pib_s;/****************************//**** EXPORTED VARIABLES ****//****************************//****************************//**** EXPORTED FUNCTIONS ****//****************************/typedef MAC_Pib_s * (*tprMAC_psPibGetHandle)(void *pvMac);typedef void (*tprMAC_vPibSetShortAddr)(void *pvMac, uint16 u16ShortAddr);typedef void (*tprMAC_vPibSetPanId)(void *pvMac, uint16 u16PanId);typedef void (*tprMAC_vPibSetMinBe)(void *pvMac, uint8 u8MinBe);typedef void (*tprMAC_vPibSetMaxCsmaBackoffs)(void *pvMac, uint8 u8MaxCsmaBackoffs);typedef void (*tprMAC_vPibSetPromiscuousMode)(void *pvMac, bool_t bNewState, bool_t bInReset);typedef void (*tprMAC_vPibSetRxOnWhenIdle)(void *pvMac, bool_t bNewState, bool_t bInReset);typedef void (*tprMAC_vSetExtAddr)(void *pvMac, MAC_ExtAddr_s *psExtAddr);#define MAC_psPibGetHandle ((tprMAC_psPibGetHandle)(*(uint32 *)0x24))#define MAC_vPibSetShortAddr ((tprMAC_vPibSetShortAddr)(*(uint32 *)0x28))#define MAC_vPibSetPanId ((tprMAC_vPibSetPanId)(*(uint32 *)0x2c))#define MAC_vPibSetMinBe ((tprMAC_vPibSetMinBe)(*(uint32 *)0x30))#define MAC_vPibSetMaxCsmaBackoffs ((tprMAC_vPibSetMaxCsmaBackoffs)(*(uint32 *)0x34))#define MAC_vPibSetPromiscuousMode ((tprMAC_vPibSetPromiscuousMode)(*(uint32 *)0x38))#define MAC_vPibSetRxOnWhenIdle ((tprMAC_vPibSetRxOnWhenIdle)(*(uint32 *)0x3c))#define MAC_vSetExtAddr ((tprMAC_vSetExtAddr)(*(uint32 *)0x40))#ifdef __cplusplus};#endif#endif /* _mac_pib_h_ *//* End of file $RCSfile: mac_pib.h,v $ *******************************************/
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -