0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Egress Pipe配置使用方法

rfdqdzdg 来源:数字芯片设计工程师 2023-06-29 09:22 次阅读

Egress Pipe配置使用

出口路径对每个数据包执行以下步骤:

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

2.根据以太网类型匹配表匹配以太网类型(二层payload类型);

3.查找包(匹配上述任何/所有L2字段,在命中时返回上下文编号)

4.检索上下文(包含要对数据包执行的操作,以及MACsec标记的内容)

5.重写包(插入/替换MACsec标签,删除专有报头)

6.加密数据包(使用合适的密钥加密)

7.验证数据包(使用适当的散列密钥计算数据包的ICV,并在验证/加密结束后插入)

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

5f613de8-159b-11ee-962d-dac502259ad0.png

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),以及一个上下文条目的索引,如果要对数据包进行身份验证或加密,将使用该索引。丢弃数据包与认证/加密动作是互斥的。

5f9dff3a-159b-11ee-962d-dac502259ad0.png

6028be68-159b-11ee-962d-dac502259ad0.png

数据包VLAN取自数据包中出现的第一个802.1q标签(如果出现),如果启用了parse_macsec,则取自MACsec标签之后的第一个802.1q标签。如果解析器没有找到1q标记,将使用缺省VLAN寄存器(cfg_default_vlan)中的VLAN值执行查找。

如果数据包不匹配Ethertype match表或查找表,则根据egr_gen的def_drop和def_rmv_hdr位采取默认操作。

603c863c-159b-11ee-962d-dac502259ad0.png

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

Context and Key tables

上下文表(Egress context Table)和密钥表(Encrypt key Table和Egress Hash key Table)包含对报文进行封装、加密和认证所需的信息。上下文表包含创建MACsec报头所需的信息。这些信息被提供给重写引擎(它实际执行插入)和加密引擎(它使用这些信息形成nonce)。

Egress Context Table

608eacdc-159b-11ee-962d-dac502259ad0.png

60d8af8a-159b-11ee-962d-dac502259ad0.png

612ae7b4-159b-11ee-962d-dac502259ad0.png

加密和散列密钥表包含执行加密和身份验证所需的密钥。加密密钥为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

    文章

    5414

    浏览量

    171544
  • VLAN
    +关注

    关注

    1

    文章

    277

    浏览量

    35620
  • 数据包
    +关注

    关注

    0

    文章

    260

    浏览量

    24384

原文标题:88E1548P MACSec使用(2)--Egress Pipe

文章出处:【微信号:数字芯片设计工程师,微信公众号:数字芯片设计工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    MQTT软件包的配置参数和使用方法

    MQTT使用说明MQTT软件包的配置参数和使用方法
    发表于 03-30 08:10

    HC05模块使用方法配置步骤

    手撸六足机器人(二)----------确定通信方式:HC05模块使用方法配置步骤示例对于遥控器和机器人之间通讯方法,考虑到机器人动作的多样化和一些反馈,要寻找一种无线的、稳定的、支持复杂数据收发
    发表于 12-03 06:54

    介绍SPI的使用方法

    写在最前使用RT-Thread Studio开发环境开发STM32单片机程序,与MDK使用env有一定的差别,对于刚开始使用的程序员来说,主要是找不到配置选项在哪里,上一篇介绍了TIM设备的使用方法
    发表于 02-17 06:32

    i.MX8MP EQOS MAC_Ingress_Timestamp_Latency和MAC_Egress_Timestamp_Latency始终为0的原因?

    和 11.7.2.5.3.2 节),但我总是阅读0 来自 MAC_[Ingress,Egress]_Timestamp_Latency 寄存器。这是配置问题吗?
    发表于 04-03 07:15

    示波器的使用方法

    示波器的使用方法 1 示波器使用        本节介绍示波器的使用方法。示波器种类、型号很多,功能也不同。
    发表于 01-14 13:06 1.8w次阅读

    Matlab使用方法和程序设计

    Matlab使用方法和程序设计 实验一 Matlab使用方法和程序设计一、
    发表于 10-17 00:18 5391次阅读
    Matlab<b class='flag-5'>使用方法</b>和程序设计

    示波器的使用方法

    数字万用表使用方法和示波器的使用方法详解。
    发表于 03-14 10:38 32次下载

    xilinx 原语使用方法

    xilinx 原语使用方法
    发表于 10-17 08:57 11次下载
    xilinx 原语<b class='flag-5'>使用方法</b>

    ORCAD PSPICE 使用方法

    ORCAD PSPICE 使用方法
    发表于 10-18 14:52 39次下载
    ORCAD PSPICE <b class='flag-5'>使用方法</b>

    git使用方法

    git使用方法
    发表于 10-24 09:45 19次下载
    git<b class='flag-5'>使用方法</b>

    示波器的使用方法(三):示波器的使用方法详解

    示波器的使用方法并非很难,重点在于正确使用示波器的使用方法。往期文章中,小编对模拟示波器的使用方法和数字示波器的使用方法均有所介绍。为增进大家对示波器的
    的头像 发表于 12-24 20:37 3248次阅读

    在FPGA中配置PLL的步骤及使用方法

    在FPGA中配置PLL的步骤及使用方法
    发表于 05-28 10:01 21次下载

    exynos 4412 电源管理芯片PMIC 的配置使用方法

    ,就算是datasheet也很难下载得到,不知是何原因?我只能理解成这部分知识比较简单,没人愿意写吧。但记录一下原理和使用方法做为备忘,总归没有什么坏处。另外仍然需要提前声明的是,这里只提供官方手册推荐的配置方法,自由玩法不保证
    发表于 01-11 15:42 1次下载
    exynos 4412 电源管理芯片PMIC 的<b class='flag-5'>配置</b>及<b class='flag-5'>使用方法</b>

    Pipe Go开源博客平台

    ./oschina_soft/gitee-pipe.zip
    发表于 06-09 14:49 1次下载
    <b class='flag-5'>Pipe</b> Go开源博客平台

    交换机最基本的配置使用方法

    交换机最基本的配置使用方法
    的头像 发表于 01-04 11:34 7180次阅读