Microchip® Advanced Software Framework

mac_gts.c File Reference

This file implements GTS feature for MAC.

Copyright (c) 2013-2018 Microchip Technology Inc. and its subsidiaries.

#include <compiler.h>
#include <stdlib.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 "tal_slotted_csma.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_config.h"
#include "mac_build_config.h"

Functions

void flush_gts_queues (void)
 
void handle_gts_data_req (mcps_data_req_t *data_req, uint8_t *msg)
 
void handle_gts_data_tx_end (void)
 
void handle_gts_sync_loss (void)
 
void init_gts_queues (void)
 
uint8_t mac_add_gts_info (uint8_t *frame_ptr)
 
void mac_gen_mlme_gts_conf (buffer_t *buf_ptr, uint8_t status, gts_char_t gts_char)
 
static bool mac_gts_allocate (gts_char_t GtsCharacteristics, uint16_t DevAddress)
 
static bool mac_gts_deallocate (gts_char_t GtsCharacteristics, uint16_t DevAddress, bool persist)
 
void mac_gts_table_update (void)
 
void mac_parse_bcn_gts_info (uint8_t gts_count, uint8_t gts_dir, mac_gts_list_t *gts_list_ptr)
 
void mac_process_gts_request (buffer_t *gts_req)
 
static void mac_send_gts_ind (gts_char_t GtsChar, uint16_t dev_addr)
 
void mac_t_gts_cb (void *callback_parameter)
 
void mac_tx_gts_data (queue_t *gts_data)
 
void mlme_gts_request (uint8_t *m)
 
static void process_deallocate_data_q (queue_t *q_ptr)
 
void reset_gts_expiry (mac_pan_gts_mgmt_t *mac_pan_gts_entry)
 
void reset_gts_globals (void)
 

Variables

static queue_t dev_tx_gts_q
 
static queue_t gts_q [MAX_GTS_ON_PANC]
 
mac_dev_gts_mgmt_t mac_dev_gts_table [MAX_GTS_ON_DEV]
 
uint8_t mac_dev_gts_table_len = 0
 
mac_pan_gts_mgmt_t mac_pan_gts_table [MAX_GTS_ON_PANC]
 PANC table for GTS maintenance. More...
 
uint8_t mac_pan_gts_table_len = 0
 Length of active GTS in PANC table. More...
 
const uint8_t minCAPLength [4] = { 9, 4, 2, 1}
 Reference for maintaining minCAPLength. More...
 

static void process_deallocate_data_q ( queue_t *  q_ptr)
static

queue_t gts_q[MAX_GTS_ON_PANC]
static
const uint8_t minCAPLength[4] = { 9, 4, 2, 1}

Reference for maintaining minCAPLength.

Referenced by mac_gts_allocate().