Handles MCPS related primitives and frames.
Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.
#include <compiler.h>
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
#include "return_val.h"
#include "pal.h"
#include "bmm.h"
#include "qmm.h"
#include "tal.h"
#include "ieee_const.h"
#include "mac_msg_const.h"
#include "mac_api.h"
#include "mac_msg_types.h"
#include "mac_data_structures.h"
#include "stack_config.h"
#include "mac_internal.h"
#include "mac.h"
#include "mac_build_config.h"
Macros | |
#define | FRAME_COUNTER_LEN (0x04) |
Functions | |
static retval_t | build_data_frame (mcps_data_req_t *pmdr, frame_info_t *frame) |
static uint8_t | check_msdu_handle_cb (void *buf, void *handle) |
static uint8_t | check_persistence_time_zero (void *buf_ptr, void *handle) |
static uint8_t | decrement_persistence_time (void *buf_ptr, void *handle) |
static void | handle_exp_persistence_timer (buffer_t *buf_ptr) |
static void | handle_persistence_time_decrement (void) |
static bool | mac_buffer_purge (uint8_t msdu_handle) |
void | mac_gen_mcps_data_conf (buffer_t *buf, uint8_t status, uint8_t handle, uint32_t timestamp) |
void | mac_process_data_frame (buffer_t *buf_ptr) |
Processes data frames. More... | |
void | mac_start_persistence_timer (void) |
static void | mac_t_persistence_cb (void *callback_parameter) |
void | mcps_data_request (uint8_t *msg) |
Builds the data frame for transmission. More... | |
void | mcps_purge_request (uint8_t *msg) |
Processes a MCPS-PURGE.request primitive. More... | |
#define FRAME_COUNTER_LEN (0x04) |
|
static |
References aMaxMACSafePayloadSize, aMaxPHYPacketSize, convert_16_bit_to_byte_address(), convert_16_bit_to_byte_array(), convert_64_bit_to_byte_array(), convert_spec_16_bit_to_byte_array(), mcps_data_req_tag::DstAddr, mcps_data_req_tag::DstAddrMode, mcps_data_req_tag::DstPANId, FCF_ACK_REQUEST, FCF_FRAME_VERSION_2006, FCF_FRAMETYPE_DATA, FCF_LONG_ADDR, FCF_NO_ADDR, FCF_PAN_ID_COMPRESSION, FCF_SECURITY_ENABLED, FCF_SET_DEST_ADDR_MODE, FCF_SET_FRAMETYPE, FCF_SET_SOURCE_ADDR_MODE, FCF_SHORT_ADDR, if(), LARGE_BUFFER_SIZE, mac_pib_tag::mac_DSN, MAC_FRAME_TOO_LONG, mac_pib, MAC_SUCCESS, frame_info_tag::mpdu, mcps_data_req_tag::msduLength, mac_pib_tag::privateIllegalFrameType, mcps_data_req_tag::SrcAddrMode, tal_pib, mcps_data_req_tag::TxOptions, and WPAN_TXOPT_ACK.
Referenced by mcps_data_request().
|
static |
References frame_info_tag::msduHandle.
Referenced by mac_buffer_purge().
|
static |
References frame_info_tag::indirect_in_transit, and frame_info_tag::persistence_time.
Referenced by handle_persistence_time_decrement().
|
static |
References frame_info_tag::indirect_in_transit, and frame_info_tag::persistence_time.
Referenced by handle_persistence_time_decrement().
|
static |
References Assert, ASSOCIATIONRESPONSE, BMM_BUFFER_POINTER, DISASSOCIATIONNOTIFICATION, frame_info_tag::indirect_in_transit, mac_gen_mcps_data_conf(), mac_mlme_comm_status(), mac_prep_disassoc_conf(), MAC_TRANSACTION_EXPIRED, MCPS_MESSAGE, frame_info_tag::msduHandle, and frame_info_tag::msg_type.
Referenced by handle_persistence_time_decrement().
|
static |
|
static |
References bmm_buffer_free(), check_msdu_handle_cb(), search_t::criteria_func, search_t::handle, indirect_data_q, and qmm_queue_remove().
Referenced by mcps_purge_request().
|
static |
References handle_persistence_time_decrement(), indirect_data_q, mac_start_persistence_timer(), and queue_tag::size.
Referenced by mac_start_persistence_timer().