负载均衡算法

 PIP/IPD的tag生成算法是用来为不同的流生成不同的tag,这样SSO就能自由的调度不同的流到不同核去处理

对于RAWFULL和RAWSCH类型的包,tag可以直接从包指令头里取得
『RAWFULL 类型的包是由两个寄存器配置决定的,某寄存器R位设置为1,某寄存器PM位设置为0,好像,详见CN68XX文档』

对于其他类型的的包:
Tag<31:28> is always 0x0.
Tag<27:16> is either the port number for the packet or all 1s.
Tag<15:0> is a hash of specific fields within the packet.
【与实验结果符合】

PIP_PRT_TAGn[TAG_MODE]会在两种不同的生成tag<15:0>的算法中选择出一种。
*元组tag生成算法:可以使用最多7元组进行哈希,例如元组tag生成算法适用于带有五元组的IP,TCP哈希生成
*掩码tag生成算法:适用于没有IP的包头,但是有另外一些用户定义的头(例如我们系统中自动生成的vlan)

元组tag生成算法和哈希tag生成算法可以按照下 面的方法结合:
*总是用元组tag
*总是用掩码tag
*对于有IP头的包用元组tag,对于没有IP头的包用掩码tag
*元组和掩码的同或/异或

第一个tag生成算法是元组哈希算法,元组哈希算法典型的是包含源目的IP地址,IP协议/下一个头的值,源目的端口,和DSA/VLAN 号
使用变量PIP_PRT_TAGn来控制这些参数,IPV4和IPV6的配置变量是区分开的,元组哈希算法还可以有一个secret value,元组哈希结果可以随secret value的改变而变得不同

对于一个IP包,元组值是一源目的哈希值的异或值,这样就可让上下行两个方向的流都计算出同一个tag值。

PIP/IPD 原始的元组哈希值是 对源目的IP和源目的端口进行CRC算法计算得出的值。

元组哈系算法详见文档,这里不解释

掩码哈希算法:
第二种tag计算方法是掩码哈系算法,掩码哈系算法可以使用任何用户自定义的区域(必须位于包的前128B)来进行哈希,这个功能是用4个128位的掩码完成的(PIP_TAG_INCn),在mask值中的每一位代表包的前128位的对应位置

tag元组的哈希值是16位的,并且可以压缩到更小的长度,端口号可以被tag生成算法包含进去
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值