包输入流程/wqe调度信息的配置

【1】我们现在的系统有一个原则:就是基本上所有的配置都是默认的,所以在梳理包处理流程遇到各种寄存器的时候先假设寄存器没有被配置过(默认状态)
【2】包输入流程:

硬件流程
   MAC—— DPI —— PIP/IPD —— SSO —— core
数据状态
 包数据  ——  DPI_INST_HDR+包数据  ——  PKT_INST_HDR+包数据  ——  PKT_INST_HDR和包数据的组合   ——  wqe节点

DPI是直接存取MAC的接口;DPI中有32个ring,这32个ring各自有各自的pkind区分
包数据进入,存在MAC上,然后ring从MAC上抓取包数据,并创建一条指令,DPI_INST_HDR,然后用DPI_INST_HDR在一些配置的作用下转换成一条PKT_INST_HDR指令,将这个PKT_INST_HDR指令和包数据组合起来传入到PIP/IPD上 ,然后PIP/IPD根据配置和 PKT_INST_HDR指令中包含的信息/包数据,创建wqe节点,然后将wqe节点传入SSO,SSO调度wqe给core处理

【3】wqe中调度字段的来源
tag_type:由~/v5/cdk3/linux/kernel_2.6/linux/arch/mips/include/asm/octeon/cvmx-config.h  中的配置生效
tag_value:由include/mpp_init.c 中 mc_pip_port_intialize函数 配置决定(使用五元组还是只用vlan id)
pkind:应该先于qos得到,在初始化XAUI口的时候全部被设置成5,但是打印结果是每一个XUIA口都有不同的pkind,显然在设置XUIA和获取qos之间应该有对pkind的修改;
XAUI口的pkind是GMX(0..4)_PRT(0..3)_CFG[PKND]寄存器决定的,32个ring中的pind是由SLI_PORT(0..31)_PKIND[PKIND]决定的,现在猜想wqe中的pknd不是XUIA的pkind决定的,而是获取这个包的ring决定的,
要   1、确定ring和pkind的映射关系   2、ring和XUIA口的映射关系   找到这两点就能将不同的pkind和不同的XUIA接口联系起来

获得信息:
1、
ring和pkind的映射关系在这个寄存器中存储:SLI_PORT(0..31)_PKIND[PKIND] 
2、每个DPI ring都会映射到一个PIP/IPD pkind,映射关系在
SLI_PORT(0..31)_PKIND[PKIND] 储存
说明ring的pkind和XAUI接口的pkind是一样的

qos:由
PIP_PRT_TAG[pkind]寄存器决定,这是默认配置,我们没有对默认配置进行修改,pkind怎么产生的暂时没找到(因为打印信息的pkind是0,1,2,3;qos也是0,1,2,3;查看 PIP_PRT_TAG寄存器发现吻合,可以确定qos是文档上写的默认的取法
grp:在
include/mpp_init.c 中 mc_pip_port_intialize函数中,grep被显式的设置为GROUP_FROM_INPUT_PORT,实际值为0
 

 

【4】问题:
咱们的包类型是剥离两层头的类型?
CDK3内核中的函数(mc开头的)在执行的时候会被更新到响应调用它的位置上。如何移动的这些函数?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值