一种二层转发的流水线实现方法及装置

未命名 09-23 阅读:90 评论:0


1.本发明属于以太网通信技术领域,具体涉及一种二层转发的流水线实现方法及装置。


背景技术:

2.随着通信技术的发展以及业务量的急剧增大,对于交换机来说,吞吐量的要求也逐渐变高。在交换机中,转发业务是必不可少的功能。
3.目前二层转发的功能要求已经很具体,例如表项自学习功能、查找功能、老化功能等。但是已公开的相关内容比较少,例如2021年11月公开的以太网二层转发表的学习方法及系统,主要介绍了二层转发中学习功能的实现;2021年9月公开的一种实现以太网转发表精确老化的方法,主要介绍了二层转发中老化功能的实现;2021年5月公开的一种二层转发的实现方法,主要介绍了转发中的部分逻辑。目前的二层转发的相关技术缺少二层转发整体架构相关内容。
4.对于二层转发常用的方案为:学习和转发同时进行,具体实现由状态机实现;存储方面分为学习表和转发表,其中学习表用来进行学习操作时查表,转发表用来转发时查表,转发表需要和学习表、其它模块学习表(包括老化同步)进行同步。这样的处理存在两处问题:1.使用状态机使得设计相对延迟、绝对延迟较大,难以应用于高速设计中;2.使用表项同步时结构有待优化,转发表的结构设计不恰当会带来很大的存储资源消耗和同步逻辑消耗。


技术实现要素:

5.为了解决现有技术中存在的上述问题,本发明提供了一种二层转发的流水线实现方法及装置。本发明要解决的技术问题通过以下技术方案实现:
6.本发明提供了一种二层转发的流水线实现方法,包括:
7.根据接收的数据报文,获取所述数据报文中的源mac地址和目的mac地址,并生成目的mac地址标识和源mac地址标识;
8.将所述目的mac地址和所述目的mac地址标识进行哈希映射生成第一哈希地址和目的哈希地址标识,延迟一个时钟后将所述源mac地址和所述源mac地址标识进行哈希映射生成第二哈希地址和源哈希地址标识;
9.按照时钟顺序对所述第一哈希地址和所述第二哈希地址依次进行处理,其中,
10.响应于识别所述目的哈希地址标识,根据所述第一哈希地址对mac表项进行查表,根据查表结果进行报文转发;
11.响应于识别所述源哈希地址标识,根据所述第二哈希地址对所述mac表项进行查表,根据查表结果进行mac表项的学习。
12.在本发明的一个实施例中,根据所述第一哈希地址对mac表项进行查表,根据查表结果进行报文转发,包括:
13.拉高查找使能标识,并根据所述第一哈希地址对所述mac表项进行查表,得到查表结果;
14.若所述mac表项中存在与所述第一哈希地址匹配的mac表项数据,且所述mac表项数据的mac地址与所述第一哈希地址对应的目的mac地址匹配,则将所述报文从所述mac表项数据的mac地址对应的端口输出;否则,将所述报文进行广播。
15.在本发明的一个实施例中,根据所述第二哈希地址对所述mac表项进行查表,根据查表结果进行mac表项的学习,包括:
16.拉高学习使能标识,并根据所述第二哈希地址对所述mac表项进行查表,得到查表结果;
17.若所述mac表项中不存在与所述第二哈希地址匹配的mac表项数据,则对所述第二哈希地址对应的源mac地址进行学习,更新所述mac表项;
18.若所述mac表项中存在与所述第二哈希地址匹配的mac表项数据,则判断所述mac表项数据的mac地址的地址信息与所述第二哈希地址对应的源mac地址的地址信息是否一致,根据判断结果进行mac表项的学习。
19.在本发明的一个实施例中,判断所述mac表项数据的mac地址的地址信息与所述第二哈希地址对应的源mac地址的地址信息是否一致,根据判断结果进行mac表项的学习,包括:
20.步骤a:判断所述mac表项数据的mac地址与所述第二哈希地址对应的源mac地址是否一致,若一致则执行步骤b,否则,对所述第二哈希地址对应的源mac地址进行学习,更新所述mac表项;
21.步骤b:判断所述mac表项数据的mac地址的端口与所述第二哈希地址对应的源mac地址的端口是否一致,若一致则执行步骤c,否则,对所述第二哈希地址对应的源mac地址进行学习,更新所述mac表项;
22.步骤c:判断所述mac表项数据的mac地址的更新时间与所述第二哈希地址对应的源mac地址的时间是否一致,若一致则不进行mac表项的学习,否则,对所述第二哈希地址对应的源mac地址进行学习,更新所述mac表项。
23.在本发明的一个实施例中,二层转发的流水线实现方法还包括:在mac表项的学习完成后,对mac表项进行老化处理。
24.在本发明的一个实施例中,根据哈希地址对所述mac表项进行查表操作与所述mac表项的学习和老化采用不同的控制逻辑。
25.在本发明的一个实施例中,若根据哈希地址对mac表项进行查表的读操作与mac表项的学习和老化的写操作发生地址冲突时,优先执行读操作,并将写操作数据存储至缓存寄存器,暂停一个时钟的mac表项更新操作。
26.在本发明的一个实施例中,在mac表项的学习完成后,对mac表项进行老化处理,包括:
27.步骤

:判断缓存寄存器是否有效,若有效,则在下一时钟根据缓存寄存器中的写操作数据更新所述mac表项,否则执行步骤


28.步骤

:判断存储的mac表项的学习地址是否有效,若有效,则在下一时钟根据存储的学习地址更新所述mac表项,否则执行步骤


29.步骤

:判断存储的mac表项的老化数据是否有效,若有效,则在下一时钟根据存储的老化数据更新所述mac表项,否则对mac表项进行老化查表操作。
30.本发明提供了一种二层转发的流水线实现装置,包括:
31.转发控制模块,获取数据报文中的源mac地址和目的mac地址,并生成目的mac地址标识和源mac地址标识,将源mac地址进行缓存,在当前时钟将所述目的mac地址和所述目的mac地址标识发送至哈希映射模块,延迟一个时钟后将所述源mac地址和所述源mac地址标识发送至哈希映射模块;
32.哈希映射模块,对接收的目的mac地址和目的mac地址标识进行哈希映射生成第一哈希地址和目的哈希地址标识,对接收的源mac地址和源mac地址标识进行哈希映射生成第二哈希地址和源哈希地址标识;
33.目的mac查找模块,响应于识别所述目的哈希地址标识,将所述第一哈希地址作为查找操作的查表地址发送至表项控制模块,同时拉高查找使能标识,并根据查表结果进行报文转发;
34.源mac学习模块,响应于识别所述源哈希地址标识,将所述第二哈希地址作为学习操作的查表地址发送至表项控制模块,同时拉高学习使能标识,并根据查表结果进行mac表项的学习;
35.表项控制模块,根据接收的查表地址和查找使能标识对mac表项进行查表,并将查表结果发送至目的mac查找模块,根据接收的查表地址和学习使能标识对mac表项进行查表,并将查表结果发送至源mac学习模块,根据接收的老化模块的查表地址对mac表项进行查表,并将查表结果发送至老化模块;
36.mac表项模块,用于存储mac表项,采用双端口ram,其中,第一端口根据表项控制模块实现目的mac查找模块的查表和查表结果发送,以及源mac学习模块的查表和查表结果发送,第二端口根据表项控制模块实现mac表项的学习和老化;
37.老化模块,用于根据查表结果进行mac表项的老化处理。
38.在本发明的一个实施例中,二层转发的流水线实现装置还包括,学习fifo和删除fifo,其中,学习fifo用于存储mac表项的学习地址,删除fifo用于存储mac表项的老化数据。
39.与现有技术相比,本发明的有益效果在于:
40.1.本发明的二层转发的流水线实现方法,与现有利用状态机实现的二层转发相比,流水线式的实现方式降低了二层转发模块的绝对延时,从数据进入到得到查表结果绝对延时为4周期。最大工作速率下,两个时钟进行一次查找,可以满足数据总线为256b的最短帧64b的转发。以512mhz的时钟、转发模块为相对延时最大模块进行计算,最高吞吐量为130g,采用两条通道进行同步的方式,则在512mhz的时钟下可以得到260g的吞吐量。
41.2.本发明的二层转发的流水线实现装置,将学习表和查找表合并为一个mac表项,同步时也可以使用低容量fifo实现,节省了大量重复的存储资源;其次,使用一个mac表项在其它通道同步数据时,只需要进行学习结果的同步,老化可以由本装置自主完成,减少了同步时的控制逻辑。
42.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够
更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
43.图1是本发明实施例提供的一种二层转发的流水线实现方法示意图;
44.图2是本发明实施例提供的一种查找和学习的流水线示意图;
45.图3是本发明实施例提供的一种二层转发的流水线实现装置的结构框图;
46.图4是本发明实施例提供的一种学习表处理逻辑示意图;
47.图5是本发明实施例提供的一种老化状态机示意图;
48.图6是本发明实施例提供的一种mac表项的第二端口的控制逻辑示意图;
49.图7是本发明实施例提供的一种学习和查表仿真结果图;
50.图8是本发明实施例提供的一种mac表项的第二端口控制逻辑仿真结果图。
具体实施方式
51.为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种二层转发的流水线实现方法及装置进行详细说明。
52.有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
53.第一方面,本实施例提供了一种二层转发的流水线实现方法,请参见图1,图1是本发明实施例提供的一种二层转发的流水线实现方法示意图。如图所示,本实施例的二层转发的流水线实现方法,包括:
54.根据接收的数据报文,获取数据报文中的源mac地址和目的mac地址,并生成目的mac地址标识和源mac地址标识;
55.将目的mac地址和目的mac地址标识进行哈希映射生成第一哈希地址和目的哈希地址标识,延迟一个时钟后将源mac地址和源mac地址标识进行哈希映射生成第二哈希地址和源哈希地址标识;
56.按照时钟顺序对第一哈希地址和第二哈希地址依次进行处理,其中,
57.响应于识别目的哈希地址标识,根据第一哈希地址对mac表项进行查表,根据查表结果进行报文转发;
58.响应于识别源哈希地址标识,根据第二哈希地址对mac表项进行查表,根据查表结果进行mac表项的学习。
59.本实施例的二层转发的流水线实现方法,为了提高目的mac地址查找的绝对延时,将源mac地址学习和目的mac地址查找操作进行流水线处理。源mac地址学习和目的mac地址查找操作的关键功能可以抽象为以下步骤:哈希-》查表-》缓存-》处理-》输出。然后依照先查找后学习的思路,本实施例的二层转发的流水线实现方法的实现结果如图2所示。其中第一行代表查找操作,第二行代表学习操作。
60.进一步地,对目的mac地址查找和源mac地址学习操作进行具体说明。
61.可选地,根据第一哈希地址对mac表项进行查表,根据查表结果进行报文转发,包括:
62.拉高查找使能标识,并根据第一哈希地址对mac表项进行查表,得到查表结果;
63.若mac表项中存在与第一哈希地址匹配的mac表项数据,且mac表项数据的mac地址与第一哈希地址对应的目的mac地址匹配,则将报文从mac表项数据的mac地址对应的端口输出;否则,将报文进行广播。
64.可选地,根据第二哈希地址对mac表项进行查表,根据查表结果进行mac表项的学习,包括:
65.拉高学习使能标识,并根据第二哈希地址对mac表项进行查表,得到查表结果;
66.若mac表项中不存在与第二哈希地址匹配的mac表项数据,则对第二哈希地址对应的源mac地址进行学习,更新mac表项;
67.若mac表项中存在与第二哈希地址匹配的mac表项数据,则判断mac表项数据的mac地址的地址信息与第二哈希地址对应的源mac地址的地址信息是否一致,根据判断结果进行mac表项的学习。
68.如图4所示的学习表处理逻辑示意图,在本实施例中,判断mac表项数据的mac地址的地址信息与第二哈希地址对应的源mac地址的地址信息是否一致,根据判断结果进行mac表项的学习,包括:
69.步骤a:判断mac表项数据的mac地址与第二哈希地址对应的源mac地址是否一致,若一致则执行步骤b,否则,对第二哈希地址对应的源mac地址进行学习,更新mac表项;
70.步骤b:判断mac表项数据的mac地址的端口与第二哈希地址对应的源mac地址的端口是否一致,若一致则执行步骤c,否则,对第二哈希地址对应的源mac地址进行学习,更新mac表项;
71.步骤c:判断mac表项数据的mac地址的更新时间与第二哈希地址对应的源mac地址的时间是否一致,若一致则不进行mac表项的学习,否则,对第二哈希地址对应的源mac地址进行学习,更新mac表项。
72.需要说明的是,为了提升设计的频率,在本实施例中,查表读出的查表结果进行打拍后,再根据查表结果进行报文转发或mac表项的学习,且mac表项的学习会在报文转发的后一个时钟周期进行。
73.进一步地,本实施例的二层转发的流水线实现方法还包括:在mac表项的学习完成后,对mac表项进行老化处理。
74.在本实施例中,根据哈希地址对mac表项进行查表操作与mac表项的学习和老化采用不同的控制逻辑。可选地,通过设置两个端口对存储的mac表项进行不同的控制逻辑。
75.若根据哈希地址对mac表项进行查表的读操作与mac表项的学习和老化的写操作发生地址冲突时,优先执行读操作,并将写操作数据存储至缓存寄存器,暂停一个时钟的mac表项更新操作。
76.需要说明的是,在根据哈希地址对mac表项进行查表操作时,根据设置的查找使能标识和学习使能标,确保第一哈希地址和第二哈希地址的查找不会同时出现。
77.在本实施例中,mac表项的学习不仅包括本通道的学习地址更新还包括其它通道的学习地址更新,相应地,对于mac表项的学习和老化,包括本通道学习地址更新、其它通道
学习地址更新以及老化更新3种更新操作。
78.在本实施例中,对3种更新操作设置了优先级,即,先进行学习地址更新再进行老化更新,相应地,在mac表项的学习完成后,对mac表项进行老化处理,具体包括以下步骤:
79.步骤

:判断缓存寄存器是否有效,若有效,则在下一时钟根据缓存寄存器中的写操作数据更新mac表项,否则执行步骤


80.步骤

:判断存储的mac表项的学习地址是否有效,若有效,则在下一时钟根据存储的学习地址更新mac表项,否则执行步骤


81.在本实施例中,学习地址包括本通道的学习地址和其他通道的学习地址,首先判断当前通道的学习地址是否有效,若有效,则在下一时钟根据当前通道的学习地址更新所述mac表项,否则判断其他通道的学习地址是否有效,若有效,则在下一时钟根据其他通道的学习地址更新mac表项,直至所有学习地址更新完成后执行步骤

82.步骤

:判断存储的mac表项的老化数据是否有效,若有效,则在下一时钟根据存储的老化数据更新mac表项,否则对mac表项进行老化查表操作。
83.本发明实施例的二层转发的流水线实现方法,与现有利用状态机实现的二层转发相比,流水线式的实现方式降低了二层转发模块的绝对延时,从数据进入到得到查表结果绝对延时为4周期。最大工作速率下,两个时钟进行一次查找,可以满足数据总线为256b的最短帧64b的转发。以512mhz的时钟、转发模块为相对延时最大模块进行计算,最高吞吐量为130g,采用两条通道进行同步的方式,则在512mhz的时钟下可以得到260g的吞吐量。
84.第二方面,本发明实施例还提供了一种二层转发的流水线实现装置,为了解决占用资源较多的问题,本实施例通过将学习表和查找表合并的方案,减少了存储资源的大量消耗,简化了存储逻辑;同时为了适应学习、转发使用一块mac表项,将学习和转发合并入一条流水线,复用哈希模块。
85.请参见图3所示的本发明实施例提供的一种二层转发的流水线实现装置的结构框图,如图所示,本实施例的二层转发的流水线实现装置,包括:
86.转发控制模块,获取数据报文中的源mac地址和目的mac地址,并生成目的mac地址标识和源mac地址标识,将源mac地址进行缓存,在当前时钟将目的mac地址和目的mac地址标识发送至哈希映射模块,延迟一个时钟后将源mac地址和源mac地址标识发送至哈希映射模块;
87.在本实施例中,转发控制模块获取对数据报文进行解析得到的源mac地址和目的mac地址后,如果源mac地址和目的mac地址有效,则在当前时钟生成目的mac地址标识和源mac地址标识,并将目的mac地址和目的mac地址标识送到哈希模块进行哈希运算。将源mac地址进行缓存并拉高缓存有效标识,在下一时钟若缓存标识有效,则将源mac地址和源mac地址标识送到哈希模块进行哈希运算。
88.哈希映射模块,对接收的目的mac地址和目的mac地址标识进行哈希映射生成第一哈希地址和目的哈希地址标识,对接收的源mac地址和源mac地址标识进行哈希映射生成第二哈希地址和源哈希地址标识;
89.在本实施例中,由于是同时处理学习和查找的流水线,由于复用mac表项的设计限制,学习和查找不能同时进行表项查找,因此也进行哈希模块的复用。可选地,哈希模块采用crc算法实现。
90.目的mac查找模块,响应于识别目的哈希地址标识,将第一哈希地址作为查找操作的查表地址发送至表项控制模块,同时拉高查找使能标识,并根据查表结果进行报文转发;
91.源mac学习模块,响应于识别源哈希地址标识,将第二哈希地址作为学习操作的查表地址发送至表项控制模块,同时拉高学习使能标识,并根据查表结果进行mac表项的学习;
92.表项控制模块,根据接收的查表地址和查找使能标识对mac表项进行查表,并将查表结果发送至目的mac查找模块,根据接收的查表地址和学习使能标识对mac表项进行查表,并将查表结果发送至源mac学习模块,根据接收的老化模块的查表地址对mac表项进行查表,并将查表结果发送至老化模块;
93.mac表项模块,用于存储mac表项,采用双端口ram,其中,第一端口根据表项控制模块实现目的mac查找模块的查表和查表结果发送,以及源mac学习模块的查表和查表结果发送,第二端口根据表项控制模块实现mac表项的学习和老化。
94.在本实施例中,目的mac地址的查找通过目的mac查找模块、表项控制模块和mac表项模块共同实现。
95.在查找操作时,目的mac查找模块采集到哈希模块的输出,在识别目的哈希地址标识后,将采集的哈希地址(即,第一哈希地址)作为查找操作的查表地址发送至表项控制模块,同时拉高查找使能标识。表项控制模块接收到查找使能会进行查表,同时将查找使能打两拍后用作查表结果分发的标志,若查找标志有效,则将查表结果送到目的mac查找模块。目的mac查找模块再根据查表结果进行报文转发,具体报文转发过程如上述二层转发的流水线实现方法所述,在此不做赘述。
96.在本实施例中,源mac地址的学习通过源mac学习模块、表项控制模块和mac表项模块共同实现。
97.在学习操作时,源mac学习模块采集到哈希模块的输出,在识别源哈希地址标识后,将采集的哈希地址(即,第二哈希地址)作为学习操作的查表地址发送至表项控制模块,同时拉高学习使能标识。表项控制接收到学习使能会进行查表,同时将学习使能打两拍后用作查表结果分发的标志,若学习标志有效,则将查表结果送到源mac学习模块。源mac学习模块再根据查表结果进行mac表项的学习,具体mac表项的学习过程如上述二层转发的流水线实现方法所述,在此不做赘述。
98.需要说明的是,mac表项模块采用双端口ram,相应地,表项控制包括ram的第一端口控制逻辑和第二端口控制逻辑。其中,第一端口控制逻辑实现目的mac查找模块的查表和查表结果发送,以及源mac学习模块的查表和查表结果发送;第二端口控制逻辑参见图6所示的一种mac表项的第二端口的控制逻辑示意图,实现了包含本通道学习地址更新、其它通道学习地址更新、老化更新和老化查表操作。具体设置了优先极,即,首先判断是否需要进行缓存内容的更新(缓存内容是为了解决双端口读写冲突);无缓存地址时,进行本通道学习结果的更新;本通道也无需更新时,进行其它通道学习结果的更新;最后判断老化是否需要更新,当无更新内容时,进行老化查表操作。
99.老化模块,用于根据查表结果进行mac表项的老化处理。
100.在本实施例中,老化模块包括秒计数器和老化状态机。其中,秒计数器用于老化功能和学习功能,学习时将当前时间存入mac表项中,老化时也是根据此表项字段判断:若表
项的存活时间达到了预设值,则进行删除操作(例如,在该地址中写入全0);否则不进行操作。状态机完成对mac表项的地址的轮询,对所有地址进行遍历,根据表项有效标志及学习时间进行处理。同时,状态机也可以被阻塞。
101.可选地,可以通过控制外部可配的寄存器来使秒计数器保持为常数,就可以实现不进行老化删除。
102.请参见图5所示的老化状态机示意图,状态机结构简单,仅包含空闲、查表、处理三个状态。idle(空闲)状态完成对地址计数器(ram地址空间连续加1进行遍历)的上升沿采集并送到表项控制模块,同时地址计数器也进行加1;data(查表)状态在老化模块无操作,但是表项控制模块捕获老化通道读信号;delete(处理)状态时得到查表结果进行处理:当查表结果有效且查表结果中时间与当前系统时间一致,则代表已经到老化时间,进行删除(将此地址全写0)。
103.本实施例的二层转发的流水线实现装置还包括,学习fifo和删除fifo,其中,学习fifo用于存储mac表项的学习地址,删除fifo用于存储mac表项的老化数据。
104.本发明实施例的二层转发的流水线实现装置,将学习表和查找表合并为一个mac表项,同步时也可以使用低容量fifo实现,节省了大量重复的存储资源;其次,使用一个mac表项在其它通道同步数据时,只需要进行学习结果的同步,老化可以由本装置自主完成,减少了同步时的控制逻辑。
105.进一步地,通过电路仿真实验对本实施例的二层转发的流水线实现方法和装置进行了实验验证。
106.电路实现后使用systemverilog搭建验证环境,使用vivado联合modelsim进行仿真。验证电路是否出错。同时为了确认电路是可以实现的,通过design complier进行简单综合。
107.a)仿真内容
108.以最快处理速率(2时钟周期处理一个数据)给出输入激励。同时进行学习和查表操作,仿真结果如图7和图8所示。
109.从图7中可以看到,按照最快输入速度输入时,前几次为广播,这是因为目的mac地址为上次学习的源mac地址,学习表的同步在给出学习结果后4个周期完成。第二次查询相同地址时即完成更新。验证结果符合设计预期。
110.从图8可以看到,本发明实施例设置的第二端口控制的优先级,同时可以看到对于老化模块的设计,老化是工作在表项更新的间隙。
111.b)综合结果
112.使用design complier、28nm的工艺库进行综合工作。因为缺少对应ram和fifo的ip,因此仅对于模块进行综合。由综合结果可知,电路中瓶颈在于老化模块中的模512m计数器,最高频率可达到1ghz。
113.应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,
并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
114.以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

技术特征:
1.一种二层转发的流水线实现方法,其特征在于,包括:根据接收的数据报文,获取所述数据报文中的源mac地址和目的mac地址,并生成目的mac地址标识和源mac地址标识;将所述目的mac地址和所述目的mac地址标识进行哈希映射生成第一哈希地址和目的哈希地址标识,延迟一个时钟后将所述源mac地址和所述源mac地址标识进行哈希映射生成第二哈希地址和源哈希地址标识;按照时钟顺序对所述第一哈希地址和所述第二哈希地址依次进行处理,其中,响应于识别所述目的哈希地址标识,根据所述第一哈希地址对mac表项进行查表,根据查表结果进行报文转发;响应于识别所述源哈希地址标识,根据所述第二哈希地址对所述mac表项进行查表,根据查表结果进行mac表项的学习。2.根据权利要求1所述的二层转发的流水线实现方法,其特征在于,根据所述第一哈希地址对mac表项进行查表,根据查表结果进行报文转发,包括:拉高查找使能标识,并根据所述第一哈希地址对所述mac表项进行查表,得到查表结果;若所述mac表项中存在与所述第一哈希地址匹配的mac表项数据,且所述mac表项数据的mac地址与所述第一哈希地址对应的目的mac地址匹配,则将所述报文从所述mac表项数据的mac地址对应的端口输出;否则,将所述报文进行广播。3.根据权利要求1所述的二层转发的流水线实现方法,其特征在于,根据所述第二哈希地址对所述mac表项进行查表,根据查表结果进行mac表项的学习,包括:拉高学习使能标识,并根据所述第二哈希地址对所述mac表项进行查表,得到查表结果;若所述mac表项中不存在与所述第二哈希地址匹配的mac表项数据,则对所述第二哈希地址对应的源mac地址进行学习,更新所述mac表项;若所述mac表项中存在与所述第二哈希地址匹配的mac表项数据,则判断所述mac表项数据的mac地址的地址信息与所述第二哈希地址对应的源mac地址的地址信息是否一致,根据判断结果进行mac表项的学习。4.根据权利要求3所述的二层转发的流水线实现方法,其特征在于,判断所述mac表项数据的mac地址的地址信息与所述第二哈希地址对应的源mac地址的地址信息是否一致,根据判断结果进行mac表项的学习,包括:步骤a:判断所述mac表项数据的mac地址与所述第二哈希地址对应的源mac地址是否一致,若一致则执行步骤b,否则,对所述第二哈希地址对应的源mac地址进行学习,更新所述mac表项;步骤b:判断所述mac表项数据的mac地址的端口与所述第二哈希地址对应的源mac地址的端口是否一致,若一致则执行步骤c,否则,对所述第二哈希地址对应的源mac地址进行学习,更新所述mac表项;步骤c:判断所述mac表项数据的mac地址的更新时间与所述第二哈希地址对应的源mac地址的时间是否一致,若一致则不进行mac表项的学习,否则,对所述第二哈希地址对应的源mac地址进行学习,更新所述mac表项。
5.根据权利要求1所述的二层转发的流水线实现方法,其特征在于,还包括:在mac表项的学习完成后,对mac表项进行老化处理。6.根据权利要求5所述的二层转发的流水线实现方法,其特征在于,根据哈希地址对所述mac表项进行查表操作与所述mac表项的学习和老化采用不同的控制逻辑。7.根据权利要求6所述的二层转发的流水线实现方法,其特征在于,若根据哈希地址对mac表项进行查表的读操作与mac表项的学习和老化的写操作发生地址冲突时,优先执行读操作,并将写操作数据存储至缓存寄存器,暂停一个时钟的mac表项更新操作。8.根据权利要求7所述的二层转发的流水线实现方法,其特征在于,在mac表项的学习完成后,对mac表项进行老化处理,包括:步骤

:判断缓存寄存器是否有效,若有效,则在下一时钟根据缓存寄存器中的写操作数据更新所述mac表项,否则执行步骤

;步骤

:判断存储的mac表项的学习地址是否有效,若有效,则在下一时钟根据存储的学习地址更新所述mac表项,否则执行步骤

;步骤

:判断存储的mac表项的老化数据是否有效,若有效,则在下一时钟根据存储的老化数据更新所述mac表项,否则对mac表项进行老化查表操作。9.一种二层转发的流水线实现装置,其特征在于,包括:转发控制模块,获取数据报文中的源mac地址和目的mac地址,并生成目的mac地址标识和源mac地址标识,将源mac地址进行缓存,在当前时钟将所述目的mac地址和所述目的mac地址标识发送至哈希映射模块,延迟一个时钟后将所述源mac地址和所述源mac地址标识发送至哈希映射模块;哈希映射模块,对接收的目的mac地址和目的mac地址标识进行哈希映射生成第一哈希地址和目的哈希地址标识,对接收的源mac地址和源mac地址标识进行哈希映射生成第二哈希地址和源哈希地址标识;目的mac查找模块,响应于识别所述目的哈希地址标识,将所述第一哈希地址作为查找操作的查表地址发送至表项控制模块,同时拉高查找使能标识,并根据查表结果进行报文转发;源mac学习模块,响应于识别所述源哈希地址标识,将所述第二哈希地址作为学习操作的查表地址发送至表项控制模块,同时拉高学习使能标识,并根据查表结果进行mac表项的学习;表项控制模块,根据接收的查表地址和查找使能标识对mac表项进行查表,并将查表结果发送至目的mac查找模块,根据接收的查表地址和学习使能标识对mac表项进行查表,并将查表结果发送至源mac学习模块,根据接收的老化模块的查表地址对mac表项进行查表,并将查表结果发送至老化模块;mac表项模块,用于存储mac表项,采用双端口ram,其中,第一端口根据表项控制模块实现目的mac查找模块的查表和查表结果发送,以及源mac学习模块的查表和查表结果发送,第二端口根据表项控制模块实现mac表项的学习和老化;老化模块,用于根据查表结果进行mac表项的老化处理。10.根据权利要求9所述的二层转发的流水线实现装置,其特征在于,还包括,学习fifo和删除fifo,其中,学习fifo用于存储mac表项的学习地址,删除fifo用于存储mac表项的老
化数据。

技术总结
本发明涉及一种二层转发的流水线实现方法及装置,包括:根据接收的数据报文,获取数据报文中的源MAC地址和目的MAC地址,并生成目的MAC地址标识和源MAC地址标识;将目的MAC地址和目的MAC地址标识进行哈希映射生成第一哈希地址和目的哈希地址标识,延迟一个时钟后将源MAC地址和源MAC地址标识进行哈希映射生成第二哈希地址和源哈希地址标识;按照时钟顺序对第一哈希地址和第二哈希地址依次进行处理,其中,响应于识别目的哈希地址标识,根据第一哈希地址对MAC表项进行查表,根据查表结果进行报文转发;响应于识别源哈希地址标识,根据第二哈希地址对MAC表项进行查表,根据查表结果进行MAC表项的学习。本发明的方法降低了二层转发模块的绝对延时,节省了存储资源。节省了存储资源。节省了存储资源。


技术研发人员:马佩军 许洋 余钺 潘伟涛 史江义 李康 郝跃
受保护的技术使用者:西安电子科技大学
技术研发日:2023.06.16
技术公布日:2023/9/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐