电子说
对于每个报文,入路径会执行以下步骤:
1.解析数据包(提取DA、SA、VLAN、MACsec标签、报头和以太类型)
2.根据以太网类型匹配表匹配以太网类型
3.查找包(在SCI+AN上匹配MACsec包,或在其他L2字段中匹配非MACsec包,在命中时返回上下文编号)
4.解密数据包(使用合适的密钥解密)
5.验证数据包(使用适当的散列键来计算数据包上的ICV)
6.重写包(删除MACsec标签,插入专有报头)
7.检查认证(将数据包ICV与计算的ICV进行比较,执行重放检查)
与出口管道类似,这些步骤由具有分离控制/数据路径的管道实现,如图46所示。这张图显示了三种类型的功能单元。引擎是管道中直接处理每个数据包的单元。引擎具有最小的配置,并且它们的配置信息由静态值组成,例如Ethertypes。缓冲区用于吸收由各种引擎处理引入的延迟。表包含大多数控制信息和处理所需的所有动态信息。
Ingress Look Up Table
入口查找表IngressLook Up Table是入口管道中数据包的决策点。该表类似于相应的出口查找表,并且具有相同的字段和启用位。除了这些字段之外,入口查找表还作为SCI、TCI和AN的条目,并使用单个enable位对这些字段执行匹配。查找表还包含数据包TCI的8位掩码,因此不需要检查所有TCI。
由于MACsec数据包的主要查找方法是基于SCI,因此为每个MACsec数据包分配一个SCI以进行查找是很重要的。对于SC=1的数据包,这很简单,因为64位SCI包含在MACsec标签中。对于SC=0的数据包,解析器计算一个SCI值,并使用图44所示的流程图将该值发送到查找表。
查找表的输出是一组动作(删除、认证、重定向、插入头,请参阅入口查找表动作位),以及一个上下文条目的索引,如果要对数据包进行身份验证或解密,将使用该索引。“删除”操作与“验证”操作是互斥的;这两个位不应该设置为同一项。
如果一个查找表项设置了8个使能位中的任何一个,则该查找表项被认为是“已启用”的(参见入口查找表8位)。所有启用位都位于查找表项的最高位,因此可以通过一次写操作启用或禁用表项。要禁用某个表项,将所有使能位设置为0。
查找表还在查找之前验证MACsec报头。参见章节3.2.7.3,MACsec报头验证了解更多信息。
没有MACsec头的报文可以根据VLAN查找。如果存在802.1q标记,则使用来自该标记的VLAN,否则根据缺省VLAN值(cfg_default_vlan)查找数据包。
如果数据包不匹配Ethertype match表或查找表,则根据igr_gen的default_drop、def_redir和def_ins_hdr位采取默认操作。
上电后自动清除入口查找表。出口和入口查找表可以使用Slice reset_ctl寄存器的tbl_init位重新初始化。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !