请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:66AK2E02
您好!
我正在使用 pdk_k2e_4_0_4处理 k2e 器件的 PA 和 SA。
当我使用带阈值禁用的 Cppi 流时、SA 和 PA 工作正常。 但是、当我通过启用数据包大小阈值来初始化 Cppi 流时、PA 工作正常、但 SA 未运行。 打开 Cppi 阈值时 SA 是否不起作用? 或者我是否做了一些错误的事情?
下面是一个显示如何初始化 cpi 流的代码:
const uint32pass_flow_id_TO_fbq_mapping []={
FBQ_packet_data
};
enum{
pass_CPDMA_default_flow_ID
};
Int32 setup_rx_queue (Qmss_Queue * rxQInfo)
{
extern Qmss_QueueHxQHnd
;gRxQpa_queue =
Qms_return
(Qms_rg_rq-rq-rq
= rq-rq-rq-rq)}(外部 Qms_rqrqrq-rqrqrqrnd);xp_rg_rqrqrg_rqrq-rqrqrnd = t
rxFreeQInfo、rxQInfo;
Cppi_RxFlowCfg rxFlowCfg;
uint32_ti、num_for_allocated、j;
setup_rx_queue (&rxQInfo);
/*初始化流配置*/
memset (&rxFlowCfg、0、sizeof (Cppi_RxFlowCfg));
rxFreeQInfo = Qmss_getFlowQueueNumber (pass_flow_id_TO_fbq_mapping [j]);
//让 CPPI 选择下一个可用流*/rxFlowCfg.FlowId]
= pass_CPDMA_default_flow_ID;
rxFlowCfg.rx_dest_qmgr = rxQInfo.qMgr;
rxFlowCfg.rx_dest_qnum = rxQInfo.qNum;
rxFlowCfg.rx_desc_type = Cppi_DescType_Monic单 片;
rxFlowCfg.Rx_SOP_OFFSET = packet_data_buffer_data_start_offset;
rxFlowCfg.rx_ps_location = Cppi_PSLoc_PS_in_Desc;
rxFlowCfg.rx_psinfo_present = 1;//启用 PS 信息*/
rxFlowCfg.rx_error_handling = 0;//丢弃数据包,默认情况下不会在饥饿时重试*/
rxFlowCfg.rx_einfo_present = 1;//
rxFlowCfg.rx_dest_tag_lo_SEL = 1;//禁用标记*/
rxFlowCfg.rx_dest_tag_hi_SEL = 1;
rxFlowCfg.rx_src_tag_lo_SEL = 0;
rxFlowCfg.rx_src_tag_hi_SEL = 0;
rxFlowCfg.rx_dest_tag_lo=0;
rxFlowCfg.rx_dest_tag_hi=0;
rxFlowCfg.rx_size_thresh_en = 1;
rxFlowCfg.rx_size_thresh1_en = 0;
rxFlowCfg.rx_size_thresh2_en = 0;
rxFlowCfg.rx_size_thresh0 = 3456;
rxFlowCfg.rx_size_thresh1 = 0x0;
rxFlowCfg.rx_size_thresh2 = 0x0;
rxFlowCfg.rx_fdq0_sz0_qmgr = rxFreeQInfo.qMgr;//设置流的接收空闲队列*/
rxFlowCfg.rx_fdq0_sz0_qnum = rxFreeQInfo.qNum;
rxFlowCfg.rx_fdq0_sz1_qmgr = 0x0;
rxFlowCfg.rx_fdq0_sz1_qnum = 0x0;
rxFlowCfg.rx_fdq0_sz2_qmgr = 0x0;
rxFlowCfg.rx_fdq0_sz2_qnum = 0x0;
rxFlowCfg.rx_fdq0_sz3_qmgr = 0x0;
rxFlowCfg.rx_fdq0_sz3_qnum = 0x0;
rxFlowCfg.rx_fdq1_qnum = rxFreeQInfo.qNum;//使用 Rx Queue 选择描述符*/
rxFlowCfg.rx_fdq1_qmgr = rxFreeQInfo.qMgr;
rxFlowCfg.rx_fdq2_qnum = rxFreeQInfo.qNum;//使用 Rx Queue 选择描述符*/
rxFlowCfg.rx_fdq2_qmgr = rxFreeQInfo.qMgr;
rxFlowCfg.rx_fdq3_qnum = rxFreeQInfo.qNum;//使用 Rx Queue 选择描述符*/
rxFlowCfg.rx_fdq3_qmgr = rxFreeQInfo.qMgr;
//配置 Rx 流*/
if ((gRxFlowHnd[j]= Cppi_configureRxFlow (gCpdmaHnd、&rxFlowCfg、&num_for_allocated))=)
{
SEVER_ERROR;
}
返回 false;
}