📄 ge_cmddispatch.c
字号:
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_EVENT,"GE_cmdDispatch:sending MGMT_LINE_STATE_REQ to MainCommand succeed!\n");
free(pBuf);
return OK;
}
}
if(subType==MGMT_LINE_MTU_REQ)
{
bcopy(GenMsg->data, TaskMsg.msgBuf, GenMsg->length);
if (msgQSend ( SBSL_TaskMsgIdGet( GE_MAINCMD_TASK_CODE),
(char *)(&TaskMsg),
140,
NO_WAIT,
MSG_PRI_NORMAL )== ERROR)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch: sending MGMT_LINE_MTU_REQ to MainCommand failed!\n");
free(pBuf);
return OK;
}
else
{
GE_printf(GE_EVENT,"GE_cmdDispatch:sending MGMT_LINE_MTU_REQ to MainCommand succeed!\n");
free(pBuf);
return OK;
}
}
}
break;
case SYS_ARP_ENTRY_REQUEST :
TaskMsg.taskCode = BDCOM_TX_TASK_CODE;
TaskMsg.type = GenMsg->type;
TaskMsg.length = GenMsg->length;
memset(TaskMsg.msgBuf, 0, 128);
bcopy(GenMsg->data,TaskMsg.msgBuf, GenMsg->length);
if (BOARD_STATE == BOARD_STATE_NORMAL)
{
if ((msgQSend ( SBSL_TaskMsgIdGet(GE_ARP_TASK_CODE),
(char *)(&TaskMsg),
140,
NO_WAIT,
MSG_PRI_NORMAL )) == ERROR)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch: sending GE_ARP_INDEX to ARP failed!\n");
free(pBuf);
return OK;
}
else
{
GE_printf(GE_EVENT,"GE_cmdDispatch: sending GE_ARP_INDEX to ARP succeed!\n");
free(pBuf);
return OK;
}
}
if (BOARD_STATE == BOARD_STATE_INITLIZE)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch:It can not be dealt with in init state\n");
free(pBuf);
return OK;
}
break;
case SYS_SHUTDOWN:
TaskMsg.taskCode = BDCOM_TX_TASK_CODE;
TaskMsg.type = GenMsg->type;
TaskMsg.length = GenMsg->length;
memset(TaskMsg.msgBuf, 0, 128);
if (BOARD_STATE == BOARD_STATE_NORMAL)
{
if ((msgQSend ( SBSL_TaskMsgIdGet(GE_MAINCMD_TASK_CODE),
(char *)(&TaskMsg),
140,
NO_WAIT,
MSG_PRI_NORMAL )) == ERROR)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch: sending SHUTDOWN to MAINCMD_TASK failed!\n");
free(pBuf);
return OK;
}
else
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_EVENT,"GE_CmdDispatch: sending SHUTDOWN to MAINCMD_TASK succeed!\n");
free(pBuf);
return OK;
}
}
if (BOARD_STATE == BOARD_STATE_INITLIZE)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_CmdDispatch:Can't deal with in INITLIZE mode!\n");
free(pBuf);
return OK;
}
break;
case SYS_EVENT_REPORT:
subType=GenMsg->data[0];
TaskMsg.taskCode = BDCOM_TX_TASK_CODE;
TaskMsg.type = GenMsg->type;
TaskMsg.length = GenMsg->length;
memset(TaskMsg.msgBuf, 0, 128);
if(subType!=REPORT_MAIN_BACKUP)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_CmdDispatch:this message CANNOT be dealt here!\n");
free(pBuf);
return OK;
}
else
{
if(msgQSend( SBSL_TaskMsgIdGet(GE_MAINCMD_TASK_CODE),
(char *)(&TaskMsg),
140,
NO_WAIT,
MSG_PRI_NORMAL) == ERROR)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch: sending REPORT_MAIN_BACKUP to MAIN COMMAND failed!\n");
free(pBuf);
return OK;
}
else
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_EVENT,"GE_cmdDispatch: sending REPORT_MAIN_BACKUP to MAIN COMMAND succeed!\n");
free(pBuf);
return OK;
}
}
break;
case RESET_COMMAND:
TaskMsg.taskCode = BDCOM_TX_TASK_CODE;
TaskMsg.type = GenMsg->type;
TaskMsg.length = GenMsg->length;
memset(TaskMsg.msgBuf, 0, 128);
if (BOARD_STATE == BOARD_STATE_NORMAL)
{
if ((msgQSend ( SBSL_TaskMsgIdGet(GE_MAINCMD_TASK_CODE),
(char *)(&TaskMsg),
140,
NO_WAIT,
MSG_PRI_NORMAL )) == ERROR)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch: sending RESET_COMMAND to MainCommand failed!\n");
free(pBuf);
return OK;
}
else
{
GE_printf(GE_EVENT,"GE_cmdDispatch: sending RESET_COMMAND to MainCommand succeed!\n");
free(pBuf);
return OK;
}
}
if (BOARD_STATE == BOARD_STATE_INITLIZE)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch:in init state,SYS_INITCOMMAND message should be dealt by SBSL\n ");
free(pBuf);
return OK;
}
break;
case IP_PKT_DOWNRECEIVE:
case MPLS_PKT_DOWNRECEIVE:
if(GenMsg->data[0]!=GE_swiport)
{
free(pBuf);
return OK;
}
TaskMsg.taskCode = BDCOM_TX_TASK_CODE;
TaskMsg.type = GenMsg->type;
TaskMsg.length = 8;
(ULONG)TaskMsg.msgBuf[0]=GenMsg->length;
*(ULONG*)&TaskMsg.msgBuf[4]=(ULONG)((ULONG*)&GenMsg->data[0]);
if (BOARD_STATE == BOARD_STATE_NORMAL)
{
if ((msgQSend ( SBSL_TaskMsgIdGet( GE_PROTO_SEND_TASK_CODE),
(char *)(&TaskMsg),
140,
NO_WAIT,
MSG_PRI_NORMAL )) == ERROR)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch: sending IP/MPLS PKT to GE_PROTO_SEND_TASK failed!\n");
free(pBuf);
return OK;
}
else
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_EVENT,"GE_cmdDispatch: sending IP/MPLS PKT to GE_PROTO_SEND_TASK succeed!\n");
return OK;
}
}
if (BOARD_STATE == BOARD_STATE_INITLIZE)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch:in init state,IP PKT should be dealt by SBSL\n ");
free(pBuf);
return OK;
}
break;
case BDCOM_LINK_DOWN:
TaskMsg.taskCode = BDCOM_TX_TASK_CODE;
TaskMsg.type = GenMsg->type;
TaskMsg.length = GenMsg->length;
memset(TaskMsg.msgBuf, 0, 128);
if (BOARD_STATE == BOARD_STATE_NORMAL)
{
if ((msgQSend ( SBSL_TaskMsgIdGet(GE_MAINCMD_TASK_CODE),
(char *)(&TaskMsg),
140,
NO_WAIT,
MSG_PRI_NORMAL )) == ERROR)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch: sending RESET_COMMAND to MainCommand failed!\n");
return OK;
}
else
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_EVENT,"GE_cmdDispatch: sending RESET_COMMAND to MainCommand succeed!\n");
return OK;
}
}
if (BOARD_STATE == BOARD_STATE_INITLIZE)
{
if(GE_MESSAGE_DEBUG)
GE_printf(GE_ALARM,"GE_cmdDispatch:in init state,SYS_INITCOMMAND message should be dealt by SBSL\n ");
return OK;
}
break;
default:
GE_printf(GE_ALARM,"GE_cmdDispatch:receive UNKNOWN message type = %d!\n",GenMsg->type);
free(pBuf);
break;
}
return OK;
}
/*end of GE_CmdDispatch.c*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -