博通SDK关于IPMC的操作
来源:互联网 发布:眼睛 风格 知乎 编辑:程序博客网 时间:2024/05/22 13:39
最近在做基于博通的三层交换机,其中涉基到三层组播功能的开发
现在在SDK下面操作,先对其有一个感性的认识
下面为基本环境:
ge12,ge14在vlan 1下面,ge16,ge18在vlan 2下面,
首先要关掉vlan内对未来组播的洪泛
BCM.0> vlan MulticastFlood 1 2
BCM.0> vlan MulticastFlood 2 2
BCM.0> vlan show
vlan 1 ports cpu,ge0-ge15,ge17,ge19-ge28 (0x00000000000000003ff5ffff), untagged ge0-ge15,ge17,ge19-ge28 (0x00000000000000003ff5fffe) MCAST_FLOOD_NONE
vlan 2 ports cpu,ge16,ge18 (0x0000000000000000000a0001), untagged ge16,ge18 (0x0000000000000000000a0000) MCAST_FLOOD_NONE
使能三层组播
BCM.0> ipmc config enable=1
我们现在向vlan 1 的ge12端口打组播235.3.3.3的数据流
下面验证三层组播转发同vlan内转发
BCM.0> ipmc table add src_ip=111.111.111.111 mc_ip=235.3.3.3 vlanid=1 l2_map=ge14 l3_map=ge16,ge18
预期结果
ge14端口可以收到组播数据包
实际结果
ge14端口收不到组播包
但是sdk下面查看l2_map是有的
BCM.0> ipmc table show
SRC IP ADDRESS MC IP ADDRESS VLAN PORT V COS TS L3_MAP L2_MAP L2_UT_MAP VRF CLASS HIT
111.111.111.111 235.3.3.3 1 0 1 -1 0 0x0000000000000000000a0000 0x000000000000000000008000 0x000000000000000000000000 0 0 y
原因分析
BCM.0>show counter
GTBCA.ge2 : 21,185 +172 2/s
GT64.ge2 : 14,896 +108 2/s
GT127.ge2 : 5,426 +41
GT255.ge2 : 2,242 +17
GT511.ge2 : 422 +4
GT1023.ge2 : 267 +2
GTPKT.ge2 : 23,256 +172 2/s
GTBYT.ge2 : 2,219,533 +16,903 190/s
GTPOK.ge2 : 23,256 +172 2/s
RDBGC0.ge12 : 3,820 +479 8/s
RDBGC2.ge12 : 3,820 +479 8/s
GRMCA.ge12 : 4,272 +479 8/s
GRBCA.ge12 : 802 +3
GR127.ge12 : 4,701 +482 8/s
GRPKT.ge12 : 5,115 +482 8/s
GRBYT.ge12 : 537,432 +50,104 926/s
GRPOK.ge12 : 5,115 +482 8/s
GTBCA.ge12 : 20,381 +169 2/s
GT64.ge12 : 14,626 +108 2/s
GT127.ge12 : 4,599 +38
GT255.ge12 : 2,129 +17
GT511.ge12 : 414 +4
GT1023.ge12 : 267 +2
GTPKT.ge12 : 22,038 +169 2/s
GTBYT.ge12 : 2,090,005 +16,615 190/s
GTPOK.ge12 : 22,038 +169 2/s
RDBGC0.ge14 : 3,890 +47
RDBGC2.ge14 : 4,908 +47
GRMCA.ge14 : 6,021 +47
GRBCA.ge14 : 15,775 +169 2/s
GR64.ge14 : 12,199 +114 2/s
GR127.ge14 : 4,613 +38
GR255.ge14 : 4,129 +58
GR511.ge14 : 424 +4
GR1023.ge14 : 461 +2
GRPKT.ge14 : 21,834 +216 3/s
GRBYT.ge14 : 2,410,982 +24,480 400/s
GRPOK.ge14 : 21,834 +216 3/s
GTBCA.ge14 : 653 +3
GT127.ge14 : 829 +3
GTPKT.ge14 : 1,142 +3
GTBYT.ge14 : 122,299 +288
GTPOK.ge14 : 1,142 +3
从counter可以看出
ge12口收到组播包
GRMCA.ge12 : 4,272 +479 8/s
ge14品缺少了GTMCA、没有发出组播包
BCM.0> dump l3_ipmc
L3_IPMC.ipipe0[0]: <VALID=1,PORT_TGID=0,MODULE_ID=0,L3_BITMAP=0xa0000,L2_BITMAP=0x8000,IPMC_TUNNEL_TYPE=0,HIGIG_TRUNK_OVERRIDE=0,EVEN_PARITY=0>
三层组播同vlan内组播验证失败
下面接着上面验证三层跨vlan组播
先看SDK下面的提示
ipmc repl set MCGroup=<group_no> Port_map=<pbmp>
VlanList=<list>
其中参数MCGroup不知道怎么和组播组联系在一起的,至少从命令行上没有明显的提示
BCM.0> dump l3_entry_ipv4_multicast
L3_ENTRY_IPV4_MULTICAST.ipipe0[816]: <VRF_ID=0,VLAN_ID=1,VALID=1,V6=0,SOURCE_IP_ADDR=0x6f6f6f6f,RPE=0,RESERVED=0,PRI=0,L3MC_INDEX=0,IPMC=1,HIT=1,GROUP_IP_ADDR=0xeb030303,EVEN_PARITY=1,DST_DISCARD=0>
所以 就取值L3MC_INDEX (不确定对不对)
BCM.0>ipmc repl set MCGroup=0 port_map=ge16 vlanlist=2
IPMC: Invalid configuration
命令不成功
预期结果:
ge16口可以收到组播数据包,ge18口收不到
实际结果:
ge
结果 同vlan内ipmc组播失败,跨vlan组播失败,原因在查找
- 博通SDK关于IPMC的操作
- IPMC 测试
- 关于sdk的点点滴滴
- 关于Jlkink SDK的探讨
- 关于第三方的SDK
- 博通SDK中关于I2C驱动的问题
- 关于同时使用MOB的分享SDK和短信SDK
- 关于SDK
- Moto的J2ME SDK可以操作文件系统
- 我的vc socket 操作类 SDK
- PHP 微信 js sdk的操作
- 关于WINDOWS SDK WM_PAINT的一些想法
- 关于sdk编程的一点疑问
- 关于SDK GetSystemTime()的小时问题
- 关于Android sdk隐藏接口的使用
- 关于android基于LINUX的SDK问题
- 关于android的sdk版本和分辨率
- 关于SDK回调Qt函数的问题
- SF :Salesforce中,得到一个对象的picklist类型下面的所有value的值
- oracle 用户密码过期
- SF :Salesforce中,关于审批的一些对象
- SF :Salesforce中,动态拼接SOQL
- SF :Salesforce中,查询picklist的value的值
- 博通SDK关于IPMC的操作
- SF :Salesforce中,Get and Set
- SF :Salesforce中,datalable
- SF :Salesforce中,Rights Management
- JMS之初步学习
- return 在try{}catch{}final{}的执行情况
- Monkey 的基本使用
- UDP信息接收与发送
- 多维数组的初始化