broadcom Knet 功能调试记录

                       broadcom  Knet 功能调试记录

broadcom部分交换芯片集成了CPU,CPU模块和交换模块通过DMA通道进行数据的通信,broadcom把该通道通过knet虚接口的方式提供CPU的网口功能,和sdk提供的rxtx模块功能有下面区别:

  rxtx功能只是一种发送和接收报文的处理方式,最终仍是调用驱动层面的发送和接收接口。Knet虚接口相当于底层驱动,把DMA通道封装成一个接口的形式,屏蔽上层应用感知底层DMA方式实现收发包。

 

Knet在应用上需要在make.local文件中定义FEATURE_LIST=KNET,把knet功能开关打开,KNET驱动的实现在sdk的kernel层,源码路径:\systems\linux\kernel\modules\bcm-knet\bcm-knet.c

对于BCM 534XX的greyhound系列芯片,在\systems\linux\user\iproc-3\下进行编译,编译结果会生成linux-kernel-bde.ko,linux-user-bde.ko, linux-uk-proxy.ko, linux-bcm-knet.ko这几个ko文件和bcm.user执行文件;

生成的几个ko文件和bcm.user文件加载到目标板中,在linux系统命令行下先对几个模块使用mknod添加相应的字符设备文件;然后进行insmod,处理如下:

 

mknod /dev/linux-kernel-bde c 125 0

mknod /dev/linux-user-bde c 125 0

mknod /dev/linux-uk-proxy. c 125 0

mknod /dev/linux-kernel-bde c 125 0

 

insmod linux-kernel-bde.ko

insmod linux-user-bde.ko

insmod linux-uk-proxy.ko

insmod linux-bcm-knet.ko use_rx_skb=”1” num_rx_prio=”2” mac_addr=”00:11:22:33:44:55”rx_buffer_size=”9238” rcpu_mode=”1” rcpu_dmac=”00:01:02:03:04:05” rcpu_smac=”00:00:33:44:55:66”rcpu_ethertype=”de08” rcpu_vlan=”4094”

 

安装好驱动模块后,运行应用程序,如bcm.user;

在bcm shell命令行界面下执行下面命令:

sc arprequersttocpu=1   //设置arp请求报文送cpu处理

sc arpreplytocpu=1      //设置arp应答报文送cpu处理

sc l3egressmode=1      //启用三层出接口管理

l3 intf add vlan=1 mac=00:11:22:33:44:55 intf=3  //三层出接口封装信息

l3 egrss add intf=3 copytocpu=true   //三层接口object信息创建

l3 l3table add ip 192.168.4.10 intf=$egr_object_id  //添加一条静态表项

knet netif create type=mete vlan=0 ifname=vintf0 rcpu=yes //创建knet虚接口

knet fileter create desttype=netif destid=1 prio=127 striptag=no //创建knet虚接口

 

使用bcm  提供的rx /tx应用验证收发包,使用pc连接网口进行ping验证收发包;

 

需要注意的是不同支持knet的芯片对应的cpu报文头格式可能是不相同的,移植代码时要注意;

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值