Egress Pipe配置使用
出口路径对每个数据包执行以下步骤:
1.解析数据包(提取DA、SA、VLAN、MACsec报头、专有报头和以太类型)
2.根据以太网类型匹配表匹配以太网类型(二层payload类型);
3.查找包(匹配上述任何/所有L2字段,在命中时返回上下文编号)
4.检索上下文(包含要对数据包执行的操作,以及MACsec标记的内容)
5.重写包(插入/替换MACsec标签,删除专有报头)
6.加密数据包(使用合适的密钥加密)
7.验证数据包(使用适当的散列密钥计算数据包的ICV,并在验证/加密结束后插入)
这些步骤由具有分离的控制/数据路径的流水逻辑实现,如图45所示。这张图显示了三种类型的功能单元。引擎是管道中直接处理每个数据包的单元。引擎具有最小的配置,并且它们的配置信息由静态值组成,例如Ethertypes。缓冲区用于吸收由各种引擎处理引入的延迟。表包含大多数控制信息和处理所需的所有动态信息。
Ethertype match table
以太类型匹配表在出接口和入接口之间共享,包含8种以太类型,可以与数据包解析器找到的内部以太类型进行匹配。可以通过配置寄存器(et_m0, et_m1, et_m2, et_m3)来编程8种以太类型。如果内部以太类型匹配以太类型匹配表中的一个已启用的条目(由et_match_ctl的etm_egr_en位启用),则数据包将:
1.被丢弃,或者
2.根据et_match_ctl的etm_eg_drop或etm_rmv_hdr位的设置,专有头将从包的前面删除。如果两个位都为零,数据包将被绕过(be bypassed)。此表的优先级高于查找表——任何与已启用条目匹配的数据包都不会在查找表中查找。与Ethertype匹配表匹配的数据包将被LinkCrypt统计为“miss”数据包。
Lookup table 查找表
查找表是出口管道中数据包的主要决策点。该表是一个32条目的优先级查找表,其功能类似于CAM。该表包含MAC DA、MAC SA、VLAN、ethertype和header match字段,以及每个字段的使能位。该表还包含一个默认匹配位,因此搜索到具有默认设置的条目将始终匹配该条目。
查找表的输出是一组动作(删除、认证、加密、删除头,请参阅出口查找表动作位Egress Look Up Table),以及一个上下文条目的索引,如果要对数据包进行身份验证或加密,将使用该索引。丢弃数据包与认证/加密动作是互斥的。
数据包VLAN取自数据包中出现的第一个802.1q标签(如果出现),如果启用了parse_macsec,则取自MACsec标签之后的第一个802.1q标签。如果解析器没有找到1q标记,将使用缺省VLAN寄存器(cfg_default_vlan)中的VLAN值执行查找。
如果数据包不匹配Ethertype match表或查找表,则根据egr_gen的def_drop和def_rmv_hdr位采取默认操作。
上电后,查找表自动清除。出口和入口查找表可以使用slice reset_ctl寄存器的tbl_init位重新初始化。
Context and Key tables
上下文表(Egress context Table)和密钥表(Encrypt key Table和Egress Hash key Table)包含对报文进行封装、加密和认证所需的信息。上下文表包含创建MACsec报头所需的信息。这些信息被提供给重写引擎(它实际执行插入)和加密引擎(它使用这些信息形成nonce)。
Egress Context Table
加密和散列密钥表包含执行加密和身份验证所需的密钥。加密密钥为AES计数器模式使用的128位AES密钥。哈希密钥是一个128位密钥,通过对加密密钥和数据值0执行AES操作而得到加密密钥。
上下文号不仅指上下文表中的条目号,还指加密密钥表和散列密钥表中的条目。例如,引用上下文#2的查找条目将使用加密密钥#2和散列密钥#2。上下文表还包含将与下一个数据包一起传输的PN值(ectx0_2)。该PN值在每个数据包发送后自动增加。如果启用了drop_max_pn,则传输数据包的编号将围绕并保持在PN 0。一旦PN计数器达到0,它就不会增加。该pn0报文和所有后续到达该表项的报文将被丢弃。如果禁用drop_max_pn,则PN将绕圈,数据包将从PN=1开始传输(跳过PN=0)。允许PN计数器达到零值被认为是一个错误条件,并且将设置pn_full中断。当任何一个PN计数器超过3/4满阈值时,就会设置第二个中断。
配置Egress Pipe
出口管道的操作主要由图45中所示的四个表控制。管道从左到右访问这些表(查找散列键),因此在配置期间,它们以相反的顺序(从右到左)进行更改。顺序为:
1. Disable lookup entry
2. Program hash key
3. Program encrypt key
4. Program context
5. Program lookup entry
6. Enable lookup entry
要禁用查找项(lookup entry),只需要写入最高的单词。对于所有其他表项entry,表项应该从最低地址写到最高地址(word0àword3)。完成此操作后,步骤#5和#6可以结合使用,因为查找项中的启用位位于写入的最后一个单词中。
-
以太网
+关注
关注
40文章
5419浏览量
171592 -
VLAN
+关注
关注
1文章
277浏览量
35634 -
数据包
+关注
关注
0文章
260浏览量
24384
原文标题:88E1548P MACSec使用(2)--Egress Pipe
文章出处:【微信号:数字芯片设计工程师,微信公众号:数字芯片设计工程师】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论