diff --git a/datalink814_ge/src/linklayer/net_mgmt.c b/datalink814_ge/src/linklayer/net_mgmt.c index b3b83ea..3280280 100644 --- a/datalink814_ge/src/linklayer/net_mgmt.c +++ b/datalink814_ge/src/linklayer/net_mgmt.c @@ -27,7 +27,9 @@ /************************** Constant Definitions *****************************/ #define SQUENCE_MGMT_SLOTS 0 #define INTER_MGMT_SLOTS 2 +#define INTER_TSYNC_SLOTS 2 #define INTRA_MGMT_SLOTS 1 +#define INTRA_TSYNC_SLOTS 1 #define NONE_MGMT_SLOTS -1 #define CONX_LOST_TH 10 // 10 count of mgmt msg no response to delete #define TIME2QUIT 80 // time to send quit message @@ -680,7 +682,7 @@ int32_t MgmtNet_PktHandler(L2_INST* instPtr) { FrameGetChunk(mgmtMsg, NQT_MSG_CTRL_MUTE_OFFSET, NQT_MSG_CTRL_MUTE_LEN, &dataChunk); mgmtMsgLog->quitCtrlWord = (uint8_t)(dataChunk & 0x7F); if (mgmtMsgLog->quitCtrlWord == 0x01) { - DeletNode(instPtr->nodeList, mgmtMsgLog->quitNodeId); + L2_DeleteNodeById(instPtr->nodeList, mgmtMsgLog->quitNodeId); } } else { @@ -731,7 +733,7 @@ int32_t MgmtNet_PktHandler(L2_INST* instPtr) { AssertL2Event(instPtr, &stateUpEvent); } - RstNodeTTL(instPtr->nodeList, mgmtMsgLog->srcNodeId); + L2_RstNodeTTL(instPtr->nodeList, mgmtMsgLog->srcNodeId); // TODO: Check if(mgmtMsgLog->srcNodeId == L2_GetHeadId(instPtr)){ L2_TimeAlign(instPtr, L2_GetCurrentFrameNum(instPtr), L2_GetCurrentSlotNum(instPtr)); @@ -740,8 +742,7 @@ int32_t MgmtNet_PktHandler(L2_INST* instPtr) { } case L2_INTER_TSYNC_FRAME: case L2_INTRA_TSYNC_FRAME: { - L2_RTT_SATGE rttStage = L2_GetRttFsm(instPtr)->rttStatge; - if(rttStage == RTT_REQ1 || rttStage == RTT_REQ2){ + if(L2_GetNodeType(instPtr) == HEAD_NODE){ for (int i = 0; i < ARRAY_SIZE(rttReqFrameMsgs); i++) { memcpy(mgmtMsg->words, instPtr->recvPktData + (size_t) (i * (RTT_MSG_LEN / 8)), @@ -793,7 +794,7 @@ int32_t MgmtNet_PktHandler(L2_INST* instPtr) { } } } - else if(rttStage == RTT_RSP1 || rttStage == RTT_RSP2){ + else { for (int i = 0; i < ARRAY_SIZE(rttRspFrameMsgs); i++) { memcpy(mgmtMsg->words, instPtr->recvPktData + (size_t) (i * (RTT_MSG_LEN / 8)), @@ -847,7 +848,7 @@ int32_t MgmtNet_PktHandler(L2_INST* instPtr) { } } - RstNodeTTL(instPtr->nodeList, rttMsgRspLog->srcAddr & 0x001F); + L2_RstNodeTTL(instPtr->nodeList, rttMsgRspLog->srcAddr & 0x001F); // TODO: Check if((rttMsgRspLog->srcAddr&0x001F) == L2_GetHeadId(instPtr)){ L2_TimeAlign(instPtr, L2_GetCurrentFrameNum(instPtr), L2_GetCurrentSlotNum(instPtr)); @@ -898,7 +899,7 @@ int32_t MgmtNet_Routine(L2_INST* instPtr, const L2_RTNE_TABLE_ENTRY* rtneEntry){ } // Check if there is any node exceeds the ttl threshold. - IterDeleteNode(instPtr->nodeList, IsTTLValid); + L2_IterDeleteNode(instPtr->nodeList, IsTTLValid); // Determine next slot TOR state. L2_TOR_TYPE torState = L2_TOR_SUSPEND; @@ -920,7 +921,7 @@ int32_t MgmtNet_Routine(L2_INST* instPtr, const L2_RTNE_TABLE_ENTRY* rtneEntry){ } if (rtneEntry->slotType == SLOT_INTRA_TSYNC) { if(torState == L2_TOR_TX) { - RTT_FsmUpdate(instPtr, L2_TOR_TX); + RTT_FsmUpdate(instPtr, L2_TOR_TX); } else if (torState == L2_TOR_RX) { @@ -983,19 +984,19 @@ int32_t MgmtNet_Routine(L2_INST* instPtr, const L2_RTNE_TABLE_ENTRY* rtneEntry){ .event = L2_EV_MAIN_STATE_UPDATE, .msg = &newState }; - if (instPtr->nodeList->nodeNum < instPtr->config.netScale + if (L2_GetNodeListLen(instPtr->nodeList) < instPtr->config.netScale && L2_GetMainState(instPtr) != INTRA_SEEK_STATE) { newState = INTRA_SEEK_STATE; AssertL2Event(instPtr, &stateEvent); } - else if(instPtr->nodeList->nodeNum >= instPtr->config.netScale && + else if(L2_GetNodeListLen(instPtr->nodeList) >= instPtr->config.netScale && L2_GetMainState(instPtr) != NORMAL_STATE){ newState = NORMAL_STATE; AssertL2Event(instPtr, &stateEvent); } } else{ // MEMBER_NODE or BACKUP_HEAD - if(IsNodeInList(instPtr->nodeList, L2_GetHeadId(instPtr)) == false){ + if(L2_isNodeInList(instPtr->nodeList, L2_GetHeadId(instPtr)) == false){ L2_NODE_STATE newState = INIT_STATE; L2_EVENT stateEvent = { .event = L2_EV_MAIN_STATE_UPDATE,