Microchip® Advanced Software Framework

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
MAC Request API's

This module describes all MAC Request API's.

Functions

bool wpan_mcps_purge_req (const uint8_t msduHandle)
 Initiate MCPS-PURGE.request service and have it placed in the MCPS-SAP queue. More...
 
bool wpan_mlme_associate_req (uint8_t LogicalChannel, uint8_t ChannelPage, wpan_addr_spec_t *CoordAddrSpec, uint8_t CapabilityInformation)
 Initiate MLME-ASSOCIATE.request service and have it placed in the MLME-SAP queue. More...
 
bool wpan_mlme_disassociate_req (wpan_addr_spec_t *DeviceAddrSpec, uint8_t DisassociateReason, bool TxIndirect)
 Inititate MLME-DISASSOCIATE.request service and have it placed in the MLME-SAP queue. More...
 
bool wpan_mlme_get_req (uint8_t PIBAttribute)
 Initiate MLME-GET.request service and have it placed in the MLME-SAP queue. More...
 
bool wpan_mlme_poll_req (wpan_addr_spec_t *CoordAddrSpec)
 Initiate MLME-POLL.request service and have it placed in the MLME-SAP queue. More...
 
bool wpan_mlme_reset_req (bool SetDefaultPib)
 Initiate MLME-RESET.request service and have it placed in the MLME-SAP queue. More...
 
bool wpan_mlme_rx_enable_req (bool DeferPermit, uint32_t RxOnTime, uint32_t RxOnDuration)
 Initiate MLME-RX-ENABLE.request service and have it placed in the MLME-SAP queue. More...
 
bool wpan_mlme_scan_req (uint8_t ScanType, uint32_t ScanChannels, uint8_t ScanDuration, uint8_t ChannelPage)
 Initiate MLME-SCAN.request service and have it placed in the MLME-SAP queue. More...
 
bool wpan_mlme_set_req (uint8_t PIBAttribute, void *PIBAttributeValue)
 Initiate MLME-SET.request service and have it placed in MLME_SAP queue. More...
 
bool wpan_mlme_start_req (uint16_t PANId, uint8_t LogicalChannel, uint8_t ChannelPage, uint8_t BeaconOrder, uint8_t SuperframeOrder, bool PANCoordinator, bool BatteryLifeExtension, bool CoordRealignment)
 Initiate MLME-START service and have it placed in the MLME-SAP queue. More...
 
bool wpan_mlme_sync_req (uint8_t LogicalChannel, uint8_t ChannelPage, bool TrackBeacon)
 Initiate MLME-SYNC.request service and have it placed in the MLME-SAP queue. More...
 

bool wpan_mcps_purge_req ( const uint8_t  msduHandle)

Initiate MCPS-PURGE.request service and have it placed in the MCPS-SAP queue.

Parameters
msduHandleHandle of MSDU to be purged.
Returns
true - success; false - buffer not available or queue full.

References bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mcps_purge_req_tag::cmdcode, LARGE_BUFFER_SIZE, MAC_SUCCESS, MCPS_PURGE_REQUEST, mcps_purge_req_tag::msduHandle, nhle_mac_q, and qmm_queue_append().

Referenced by handle_incoming_msg().

bool wpan_mlme_associate_req ( uint8_t  LogicalChannel,
uint8_t  ChannelPage,
wpan_addr_spec_t CoordAddrSpec,
uint8_t  CapabilityInformation 
)

Initiate MLME-ASSOCIATE.request service and have it placed in the MLME-SAP queue.

Parameters
LogicalChannelThe logical channel on which to attempt association.
ChannelPageThe channel page on which to attempt association.
CoordAddrSpecPointer to wpan_addr_spec_t structure for coordinator.
CapabilityInformationBitmap that describes the nodes capabilities. (WPAN_CAP_ALTPANCOORD | WPAN_CAP_FFD | WPAN_CAP_PWRSOURCE | WPAN_CAP_RXONWHENIDLE | WPAN_CAP_ALLOCADDRESS)
Returns
true - success; false - buffer not available or queue full.

References wpan_addr_spec_tag::Addr, ADDR_COPY_DST_SRC_64, wpan_addr_spec_tag::AddrMode, bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_associate_req_tag::CapabilityInformation, mlme_associate_req_tag::ChannelPage, mlme_associate_req_tag::cmdcode, mlme_associate_req_tag::CoordAddress, mlme_associate_req_tag::CoordAddrMode, mlme_associate_req_tag::CoordPANId, CPU_ENDIAN_TO_LE16, LARGE_BUFFER_SIZE, mlme_associate_req_tag::LogicalChannel, address_field_t::long_address, MAC_SUCCESS, MLME_ASSOCIATE_REQUEST, nhle_mac_q, wpan_addr_spec_tag::PANId, and qmm_queue_append().

Referenced by handle_incoming_msg().

bool wpan_mlme_disassociate_req ( wpan_addr_spec_t DeviceAddrSpec,
uint8_t  DisassociateReason,
bool  TxIndirect 
)

Inititate MLME-DISASSOCIATE.request service and have it placed in the MLME-SAP queue.

Parameters
DeviceAddrSpecPointer to wpan_addr_spec_t structure for device to which to send the disassociation notification command.
DisassociateReasonReason for disassociation. Valid values:
TxIndirectTRUE if the disassociation notification command is to be sent indirectly
Returns
true - success; false - buffer not available or queue full.

References wpan_addr_spec_tag::Addr, ADDR_COPY_DST_SRC_64, wpan_addr_spec_tag::AddrMode, bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_disassociate_req_tag::cmdcode, CPU_ENDIAN_TO_LE16, mlme_disassociate_req_tag::DeviceAddress, mlme_disassociate_req_tag::DeviceAddrMode, mlme_disassociate_req_tag::DevicePANId, mlme_disassociate_req_tag::DisassociateReason, LARGE_BUFFER_SIZE, address_field_t::long_address, MAC_SUCCESS, MLME_DISASSOCIATE_REQUEST, nhle_mac_q, wpan_addr_spec_tag::PANId, qmm_queue_append(), and mlme_disassociate_req_tag::TxIndirect.

Referenced by handle_incoming_msg().

bool wpan_mlme_get_req ( uint8_t  PIBAttribute)

Initiate MLME-GET.request service and have it placed in the MLME-SAP queue.

Parameters
PIBAttributePIB attribute to be retrieved.
PIBAttributeIndexIndex of the PIB attribute to be read.
Returns
true - success; false - buffer not availability or queue full.

References bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_get_req_tag::cmdcode, LARGE_BUFFER_SIZE, MAC_SUCCESS, MLME_GET_REQUEST, nhle_mac_q, mlme_get_req_tag::PIBAttribute, and qmm_queue_append().

Referenced by handle_incoming_msg().

bool wpan_mlme_poll_req ( wpan_addr_spec_t CoordAddrSpec)
bool wpan_mlme_reset_req ( bool  SetDefaultPib)

Initiate MLME-RESET.request service and have it placed in the MLME-SAP queue.

Parameters
SetDefaultPibBoolean to set all PIB values to their respective defaults.
Returns
true - success; false - buffer not available or queue full.

References bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_reset_req_tag::cmdcode, LARGE_BUFFER_SIZE, MAC_SUCCESS, MLME_RESET_REQUEST, nhle_mac_q, qmm_queue_append(), and mlme_reset_req_tag::SetDefaultPIB.

Referenced by handle_incoming_msg().

bool wpan_mlme_rx_enable_req ( bool  DeferPermit,
uint32_t  RxOnTime,
uint32_t  RxOnDuration 
)

Initiate MLME-RX-ENABLE.request service and have it placed in the MLME-SAP queue.

Parameters
DeferPermitSet to true if receiver enable can be deferred until next superframe if requested time has already passed.
RxOnTimeNumber of symbols from start of superframe before receiver is enabled.
RxOnDurationNumber of symbols for which the receiver is enabled,
Returns
true - success; false - buffer not available or queue full.

References bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_rx_enable_req_tag::cmdcode, mlme_rx_enable_req_tag::DeferPermit, LARGE_BUFFER_SIZE, MAC_SUCCESS, MLME_RX_ENABLE_REQUEST, nhle_mac_q, qmm_queue_append(), mlme_rx_enable_req_tag::RxOnDuration, and mlme_rx_enable_req_tag::RxOnTime.

Referenced by handle_incoming_msg().

bool wpan_mlme_scan_req ( uint8_t  ScanType,
uint32_t  ScanChannels,
uint8_t  ScanDuration,
uint8_t  ChannelPage 
)

Initiate MLME-SCAN.request service and have it placed in the MLME-SAP queue.

Parameters
ScanTypeType of scan to perform. Valid values:
ScanChannelsChannels to be scanned.
ScanDurationDuration of each scan.
ChannelPageThe channel page on which to perform the scan.
Returns
true - success; false - buffer not available or queue full.

References bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_scan_req_tag::ChannelPage, mlme_scan_req_tag::cmdcode, LARGE_BUFFER_SIZE, MAC_SUCCESS, MLME_SCAN_REQUEST, nhle_mac_q, qmm_queue_append(), mlme_scan_req_tag::ScanChannels, mlme_scan_req_tag::ScanDuration, and mlme_scan_req_tag::ScanType.

Referenced by handle_incoming_msg().

bool wpan_mlme_set_req ( uint8_t  PIBAttribute,
void *  PIBAttributeValue 
)

Initiate MLME-SET.request service and have it placed in MLME_SAP queue.

Parameters
PIBAttributePIB attribute to be set.
PIBAttributeIndexIndex of the PIB attribute to be set.
PIBAttributeValuePointer to new PIB attribute value.
Returns
true - success; false - buffer not available or queue full.

References bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_set_req_tag::cmdcode, LARGE_BUFFER_SIZE, mac_get_pib_attribute_size(), MAC_SUCCESS, macBeaconTxTime, macMaxFrameTotalWaitTime, macResponseWaitTime, macTransactionPersistenceTime, MLME_SET_REQUEST, nhle_mac_q, mlme_set_req_tag::PIBAttribute, mlme_set_req_tag::PIBAttributeValue, and qmm_queue_append().

Referenced by handle_incoming_msg().

bool wpan_mlme_start_req ( uint16_t  PANId,
uint8_t  LogicalChannel,
uint8_t  ChannelPage,
uint8_t  BeaconOrder,
uint8_t  SuperframeOrder,
bool  PANCoordinator,
bool  BatteryLifeExtension,
bool  CoordRealignment 
)

Initiate MLME-START service and have it placed in the MLME-SAP queue.

Parameters
PANIdPAN identifier to be used by device.
LogicalChannelThe logical channel on which to start using the new superframe configuration.
ChannelPageThe channel page on which to begin using the new superframe configuration.
BeaconOrderBeacon transmission interval.
SuperframeOrderDuration of active portion of superframe.
PANCoordinatorIndicates whether node is PAN coordinator of PAN.
BatteryLifeExtensionBoolean true disables receiver of beaconing device for a period after interframe spacing of beacon frame.
CoordRealignmentBoolean to transmit Coordinator Realignment command prior to changing to new superframe configuration.
Returns
true - success; false - buffer not available or queue full.

References mlme_start_req_tag::BatteryLifeExtension, mlme_start_req_tag::BeaconOrder, bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_start_req_tag::ChannelPage, mlme_start_req_tag::cmdcode, mlme_start_req_tag::CoordRealignment, CPU_ENDIAN_TO_LE16, LARGE_BUFFER_SIZE, mlme_start_req_tag::LogicalChannel, MAC_SUCCESS, MLME_START_REQUEST, nhle_mac_q, mlme_start_req_tag::PANCoordinator, mlme_start_req_tag::PANId, qmm_queue_append(), and mlme_start_req_tag::SuperframeOrder.

Referenced by handle_incoming_msg().

bool wpan_mlme_sync_req ( uint8_t  LogicalChannel,
uint8_t  ChannelPage,
bool  TrackBeacon 
)

Initiate MLME-SYNC.request service and have it placed in the MLME-SAP queue.

Parameters
LogicalChannelThe logical channel on which to attempt coordinator synchronization.
ChannelPageThe channel page on which to attempt coordinator synchronization.
TrackBeaconBoolean to synchronize with next beacon and to track all future beacons.
Returns
true - success; false - buffer not available or queue full.

References bmm_buffer_alloc(), bmm_buffer_free(), BMM_BUFFER_POINTER, mlme_sync_req_tag::ChannelPage, mlme_sync_req_tag::cmdcode, LARGE_BUFFER_SIZE, mlme_sync_req_tag::LogicalChannel, MAC_SUCCESS, MLME_SYNC_REQUEST, nhle_mac_q, qmm_queue_append(), and mlme_sync_req_tag::TrackBeacon.

Referenced by handle_incoming_msg().