修改case4,增加帧头偏移设置,查询
This commit is contained in:
parent
305e5255ba
commit
1247c3262a
@ -38,13 +38,18 @@
|
||||
#include "osp.h"
|
||||
|
||||
|
||||
#define SPU_OAM_BASE_DELAY_SET_REQ 0x200 // 0x200
|
||||
#define SPU_OAM_BASE_DELAY_SET_RSP 0x201
|
||||
#define SPU_OAM_BASE_DELAY_QRY_REQ 0x202
|
||||
#define SPU_OAM_BASE_DELAY_QRY_RSP 0x203
|
||||
#define SPU_OAM_FIBER_DELAY_QRY_REQ 0x204
|
||||
#define SPU_OAM_FIBER_DELAY_QRY_RSP 0x205
|
||||
#define MSG_TRANSFER_OAM_MSG_TYPE 0x125
|
||||
#define SPU_OAM_BASE_DELAY_SET_REQ 0x200 // 0x200
|
||||
#define SPU_OAM_BASE_DELAY_SET_RSP 0x201
|
||||
#define SPU_OAM_BASE_DELAY_QRY_REQ 0x202
|
||||
#define SPU_OAM_BASE_DELAY_QRY_RSP 0x203
|
||||
#define SPU_OAM_FIBER_DELAY_QRY_REQ 0x204
|
||||
#define SPU_OAM_FIBER_DELAY_QRY_RSP 0x205
|
||||
#define SPU_OAM_FRAME_HEAD_OFFSET_REQ 0x206
|
||||
#define SPU_OAM_FRAME_HEAD_OFFSET_RSP 0x207
|
||||
#define SPU_OAM_FRAME_HEAD_OFFSET_QRY_REQ 0x208
|
||||
#define SPU_OAM_FRAME_HEAD_OFFSET_QRY_RSP 0x209
|
||||
|
||||
#define MSG_TRANSFER_OAM_MSG_TYPE 0x125
|
||||
|
||||
extern uint8_t guc_oam;
|
||||
|
||||
@ -95,13 +100,31 @@ typedef struct tSpuOamFiberDelayQryRsp {
|
||||
uint32_t u32t14_val;
|
||||
} SpuOamFiberDelayQryRsp_t;
|
||||
|
||||
typedef struct tSpuOamFrameHeadOffsetReq {
|
||||
uint16_t u16frame_head_offset;
|
||||
uint8_t u8rsv[2];
|
||||
} SpuOamFrameHeadOffsetReq_t;
|
||||
|
||||
typedef struct tSpuOamFrameHeadOffsetRsp {
|
||||
uint8_t u8result;
|
||||
uint8_t u8rsv[3];
|
||||
} SpuOamFrameHeadOffsetRsp_t;
|
||||
|
||||
typedef struct tSpuOamFrameHeadOffsetQryRsp {
|
||||
uint8_t u8result;
|
||||
uint8_t u8rsv;
|
||||
uint16_t u16frame_head_offset;
|
||||
}SpuOamFrameHeadOffsetQryRsp_t;
|
||||
|
||||
uint32_t rx_callback_oam_spu(const char* buf,uint32_t payloadSize)
|
||||
{
|
||||
OamMsgTransferHeader_t *header_ptr = NULL;
|
||||
SpuOamBaseDelaySetRsp_t *oam_base_delay_set_rsp_ptr = NULL;
|
||||
SpuOamBaseDelayQryRsp_t *oam_base_delay_qry_rsp_ptr = NULL;
|
||||
SpuOamFiberDelayQryRsp_t *oam_fiber_delay_qry_rsp_ptr = NULL;
|
||||
|
||||
OamMsgTransferHeader_t *header_ptr = NULL;
|
||||
SpuOamBaseDelaySetRsp_t *oam_base_delay_set_rsp_ptr = NULL;
|
||||
SpuOamBaseDelayQryRsp_t *oam_base_delay_qry_rsp_ptr = NULL;
|
||||
SpuOamFiberDelayQryRsp_t *oam_fiber_delay_qry_rsp_ptr = NULL;
|
||||
SpuOamFrameHeadOffsetRsp_t *oam_frame_head_offset_rsp_ptr = NULL;
|
||||
SpuOamFrameHeadOffsetQryRsp_t *oam_frame_head_offset_qry_rsp_ptr = NULL;;
|
||||
|
||||
header_ptr = (OamMsgTransferHeader_t *)buf;
|
||||
header_ptr->msgLen = payloadSize;
|
||||
|
||||
@ -131,6 +154,15 @@ uint32_t rx_callback_oam_spu(const char* buf,uint32_t payloadSize)
|
||||
oam_fiber_delay_qry_rsp_ptr->u8fiber_port, oam_fiber_delay_qry_rsp_ptr->u8result, \
|
||||
oam_fiber_delay_qry_rsp_ptr->u8rsv[0], oam_fiber_delay_qry_rsp_ptr->u8rsv[1], oam_fiber_delay_qry_rsp_ptr->u32t14_val);
|
||||
break;
|
||||
case SPU_OAM_FRAME_HEAD_OFFSET_RSP:
|
||||
oam_frame_head_offset_rsp_ptr = (SpuOamFrameHeadOffsetRsp_t *)(buf+sizeof(OamMsgTransferHeader_t));
|
||||
printf("SPU_OAM_FRAME_HEAD_OFFSET_RSP u8result:%u\n", oam_frame_head_offset_rsp_ptr->u8result);
|
||||
break;
|
||||
case SPU_OAM_FRAME_HEAD_OFFSET_QRY_RSP:
|
||||
oam_frame_head_offset_qry_rsp_ptr = (SpuOamFrameHeadOffsetQryRsp_t *)(buf+sizeof(OamMsgTransferHeader_t));
|
||||
printf("SPU_OAM_FRAME_HEAD_OFFSET_QRY_RSP u8result:%u u16frame_head_offset:0x%x\n", oam_frame_head_offset_qry_rsp_ptr->u8result, oam_frame_head_offset_qry_rsp_ptr->u16frame_head_offset);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
return payloadSize;
|
||||
@ -419,6 +451,114 @@ void oam_msg_fiber_deley_qry_test()
|
||||
return;
|
||||
}
|
||||
|
||||
void oam_msg_frame_head_offset_test()
|
||||
{
|
||||
uint32_t size = 24;
|
||||
char* buf;
|
||||
uint32_t availableSize,offset;
|
||||
OamMsgTransferHeader_t stOamMsg;
|
||||
SpuOamFrameHeadOffsetReq_t stOamFrameHeadOffset;
|
||||
|
||||
uint16_t cu_flag = C_PLANE;
|
||||
HandleId_t handler;
|
||||
handler.port_id = 0;
|
||||
handler.inst_id = 0;
|
||||
handler.type_id = OAM;
|
||||
|
||||
int32_t ret = msg_transfer_send_start(handler.value, cu_flag);
|
||||
|
||||
/************C_PLANE***************/
|
||||
ret = msg_transfer_alloc_msg(handler.value, cu_flag, size, &buf, &availableSize, &offset);
|
||||
if ( SUCCESS != ret) {
|
||||
UCP_PRINT_ERROR("oam_msg_test call msg_transfer_alloc_msg err.");
|
||||
return ;
|
||||
}
|
||||
|
||||
|
||||
stOamMsg.cellIndex = 0;
|
||||
stOamMsg.numMsg = 1;
|
||||
stOamMsg.msgType = SPU_OAM_FRAME_HEAD_OFFSET_REQ;
|
||||
stOamMsg.msgLen = size;
|
||||
|
||||
stOamFrameHeadOffset.u16frame_head_offset = 0x12ab;
|
||||
|
||||
//memset(buf, 0, size);
|
||||
//memcpy((uint8_t *)stOamMsg.msgData, (uint8_t *)&stOamDelayReq, sizeof(SpuOamBaseDelaySetReq_t));
|
||||
memcpy(buf, (uint8_t *)&stOamMsg, sizeof(OamMsgTransferHeader_t));
|
||||
memcpy((uint8_t *)(buf+sizeof(OamMsgTransferHeader_t)), (uint8_t *)&stOamFrameHeadOffset, sizeof(SpuOamFrameHeadOffsetReq_t));
|
||||
|
||||
ret = msg_transfer_send_msg(handler.value, cu_flag, (uint8_t *)buf, offset, size);
|
||||
if ( SUCCESS != ret) {
|
||||
UCP_PRINT_ERROR("msg_transfer_send_msg send error\r\n");
|
||||
}
|
||||
msg_transfer_send_end(handler.value,cu_flag);
|
||||
|
||||
printf("\n-----------------------------------------------------------\n");
|
||||
for (int i = 0; i < size;i++)
|
||||
{
|
||||
printf("%02x ", buf[i]);
|
||||
|
||||
if ((i & 0x7) == 0x7)
|
||||
{
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void oam_msg_frame_head_offset_qry_test()
|
||||
{
|
||||
uint32_t size = 24;
|
||||
char* buf;
|
||||
uint32_t availableSize,offset;
|
||||
OamMsgTransferHeader_t stOamMsg;
|
||||
|
||||
uint16_t cu_flag = C_PLANE;
|
||||
HandleId_t handler;
|
||||
handler.port_id = 0;
|
||||
handler.inst_id = 0;
|
||||
handler.type_id = OAM;
|
||||
|
||||
int32_t ret = msg_transfer_send_start(handler.value, cu_flag);
|
||||
|
||||
/************C_PLANE***************/
|
||||
ret = msg_transfer_alloc_msg(handler.value, cu_flag, size, &buf, &availableSize, &offset);
|
||||
if ( SUCCESS != ret) {
|
||||
UCP_PRINT_ERROR("oam_msg_test call msg_transfer_alloc_msg err.");
|
||||
return ;
|
||||
}
|
||||
|
||||
stOamMsg.cellIndex = 0;
|
||||
stOamMsg.numMsg = 1;
|
||||
stOamMsg.msgType = SPU_OAM_FRAME_HEAD_OFFSET_QRY_REQ;
|
||||
stOamMsg.msgLen = size;
|
||||
|
||||
//memset(buf, 0, size);
|
||||
//memcpy((uint8_t *)stOamMsg.msgData, (uint8_t *)&stOamDelayReq, sizeof(SpuOamBaseDelaySetReq_t));
|
||||
memcpy(buf, (uint8_t *)&stOamMsg, sizeof(OamMsgTransferHeader_t));
|
||||
|
||||
ret = msg_transfer_send_msg(handler.value, cu_flag, (uint8_t *)buf, offset, size);
|
||||
if ( SUCCESS != ret) {
|
||||
UCP_PRINT_ERROR("msg_transfer_send_msg send error\r\n");
|
||||
}
|
||||
msg_transfer_send_end(handler.value,cu_flag);
|
||||
|
||||
printf("\n-----------------------------------------------------------\n");
|
||||
for (int i = 0; i < size;i++)
|
||||
{
|
||||
printf("%02x ", buf[i]);
|
||||
|
||||
if ((i & 0x7) == 0x7)
|
||||
{
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
int32_t test_case(uint32_t argc, int32_t* argvp)
|
||||
{
|
||||
@ -435,13 +575,19 @@ int32_t test_case(uint32_t argc, int32_t* argvp)
|
||||
switch(guc_oam)
|
||||
{
|
||||
case 1:
|
||||
oam_msg_base_delay_set_test();
|
||||
oam_msg_base_delay_set_test();
|
||||
break;
|
||||
case 2:
|
||||
oam_msg_base_delay_qry_test();
|
||||
oam_msg_base_delay_qry_test();
|
||||
break;
|
||||
case 3:
|
||||
oam_msg_fiber_deley_qry_test();
|
||||
oam_msg_fiber_deley_qry_test();
|
||||
break;
|
||||
case 4:
|
||||
oam_msg_frame_head_offset_test();
|
||||
break;
|
||||
case 5:
|
||||
oam_msg_frame_head_offset_qry_test();
|
||||
break;
|
||||
}
|
||||
guc_oam = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user