264 lines
8.5 KiB
C
264 lines
8.5 KiB
C
/*****************************************************************************/
|
|
/**
|
|
* @file routine_table.c
|
|
* @author FanHao ([email protected])
|
|
* @brief DF Linklayer node list implementation file
|
|
* @version 0.0
|
|
* @date 2023-05-06
|
|
*
|
|
* @copyright Copyright(c) 2024 Beijing Institute of Technology.\n
|
|
* Lab of Communication and Network
|
|
*
|
|
******************************************************************************/
|
|
|
|
/**
|
|
* @addtogroup LinkLayer
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* @name RoutineTable
|
|
* @{
|
|
*/
|
|
|
|
#include <inttypes.h>
|
|
#include "link_layer.h"
|
|
#include "link_layer_types.h"
|
|
|
|
L2_RTNE_TABLE_ENTRY intraScanSubT[L2_SLOTS_PER_FRAME] = {
|
|
// SubFrame 0
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
|
|
// SubFrame 1
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
|
|
// SubFrame 2
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_SCAN, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_ADVERTISE, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_ADVERTISE, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_ADVERTISE, 0x02, 0x01, 0xFF},
|
|
{L2_SLOT_ADVERTISE, 0x03, 0x01, 0xFF},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
|
|
// SubFrame 3
|
|
{L2_SLOT_CONFIRM, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_CONFIRM, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_CONFIRM, 0x02, 0x01, 0xFF},
|
|
{L2_SLOT_CONFIRM, 0x03, 0x01, 0xFF},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_CONFIRM, 0x00, 0x01, 0xFF},
|
|
{L2_SLOT_CONFIRM, 0x01, 0x01, 0xFF},
|
|
{L2_SLOT_CONFIRM, 0x02, 0x01, 0xFF},
|
|
{L2_SLOT_CONFIRM, 0x03, 0x01, 0xFF},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_CONFIRM, 0x00, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x01, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x02, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x03, 0x02, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_CONFIRM, 0x00, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x01, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x02, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x03, 0x03, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
|
|
// SubFrame 4
|
|
{L2_SLOT_CONFIRM, 0x00, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x01, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x02, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x03, 0x02, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_CONFIRM, 0x00, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x01, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x02, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x03, 0x03, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_CONFIRM, 0x00, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x01, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x02, 0x02, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x03, 0x02, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_CONFIRM, 0x00, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x01, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x02, 0x03, 0x01},
|
|
{L2_SLOT_CONFIRM, 0x03, 0x03, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
};
|
|
|
|
L2_RTNE_TABLE_ENTRY normalSub[L2_SLOTS_PER_FRAME] = {
|
|
// SubFrame 0
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x02},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x02, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x03},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x03, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
|
|
// SubFrame 1
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x02},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x02, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x03},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x03, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
|
|
// SubFrame 2
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x02},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x02, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x03},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x03, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
|
|
// SubFrame 3
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x02},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x02, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x03},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x03, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
|
|
// SubFrame 4
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x02},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x02},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x02, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x02, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x01, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x02, 0x01, 0x03},
|
|
{L2_SLOT_SERVICE, 0x03, 0x01, 0x03},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
{L2_SLOT_SERVICE, 0x00, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x01, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x02, 0x03, 0x01},
|
|
{L2_SLOT_SERVICE, 0x03, 0x03, 0x01},
|
|
{L2_SLOT_IDLE, 0x00, 0x00, 0x00},
|
|
};
|
|
|
|
L2_RTNE_TABLE_ENTRY *initTable[L2_INIT_RTNE_PERIOD] =
|
|
{
|
|
intraScanSubT
|
|
};
|
|
|
|
L2_RTNE_TABLE_ENTRY *normalTable[L2_NORMAL_RTNE_PERIOD] =
|
|
{
|
|
normalSub
|
|
};
|
|
|
|
/** @} RoutineTable*/
|
|
/** @} LinkLayer*/
|