forked from gatsby/datalink_repo
add logging module.
This commit is contained in:
@@ -281,17 +281,6 @@ inline void L2_RcdShift(L2_RCD* rcd, int32_t netxVal) {
|
|||||||
* @return NONE.
|
* @return NONE.
|
||||||
*
|
*
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
// FIXME: Only for test
|
|
||||||
int w2AcqRecvCnt = 0;
|
|
||||||
int w2AcqRecvSuccessCnt = 0;
|
|
||||||
int mgmtRecvCnt = 0;
|
|
||||||
int mgmtRecvSuccessCnt = 0;
|
|
||||||
int tsyncRecvCnt = 0;
|
|
||||||
int tsyncRecvSuccessCnt = 0;
|
|
||||||
int svcRecvCnt = 0;
|
|
||||||
int svcRecvSuccessCnt = 0;
|
|
||||||
int recvCnt = 0;
|
|
||||||
int frameLen = 0;
|
|
||||||
void L2_FrameStateUpdate(L2_INST* instPtr) {
|
void L2_FrameStateUpdate(L2_INST* instPtr) {
|
||||||
ASSERT(instPtr != NULL);
|
ASSERT(instPtr != NULL);
|
||||||
PHY_INST* phyRef = instPtr->config.phyInstPtr;
|
PHY_INST* phyRef = instPtr->config.phyInstPtr;
|
||||||
@@ -304,58 +293,51 @@ void L2_FrameStateUpdate(L2_INST* instPtr) {
|
|||||||
DBG_INFO("A frame received, checking data validation...\n");
|
DBG_INFO("A frame received, checking data validation...\n");
|
||||||
DBG_INFO("Last frame type is: %u.\n", instPtr->frame.last);
|
DBG_INFO("Last frame type is: %u.\n", instPtr->frame.last);
|
||||||
Phy_RetrieveRecvData(phyRef, instPtr->recvPktData);
|
Phy_RetrieveRecvData(phyRef, instPtr->recvPktData);
|
||||||
|
instPtr->log.frameRecv++;
|
||||||
|
|
||||||
switch (instPtr->frame.last) {
|
switch (instPtr->frame.last) {
|
||||||
case L2_INTRA_SCAN_FRAME:
|
case L2_INTRA_SCAN_FRAME:
|
||||||
// INTRA_BM_FRAME could be received if current frame type is INTRA_BM_FRAME
|
// INTRA_BM_FRAME could be received if current frame type is INTRA_BM_FRAME
|
||||||
case L2_INTRA_BM_FRAME:
|
case L2_INTRA_BM_FRAME:
|
||||||
|
instPtr->log.bmRecvCnt++;
|
||||||
if (L2_CrcCheck(instPtr->recvPktData, BM_MSG_CRC_OFFSET / 8,
|
if (L2_CrcCheck(instPtr->recvPktData, BM_MSG_CRC_OFFSET / 8,
|
||||||
BM_MSG_CRC_OFFSET / 8, L2_CRC8_31) == true) {
|
BM_MSG_CRC_OFFSET / 8, L2_CRC8_31) == true) {
|
||||||
L2_DataAvailUpdate(instPtr, true);
|
L2_DataAvailUpdate(instPtr, true);
|
||||||
|
instPtr->log.bmCorrectCnt++;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
L2_DataAvailUpdate(instPtr, false);
|
L2_DataAvailUpdate(instPtr, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case L2_INTRA_W2_ACQ_FRAME:
|
case L2_INTRA_W2_ACQ_FRAME:
|
||||||
// FIXME: Only for test
|
instPtr->log.mgmtRecvCnt++;
|
||||||
w2AcqRecvCnt++;
|
|
||||||
if (L2_CrcCheck(instPtr->recvPktData,
|
if (L2_CrcCheck(instPtr->recvPktData,
|
||||||
W2ACQ_FRAME_CRC_DLEN, W2ACQ_FRAME_CRC_POS,
|
W2ACQ_FRAME_CRC_DLEN, W2ACQ_FRAME_CRC_POS,
|
||||||
L2_CRC16_8005) == true) {
|
L2_CRC16_8005) == true) {
|
||||||
L2_DataAvailUpdate(instPtr, true);
|
L2_DataAvailUpdate(instPtr, true);
|
||||||
// FIXME: Only for test
|
instPtr->log.mgmtCorrectCnt++;
|
||||||
w2AcqRecvSuccessCnt++;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
L2_DataAvailUpdate(instPtr, false);
|
L2_DataAvailUpdate(instPtr, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case L2_INTRA_MGMT_FRAME:
|
case L2_INTRA_MGMT_FRAME:
|
||||||
// FIXME: Only for test
|
instPtr->log.mgmtRecvCnt++;
|
||||||
mgmtRecvCnt++;
|
|
||||||
recvCnt ++ ;
|
|
||||||
L2_DataAvailUpdate(instPtr, true);
|
L2_DataAvailUpdate(instPtr, true);
|
||||||
// FIXME: Only for test
|
instPtr->log.mgmtCorrectCnt++;
|
||||||
mgmtRecvSuccessCnt ++;
|
|
||||||
break;
|
break;
|
||||||
case L2_INTRA_TSYNC_FRAME:
|
case L2_INTRA_TSYNC_FRAME:
|
||||||
// FIXME: Only for test
|
instPtr->log.tsyncRecvCnt++;
|
||||||
tsyncRecvCnt++;
|
|
||||||
recvCnt ++ ;
|
|
||||||
L2_DataAvailUpdate(instPtr, true);
|
L2_DataAvailUpdate(instPtr, true);
|
||||||
// FIXME: Only for test
|
instPtr->log.tsyncCorrectCnt++;
|
||||||
tsyncRecvSuccessCnt ++;
|
|
||||||
break;
|
break;
|
||||||
case L2_INTRA_SVC_FRAME:
|
case L2_INTRA_SVC_FRAME:
|
||||||
// FIXME: Only for test
|
instPtr->log.svcRecvCnt++;
|
||||||
svcRecvCnt++;
|
|
||||||
recvCnt ++ ;
|
|
||||||
if (L2_CrcCheck(instPtr->recvPktData,
|
if (L2_CrcCheck(instPtr->recvPktData,
|
||||||
PDUH0_HEADER_CRC_OFFSET/8, PDUH0_HEADER_CRC_OFFSET/8,
|
PDUH0_HEADER_CRC_OFFSET/8, PDUH0_HEADER_CRC_OFFSET/8,
|
||||||
L2_CRC8_31) == true) {
|
L2_CRC8_31) == true) {
|
||||||
L2_DataAvailUpdate(instPtr, true);
|
L2_DataAvailUpdate(instPtr, true);
|
||||||
// FIXME: Only for test
|
instPtr->log.svcCorrectCnt++;
|
||||||
svcRecvSuccessCnt++;
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
L2_DataAvailUpdate(instPtr, false);
|
L2_DataAvailUpdate(instPtr, false);
|
||||||
@@ -365,6 +347,9 @@ void L2_FrameStateUpdate(L2_INST* instPtr) {
|
|||||||
L2_DataAvailUpdate(instPtr, false);
|
L2_DataAvailUpdate(instPtr, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if(L2_isDataAvail(instPtr)) {
|
||||||
|
instPtr->log.frameCorrect++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
@@ -386,6 +371,55 @@ int32_t L2_SetupNextSlot(L2_INST* instPtr, L2_TOR_TYPE txrxMode, L2_FRAME_TYPE f
|
|||||||
if (frameType < L2_INTER_SCAN_FRAME || frameType > L2_INTRA_SVC_FRAME) {
|
if (frameType < L2_INTER_SCAN_FRAME || frameType > L2_INTRA_SVC_FRAME) {
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// logging
|
||||||
|
if(txrxMode == L2_TOR_TX) {
|
||||||
|
instPtr->log.frameTx++;
|
||||||
|
switch(frameType){
|
||||||
|
case L2_INTRA_BM_FRAME:
|
||||||
|
instPtr->log.bmTxCnt++;
|
||||||
|
break;
|
||||||
|
case L2_INTRA_W2_ACQ_FRAME:
|
||||||
|
instPtr->log.w2acqTxCnt++;
|
||||||
|
break;
|
||||||
|
case L2_INTRA_MGMT_FRAME:
|
||||||
|
instPtr->log.mgmtTxCnt++;
|
||||||
|
break;
|
||||||
|
case L2_INTRA_TSYNC_FRAME:
|
||||||
|
instPtr->log.tsyncTxCnt++;
|
||||||
|
break;
|
||||||
|
case L2_INTRA_SVC_FRAME:
|
||||||
|
instPtr->log.svcTxCnt++;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (txrxMode == L2_TOR_RX)
|
||||||
|
{
|
||||||
|
instPtr->log.frameRx++;
|
||||||
|
switch(frameType){
|
||||||
|
case L2_INTRA_BM_FRAME:
|
||||||
|
instPtr->log.bmRxCnt++;
|
||||||
|
break;
|
||||||
|
case L2_INTRA_W2_ACQ_FRAME:
|
||||||
|
instPtr->log.w2acqRxCnt++;
|
||||||
|
break;
|
||||||
|
case L2_INTRA_MGMT_FRAME:
|
||||||
|
instPtr->log.mgmtRxCnt++;
|
||||||
|
break;
|
||||||
|
case L2_INTRA_TSYNC_FRAME:
|
||||||
|
instPtr->log.tsyncRxCnt++;
|
||||||
|
break;
|
||||||
|
case L2_INTRA_SVC_FRAME:
|
||||||
|
instPtr->log.svcRxCnt++;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#if _814_DEBUG_LEVEL >= 3
|
#if _814_DEBUG_LEVEL >= 3
|
||||||
char* torStr = NULL;
|
char* torStr = NULL;
|
||||||
char* frameStr = NULL;
|
char* frameStr = NULL;
|
||||||
@@ -735,6 +769,7 @@ int32_t Linklayer_Reconfig(L2_INST* instPtr, const L2_CONFIG *config) {
|
|||||||
memcpy(&(instPtr->config), config, sizeof(L2_CONFIG));
|
memcpy(&(instPtr->config), config, sizeof(L2_CONFIG));
|
||||||
|
|
||||||
// Reset basic info
|
// Reset basic info
|
||||||
|
memset(&(instPtr->log), 0x00, sizeof(L2_LOG));
|
||||||
instPtr->netStartTime = UINT32_MAX;
|
instPtr->netStartTime = UINT32_MAX;
|
||||||
instPtr->rtneConfig.last = NULL;
|
instPtr->rtneConfig.last = NULL;
|
||||||
instPtr->rtneConfig.curr = NULL;
|
instPtr->rtneConfig.curr = NULL;
|
||||||
@@ -963,7 +998,6 @@ int32_t Linklayer_PktHandler(L2_INST* instPtr, L2_FRAME_TYPE frameType) {
|
|||||||
case L2_INTRA_MGMT_FRAME:
|
case L2_INTRA_MGMT_FRAME:
|
||||||
case L2_INTER_TSYNC_FRAME:
|
case L2_INTER_TSYNC_FRAME:
|
||||||
case L2_INTRA_TSYNC_FRAME:
|
case L2_INTRA_TSYNC_FRAME:
|
||||||
// TODO:
|
|
||||||
if(frameType == L2_INTRA_MGMT_FRAME){
|
if(frameType == L2_INTRA_MGMT_FRAME){
|
||||||
if (instPtr->buffSwitch == 0) {
|
if (instPtr->buffSwitch == 0) {
|
||||||
memcpy(instPtr->mgmtMsgRecvBuff0 + (size_t)(instPtr->mgmtMsgRecvCnt0*(MGMT_MSG_LEN*ARRAY_SIZE(intraMgmtFrameMsgs)/8)),
|
memcpy(instPtr->mgmtMsgRecvBuff0 + (size_t)(instPtr->mgmtMsgRecvCnt0*(MGMT_MSG_LEN*ARRAY_SIZE(intraMgmtFrameMsgs)/8)),
|
||||||
@@ -981,7 +1015,6 @@ int32_t Linklayer_PktHandler(L2_INST* instPtr, L2_FRAME_TYPE frameType) {
|
|||||||
break;
|
break;
|
||||||
case L2_INTER_SVC_FRAME:
|
case L2_INTER_SVC_FRAME:
|
||||||
case L2_INTRA_SVC_FRAME:
|
case L2_INTRA_SVC_FRAME:
|
||||||
// TODO:
|
|
||||||
if(frameType == L2_INTRA_SVC_FRAME){
|
if(frameType == L2_INTRA_SVC_FRAME){
|
||||||
if (instPtr->buffSwitch == 0) {
|
if (instPtr->buffSwitch == 0) {
|
||||||
memcpy(instPtr->svcMsgRecvBuff0 + (size_t) (instPtr->svcMsgRecvCnt0 * (INTRA_SVC_FRAME_LENGTH_MAX)),
|
memcpy(instPtr->svcMsgRecvBuff0 + (size_t) (instPtr->svcMsgRecvCnt0 * (INTRA_SVC_FRAME_LENGTH_MAX)),
|
||||||
|
|||||||
@@ -55,6 +55,38 @@ typedef struct {
|
|||||||
TIMECTRL_INST* tmcInstPtr;
|
TIMECTRL_INST* tmcInstPtr;
|
||||||
} L2_CONFIG;
|
} L2_CONFIG;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint32_t frameRx;
|
||||||
|
uint32_t frameTx;
|
||||||
|
uint32_t frameRecv;
|
||||||
|
uint32_t frameCorrect;
|
||||||
|
|
||||||
|
uint32_t bmRxCnt;
|
||||||
|
uint32_t bmTxCnt;
|
||||||
|
uint32_t bmRecvCnt;
|
||||||
|
uint32_t bmCorrectCnt;
|
||||||
|
|
||||||
|
uint32_t w2acqRxCnt;
|
||||||
|
uint32_t w2acqTxCnt;
|
||||||
|
uint32_t w2acqRecvCnt;
|
||||||
|
uint32_t w2acqCorrectCnt;
|
||||||
|
|
||||||
|
uint32_t mgmtRxCnt;
|
||||||
|
uint32_t mgmtTxCnt;
|
||||||
|
uint32_t mgmtRecvCnt;
|
||||||
|
uint32_t mgmtCorrectCnt;
|
||||||
|
|
||||||
|
uint32_t tsyncRxCnt;
|
||||||
|
uint32_t tsyncTxCnt;
|
||||||
|
uint32_t tsyncRecvCnt;
|
||||||
|
uint32_t tsyncCorrectCnt;
|
||||||
|
|
||||||
|
uint32_t svcRxCnt;
|
||||||
|
uint32_t svcTxCnt;
|
||||||
|
uint32_t svcRecvCnt;
|
||||||
|
uint32_t svcCorrectCnt;
|
||||||
|
} L2_LOG;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
L2_CONFIG config;
|
L2_CONFIG config;
|
||||||
L2_NODE_INFO myInfo;
|
L2_NODE_INFO myInfo;
|
||||||
@@ -77,6 +109,7 @@ typedef struct {
|
|||||||
L2_RTT_FSM* rttFSM; // FSM for RTT (time sync algorithm)
|
L2_RTT_FSM* rttFSM; // FSM for RTT (time sync algorithm)
|
||||||
uint8_t* sendPktData;
|
uint8_t* sendPktData;
|
||||||
uint8_t* recvPktData;
|
uint8_t* recvPktData;
|
||||||
|
L2_LOG log;
|
||||||
// for MPC
|
// for MPC
|
||||||
uint8_t buffSwitch;
|
uint8_t buffSwitch;
|
||||||
uint8_t mgmtMsgRecvCnt0;
|
uint8_t mgmtMsgRecvCnt0;
|
||||||
|
|||||||
Reference in New Issue
Block a user