88E1548P MACSec使用-Ingress Pipe

电子说

1.3w人已加入

描述

对于每个报文,入路径会执行以下步骤:

1.解析数据包(提取DA、SA、VLAN、MACsec标签、报头和以太类型)

2.根据以太网类型匹配表匹配以太网类型

3.查找包(在SCI+AN上匹配MACsec包,或在其他L2字段中匹配非MACsec包,在命中时返回上下文编号)

4.解密数据包(使用合适的密钥解密)

5.验证数据包(使用适当的散列键来计算数据包上的ICV)

6.重写包(删除MACsec标签,插入专有报头)

7.检查认证(将数据包ICV与计算的ICV进行比较,执行重放检查)

与出口管道类似,这些步骤由具有分离控制/数据路径的管道实现,如图46所示。这张图显示了三种类型的功能单元。引擎是管道中直接处理每个数据包的单元。引擎具有最小的配置,并且它们的配置信息由静态值组成,例如Ethertypes。缓冲区用于吸收由各种引擎处理引入的延迟。表包含大多数控制信息和处理所需的所有动态信息。

SCI

Ingress Look Up Table

入口查找表IngressLook Up Table是入口管道中数据包的决策点。该表类似于相应的出口查找表,并且具有相同的字段和启用位。除了这些字段之外,入口查找表还作为SCI、TCI和AN的条目,并使用单个enable位对这些字段执行匹配。查找表还包含数据包TCI的8位掩码,因此不需要检查所有TCI。

SCI

SCI

由于MACsec数据包的主要查找方法是基于SCI,因此为每个MACsec数据包分配一个SCI以进行查找是很重要的。对于SC=1的数据包,这很简单,因为64位SCI包含在MACsec标签中。对于SC=0的数据包,解析器计算一个SCI值,并使用图44所示的流程图将该值发送到查找表。

SCI

查找表的输出是一组动作(删除、认证、重定向、插入头,请参阅入口查找表动作位),以及一个上下文条目的索引,如果要对数据包进行身份验证或解密,将使用该索引。“删除”操作与“验证”操作是互斥的;这两个位不应该设置为同一项。

如果一个查找表项设置了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位采取默认操作。

SCI

上电后自动清除入口查找表。出口和入口查找表可以使用Slice reset_ctl寄存器的tbl_init位重新初始化。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分