L3 hwapi BCM56338芯片实现分析Word文件下载.docx
- 文档编号:13875362
- 上传时间:2022-10-14
- 格式:DOCX
- 页数:16
- 大小:1.31MB
L3 hwapi BCM56338芯片实现分析Word文件下载.docx
《L3 hwapi BCM56338芯片实现分析Word文件下载.docx》由会员分享,可在线阅读,更多相关《L3 hwapi BCM56338芯片实现分析Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
1.3.参考资料
《BCM56500Programmer’sRegisterReferenceGuide》
《BCM56330TheoryofOperations》
《Layer3LookupsandEnhancements》
2.硬件实现原理
2.1.硬件表
2.1.1.L3_ENTRY
描述:
L3_ENTRY是以下四个表的统称:
L3_ENTRY_IPV4_UNICAST,L3_ENTRY_IPV4_MULTICAST,L3_ENTRY_IPV6_UNICAST,L3_ENTRY_IPV6_MULTICAST,通过KEY_TYPE的设置,来分别作为上面四个表
Ø
最小索引:
最大索引:
8191
地址:
根据不同表的类型,地址不同
L3_ENTRY_IPV4_UNICAST如下图:
L3_ENTRY_IPV4_MULTICAST如下图
L3_ENTRY_IPV6_UNICAST如下图
L3_ENTRY_IPV6_MULTICAST如下图
2.1.2.ING_L3_NEXT_HOP
描述:
该表定义了路由报文的下一跳相关信息(出端口)。
0x10A10000
2.1.3.EGR_L3_NEXT_HOP
该表定义了路由报文的下一跳相关信息(下一跳目的MAC,intf)。
0x03B10000
2.1.4.EGR_L3_INTF
该表定义了路由报文的下一跳相关信息(下一跳源MAC,出端口vlan)。
4095
0x03B20000
2.1.5.L3_ECMP_COUNT
该表定义了等价路由的个数。
2047
0x10AA0000
2.1.6.L3_ECMP
该表定义了等价路由的NEXT_HOP_INDEX信息。
0x10A00000
2.2.BCM56338L3功能的硬件实现流程图
BCM56338L3功能的硬件实现流程如图2所示。
图2BCM56338L3功能的硬件实现流程图
如图2所示,BCM56338L3功能的硬件实现流程主要由以下几步组成:
●在L3_ENTRY表中查找DIP,如果找到,根据NEXT_HOP_INDEX信息,找ING_L3_NEXT_HOP表和EGR_L3_NEXT_HOP表,获取L3转发路径相关信息;
●如果L3_ENTRY中未找到,则在lpm表中寻找;
●如果是等价路由,那么在lpm表中,获取ECMP_PTR信息,指向L3_ECMP表和L3_ECMP_COUNT表,获取等价路径的NEXT_HOP_INDEX信息;
3.软件实现原理
3.1.bcm56338L3部分功能软件结构
目前在ITN201上实现了bcm56338的L3转发功能,软件接口函数代码集中在cesw_a\ssp\ipn201_ssp\src\bcmIpHw.c中,功能函数代码集中在cesw_a\ssp\ipn201_ssp\src\bcmRoute.c中。
3.2.bcm56338L3部分软件功能实现方案分析
3.2.1.接口ROS_HW_SV_IP_ROUTING实现方案分析
接口功能:
接口ROS_HW_SV_IP_ROUTING实现L3转发功能的使能与关闭
3.2.1.1.实现原理:
bcm_tms_l3_enable_set。
3.2.1.2.硬件关系图
3.2.1.3.特殊要求与实现
3.2.1.4.SDK与SSP支持情况
SDK提供
(1)bcm_l3_enable_set()
(2)bcm_arp_to_cpu_enable()
(3)bcm_l3_info()
(4)bcm_l2_addr_get()
(5)bcm_l2_addr_add()
其中,bcm_l3_enable_set设置port表的V4L3_ENABLE和V6L3_ENABLE;
bcm_arp_to_cpu_enable设置arp报文上交cpu;
bcm_l3_info获取芯片支持的最大intf数量;
bcm_l2_addr_get根据intf获取的mac和vlanid,查找L2_ENTRY,bcm_l2_addr_add将这些查找到的entry的L3标志位置1。
3.2.2.接口ROS_HW_SS_ROUTE_INFO实现方案分析
添加intf信息,并保存
3.2.2.1.实现原理:
bcm_tms_route_info_set。
3.2.2.2.硬件关系图
3.2.2.3.特殊要求与实现
3.2.2.4.SDK与SSP支持情况
(1)bcm_l3_intf_create()
3.2.3.接口ROS_HW_SS_ROUTE_DEST实现方案分析
配置目的路由
3.2.3.1.实现原理:
bcm_tms_route_dest_set。
3.2.3.2.硬件关系图
3.2.3.3.特殊要求与实现
3.2.3.4.SDK与SSP支持情况
(1)bcm_l3_egress_create()
(2)bcm_l3_ip_add()
(3)bcm_l3_defip_add()
(4)bcm_l3_egress_multipath_add()
(5)bcm_l3_egress_multipath_create()
bcm_l3_egress_create()负责创建三层出接口,包括写ING_L3_NEXT_HOP表和HOP表;
bcm_l3_ip_add(),创建主机直连路由的时候,使用该函数。
最终调用到函数bcm_xgs3_l3_add(),该函数中调用三个函数,分别是:
_bcm_xgs3_nh_init_add(),用来获取nexthopindex;
_bcm_xgs3_l3_add(),该函数写L3_ENTRY表;
bcm_xgs3_host_as_route(),如果L3_ENTRY写满,不能再写了,执行刚才的函数,写到最长前缀匹配表中。
如果是主机路由,并且非直连,或者是网络路由,就要写到最长前缀匹配表中。
此时分三种情况:
一种是新创建的路由,即原路由不存在,则调用bcm_l3_defip_add函数,此时除了添加必要的信息,比如目的ip地址,下一跳ip地址,还需要传递BCM_L3_D_HIT,BCM_L3_ADD_TO_ARL这两个宏下去,还需要传递bcm_l3_egress_create创建的egr_intf下去;
一种是原来就存在的路由,而且是等价路由,那么就只需要将新的路由信息添加到等价组当中就可以,bcm_l3_egress_multipath_add()函数来实现这个功能。
该函数实现流程如下:
调用bcm_xgs3_l3_egress_multipath_get()函数,来获取原来等价路径的结构;
将传递下来的intf添加到获取的等价组的最后;
调用bcm_xgs3_l3_egress_multipath_creat()函数来替换原来的等价组,替换的功能,是通过传递的BCM_L3_REPLACE宏和BCM_L3_WITH_ID来实现的;
一种是原来存在的路由,但是不是等价路由,也就是只有一条路径,此时流程是:
先用bcm_l3_defip_get()函数,各get出原来的路由信息,目的是得到原来的intf;
利用bcm_l3_egress_multipath_create()函数,以bcm_l3_egress_create创建的egr_intf为参数,创建等价组,bcm_l3_egress_multipath_create()函数在bcm_l3_egress_multipath_add()函数中也会被调用,区别就是传递的宏不一样,实现的功能就不一样;
调用bcm_l3_egress_multipath_add()函数,将get出来的原来路由信息中的intf,加入到刚刚创建的等价组当中;
调用bcm_l3_defip_add()函数,更新原来的路由信息为等价路由,功能实现靠的也是两个宏,即BCM_L3_MULTIPATH和BCM_L3_REPLACE。
3.2.4.接口ROS_HW_SS_ROUTE_DEST_UPDATE实现方案分析
更新目的路由
3.2.4.1.实现原理:
bcm_tms_route_dest_update。
3.2.4.2.硬件关系图
3.2.4.3.特殊要求与实现
3.2.4.4.SDK与SSP支持情况
(2)bcm_l3_egress_get()
先调用bcm_l3_egress_get()获取原来的egress相关信息,包括出端口,vlan,intf信息,再利用bcm_l3_egress_create()更新原来的egress信息。
同样,也是靠宏BCM_L3_REPLACE宏BCM_L3_WITH_ID来实现的
3.2.5.接口ROS_HW_SV_ROUTE_DEST_DEL_ALL实现方案分析
删除所有目的路由
3.2.5.1.实现原理:
bcm_tms_route_dest_all_delete。
3.2.5.2.硬件关系图
3.2.5.3.特殊要求与实现
3.2.5.4.SDK与SSP支持情况
SSP提供
(1)bcm_l3table_del_all()
(2)bcm_defip_del_all()
(1)_bcm_xgs3_l3_del_match()
(2)_bcm_fbx_lpm_update_match()
(3)bcm_l3_egress_multipath_destroy()
(4)bcm_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- L3 hwapi BCM56338芯片实现分析 BCM56338 芯片 实现 分析