CN112153169B - 一种vmac高速地址学习方法和电子设备 - Google Patents
一种vmac高速地址学习方法和电子设备 Download PDFInfo
- Publication number
- CN112153169B CN112153169B CN202010854590.XA CN202010854590A CN112153169B CN 112153169 B CN112153169 B CN 112153169B CN 202010854590 A CN202010854590 A CN 202010854590A CN 112153169 B CN112153169 B CN 112153169B
- Authority
- CN
- China
- Prior art keywords
- vmac
- address
- state
- umac
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 101000641224 Homo sapiens Vimentin-type intermediate filament-associated coiled-coil protein Proteins 0.000 title claims abstract 37
- 102100034331 Vimentin-type intermediate filament-associated coiled-coil protein Human genes 0.000 title claims abstract 37
- 238000012545 processing Methods 0.000 claims abstract description 27
- 101150103933 VMAC gene Proteins 0.000 claims description 71
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 6
- 230000009191 jumping Effects 0.000 claims description 5
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种VMAC高速地址学习方法,为提高VMAC地址学习速度,实现VMAC地址学习高速流水线处理,本发明提出一种“控制Cache”、“数据Cache”和Main memory的结构,并提出了“控制Cache”刷新机制,以降低高速处理造成的数据错误处理率。实现VMAC地址学习的高速流水线处理和冗余操作合并,提高访问有效性,保证数据一致性,提高VMAC地址学习的速度。本发明可降低Main memory读写延时对系统设计的影响,“数据Cache”可减小获取最新数据的延时;可降低工作频率对系统设计的影响,工作频率提高,为满足时序要求,存储数据由读到写流水级数变长,“数据Cache”可对写操作的临时状态进行合并。本发明还提供了相应的电子设备。
Description
技术领域
本发明属于IP(Internal Protocol,网络协议)通信技术领域,更具体地,涉及一种VMAC高速地址学习方法和电子设备。
背景技术
VMAC功能属于MAC(Media Access Control,介质访问控制)地址安全功能。在目前基于二层以太网转发为核心的IP接入网络中,终端用户MAC地址不可信导致可能存在MAC地址欺骗。上行方向,接入设备接收到用户侧发送的报文,会将其中“不被信任”的终端用户源MAC转换成“可被信任”的VMAC(Virtual Media Access Control,虚拟介质访问控制)地址,并进行VMAC地址学习,然后转发给上层网络。下行方向,从网络侧接收到的报文发往用户端口时,查询地址学习表,会将报文中的VMAC地址还原为用户实际的MAC地址后再发送。
VMAC有两种模式。接入设备将每个用户的MAC地址转换为唯一的VMAC地址的模式,称为1:1模式;接入设备将一组用户MAC地址转换为一个唯一VMAC的模式,称为N:1模式。对于1:1模式,为限制终端用户数,可基于逻辑端口PortIdx设置VMAC申请阈值。如果上线用户达到VMAC最大申请数量,新用户的报文就会被丢弃。
随着超大规模集成电路的发展,处理速度需求越来越快。共享存储(sharememory)的应用等,导致存储数据由读到处理再到重新写入存储器的流水级数变长。对于VMAC地址学习,需要查询并学习两个地址学习表,一个是基于用户MAC的UMAC(User MAC,用户MAC)地址表,一个是表示转换后的VMAC与用户MAC关系的V-UMAC(Virtual-User MAC,虚拟-用户MAC)地址表。同时,为实现终端用户限制,需同步查询并更新V-State(Virtual-State,虚拟状态)状态表。由于V-State状态表的更新逻辑是串行的,即上一个数据报文的申请处理完毕后,才能知道下一个数据报文的申请是否达到VMAC申请阈值,这导致VMAC地址学习速度受限于V-State状态表的更新。为实现VMAC地址学习高速流水线处理,需要对V-State状态表的更新处理流程进行改进。
发明内容
针对现有技术的以上缺陷或改进需求,为提高VMAC地址学习速度,实现VMAC地址学习高速流水线处理,本发明提出一种“控制Cache”、“数据Cache”和Main memory的结构,并提出了“控制Cache”刷新机制,以降低高速处理造成的数据错误处理率。实现VMAC地址学习的高速流水线处理和冗余操作合并,提高访问有效性,保证数据一致性,提高VMAC地址学习的速度。
为实现上述目的,按照本发明的一个方面,提供了一种VMAC高速地址学习方法,包括:
S1、使用源UMAC为UmacKey,查找UMAC地址表,UMAC数据Cache命中,输出数据Cache命中的VMAC地址;否则输出Main memory命中的VMAC地址,有命中条目的,表示条目已学习,输出VMAC地址,UmacKeyHit置1,更新V-State控制Cache0,V-State控制Cache1填入空操作,跳转到步骤S4;没有匹配条目表示没有命中,执行步骤S2;
S2、使用UmacKey和逻辑端口PortIdx,查询V-State状态表,V-State控制Cache0命中的,输出PortIdx和SubIdx,直接映射VMAC地址,更新V-State控制Cache0,V-State控制Cache1填入空操作,跳转到步骤S4;否则查询V-State控制Cache1、数据Cache和Mainmemory,输出命中VmacState,执行步骤S3;
S3、根据VmacState申请SubIdx,申请成功的,将VmacState对应SubIdx位置置1,输出SubIdxVld为1,并使用PortIdx和SubIdx映射VMAC地址,获取VMAC地址成功的,更新V-State控制Cache,执行步骤S4;否则对控制Cache填入空操作,结束本次流程;
S4、使用VMAC作为V-UmacKey,查找V-UMAC地址表,数据Cache或Main memory有匹配条目的,如果S1中UmacKeyHit为0,表示异常学习,结束本次流程,否则执行步骤S5;没有匹配条目的表示没有命中,执行步骤S5;
S5、更新UMAC地址表,写入UmacKey以及获取的VMAC地址;更新V-UMAC地址表,写入V-UmacKey以及源UMAC地址和源端口信息InPort;对S3中SubIdxVld为1的,查询V-State数据Cache和Main memory,获取最新VmacState,在对应SubIdx位置置1,更新V-State状态表,写入更新后的VmacState,结束学习流程。
本发明的一个实施例中,所述V-State状态表用于存储VMAC申请状态,采用“控制Cache”、“数据Cache”和Main memory的三级结构;UMAC地址表用于VMAC地址转换,V-UMAC地址表用于存储转发信息,均采用“数据Cache”和Main memory的二级结构。
本发明的一个实施例中,所述Cache的条目内容包括Valid、Tag和Data,Cache的查找流程为,查找Cache内的所有条目,比较Valid和Tag,若Valid有效且Tag匹配的,表示Cache命中;若多个Cache条目同时命中时,优先输出靠近底部条目的Data数据。
本发明的一个实施例中,所述Cache的结构为先进先出队列,从底部压入,从顶部弹出,压入和弹出操作同时进行,底部为最近最多使用条目,顶部为最近最少使用条目,底部优先级最高,顶部优先级最低,Cache的深度为VMAC地址学习一次完整操作的流水级数,从读UMAC地址表、V-State状态表、V-UMAC地址表到更新对应表表项的最大流水级数。
本发明的一个实施例中,所述V-State状态表的“控制Cache”用于流水线处理操作的申请,任何操作时都进行压入操作同时弹出操作,“控制Cache”的操作包括写操作和空操作,“控制Cache”的空操作条目的Valid为0,Valid为0的条目不参与仲裁比较,当“控制Cache”的写操作失败时,就变成空操作压入,即该Tag条目,会自动由MRU变成LRU,直到被完全弹出,最终实现与“数据Cache”和Main memory同步;所述UMAC地址表、V-State状态表、V-UMAC地址表的“数据Cache”应用于Main memory在存在读写延时的情况下保持数据一致性,只有写操作时进行压入操作同时弹出操作,写操作的同时,更新到Main memory。
本发明的一个实施例中,所述UMAC地址表、V-State状态表、V-UMAC地址表的“数据Cache”始终保存对应Main memory最近的N次更新操作,N小于等于Cache深度。
本发明的一个实施例中,
在上行方向:以逻辑端口PortIdx为索引查询V-State状态表,申请VMAC地址;以源UMAC地址作为UmacKey,将VMAC地址存入到UMAC地址表;并基于VMAC地址作为V-UmacKey查询V-UMAC地址表,将源UMAC地址和源端口信息InPort学习到V-UMAC地址表,将报文源UMAC地址转换成VMAC地址转发到上层网络;
在下行方向:以用户目的VMAC地址作为V-UmacKey查询V-UMAC地址表,获得目的UMAC地址和转发端口InPort,使用目的UMAC地址作为UmacKey,查询UMAC地址表,且命中,表示为已知报文,将已知报文目的VMAC转换成UMAC地址,并转发到InPort端口。
本发明的一个实施例中,在所述步骤S2中的V-State状态表查询,包括:
使用UmacKey和逻辑端口PortIdx,申请VMAC转换,首先查询控制Cache0;若没有命中条目,继续查询控制Cache1;若没有命中条目,继续查询数据Cache;若没有命中,输出V-State Main memory中PortIdx索引所在条目VmacState。
本发明的一个实施例中,在所述步骤S3中的根据VmacState申请SubIdx成功的,包括:
将VmacState对应SubIdx位置置1,更新控制Cache0和控制Cache1;若失败,控制Cache0和控制Cache1填入空操作。
本发明的一个实施例中,在所述步骤S5中实现新条目的学习结果更新,包括:
更新UMAC地址表和V-UMAC地址表的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入数据Cache和Main memory。
按照本发明的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述VMAC高速地址学习方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
(1)可降低Main memory读写延时对系统设计的影响,“数据Cache”可减小获取最新数据的延时;
(2)可降低工作频率对系统设计的影响,工作频率提高,为满足时序要求,存储数据由读到写流水级数变长,“数据Cache”可对写操作的临时状态进行合并;
(3)可实现VMAC地址学习高速流水线处理,提高VMAC地址学习速度。“控制Cache”用于流水线处理操作,可提高数据处理速率;
(4)简单快捷的“控制Cache”刷新机制,可降低流水线处理引入的数据错误处理,空闲时“控制Cache”自动同步,填入空操作;非空闲时,不断降低“控制Cache”中脏数据的优先级,以降低数据错误处理率。
附图说明
图1为本发明实施例中一种Cache的结构示意图;
图2为本发明实施例中一种表项查找流程示意图;
图3为本发明实施例中VMAC地址学习流程示意图;
图4为本发明实施例中一种SubIdx申请流程示意图;
图5为本发明实施例中一种VMAC地址学习Cache和Main memory条目结构示意图;
图6为本发明实施例中一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图;
图7为本发明实施例中另一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图;
图8为本发明实施例中另一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图;
图9为本发明实施例中另一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图;
图10为本发明实施例中另一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图;
图11为本发明实施例中另一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图;
图12为本发明实施例中另一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图;
图13为本发明实施例中另一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图;
图14为本发明实施例中另一种控制Cache0和Cache1、数据Cache和Main memory的条目内容示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明为提高VMAC地址学习速度,实现VMAC地址学习高速流水线处理,提出一种“控制Cache”、“数据Cache”和Main memory的结构,并提出了“控制Cache”刷新机制,以降低高速处理造成的数据错误处理率。
Cache的结构为先进先出队列,从底部压入(push),从顶部弹出(pop),push和pop操作同时进行。底部为最近最多使用条目(MRU,Most Recently Used),顶部为最近最少使用条目(LRU,Least Recently Used)。底部优先级最高,顶部优先级最低。Cache的深度,为VMAC地址学习一次完整操作的流水级数,从读UMAC地址表、V-State状态表、V-UMAC地址表到更新对应表表项的最大流水级数。
Cache的结构见图1。其条目内容包括Valid、Tag和Data。Cache的查找流程为,查找Cache内的所有条目,比较Valid和Tag。Valid有效,且Tag匹配的,表示Cache命中;若多个Cache条目同时命中时,优先输出靠近底部命中条目的Data数据。
“控制Cache”主要用于流水线处理操作的申请,“数据Cache”和Main memory主要用于存储VMAC学习写操作更新的数据。“控制Cache”与“数据Cache”相同Tag且Valid为1的MRU不一致的数据,称为脏数据。带有“控制Cache”、“数据Cache”的表项查找流程,见图2。
所述V-State状态表的“控制Cache”主要用于流水线处理操作的申请,以提高处理速度,任何操作时都进行push操作(同时pop操作)。“控制Cache”的操作包括:写操作和空操作。“控制Cache”的空操作条目的Valid为0,Valid为0的条目不参与仲裁比较。当“控制Cache”的写操作失败时,就变成空操作压入,即该Tag条目,会自动由MRU变成LRU,直到被完全pop弹出,最终实现与“数据Cache”和Main memory同步。
所述UMAC地址表、V-State状态表、V-UMAC地址表的“数据Cache”应用于Mainmemory在存在读写延时的情况下保持数据一致性,只有写操作时进行push操作(同时pop操作),写操作的同时,更新到Main memory。所述UMAC地址表、V-State状态表、V-UMAC地址表的“数据Cache”始终保存Main memory最近的N次更新操作,N小于等于Cache深度。
VMAC地址学习中,V-State状态表用于存储VMAC申请状态,采用“控制Cache”、“数据Cache”和Main memory的三级结构;UMAC地址表用于VMAC地址转换,V-UMAC地址表用于存储转发信息,采用“数据Cache”和Main memory的二级结构。
上行方向:以逻辑端口PortIdx为索引查询V-State状态表,申请VMAC地址;以源UMAC地址作为UmacKey,将VMAC地址存入到UMAC地址表;并基于VMAC地址作为V-UmacKey查询V-UMAC地址表,将源UMAC地址和源端口信息InPort学习到V-UMAC地址表。将报文源UMAC地址转换成VMAC地址转发到上层网络。
下行方向:以用户目的VMAC地址作为V-UmacKey查询V-UMAC地址表,获得目的UMAC地址和转发端口InPort。使用目的UMAC地址作为UmacKey,查询UMAC地址表,且命中,表示为已知报文。将已知报文目的VMAC转换成UMAC地址,并转发到InPort端口。
VMAC地址学习流程包括UMAC地址表查找、VMAC地址申请、V-UMAC地址表查找、学习结果更新。具体流程见图3。Cache和Main memory条目结构见图5。UMAC地址表和V-UMAC地址表采用哈希表管理,其“数据Cache”和Main memory的结构相同,其中用户源地址UMAC用作UmacKey,转换后的VMAC地址用作V-UmacKey。当VMAC申请操作成功,但学习失败时,V-State控制Cache就存在脏数据,V-State被误占用。加快V-State控制Cache的刷新,可降低数据错误处理率,实现数据一致性。
具体地,如图3所示,本发明提供的VMAC高速地址学习方法包括:
S1、使用源UMAC为UmacKey,查找UMAC地址表,UMAC数据Cache命中,输出数据Cache命中的VMAC地址;否则输出Main memory命中的VMAC地址;有命中条目的,表示条目已学习,输出VMAC地址,UmacKeyHit置1,更新V-State控制Cache0,V-State控制Cache1填入空操作,跳转到步骤S4;没有匹配条目表示没有命中,执行步骤S2;
S2、使用UmacKey和逻辑端口PortIdx,查询V-State状态表,V-State控制Cache0命中的,输出PortIdx和SubIdx,直接映射VMAC地址,更新V-State控制Cache0,V-State控制Cache1填入空操作,跳转到步骤S4;否则查询V-State控制Cache1、数据Cache和Mainmemory,输出命中VmacState,执行步骤S3;
S3、根据VmacState申请SubIdx,申请成功的,将VmacState对应SubIdx位置置1,输出SubIdxVld为1,并使用PortIdx和SubIdx映射VMAC地址。获取VMAC地址成功的,更新V-State控制Cache,执行步骤S4;否则对控制Cache填入空操作,结束本次流程;
S4、使用VMAC作为V-UmacKey,查找V-UMAC地址表,数据Cache或Main memory有匹配条目的,如果S1中UmacKeyHit为0,表示异常学习,结束本次流程,否则执行步骤S5;没有匹配条目的表示没有命中,执行步骤S5;
S5、更新UMAC地址表,写入UmacKey以及获取的VMAC地址;更新V-UMAC地址表,写入V-UmacKey以及源UMAC地址和源端口信息InPort;对S3中SubIdxVld为1的,查询V-State数据Cache和Main memory,获取最新VmacState,在对应SubIdx位置置1,更新V-State状态表,写入更新后的VmacState。结束学习流程。
以V-State状态表的控制Cache、数据Cache和Main memory为例。假设一个逻辑端口PortIdx最多支持8个用户MAC申请转换VMAC,那么表示申请状态的VmacState就为8bit,可表示为8bit的二进制数,例如8’b0000_0000,对应8个用户在线状态;其中申请状态索引的SubIdx为3bit,可表示为3bit的十进制数,例如3’d0,根据VmacState申请SubIdx的流程如图4。从0开始扫描VmacState,当VmacState对应的bit位为0,输出对应的扫描索引值给SubIdx,将SubIdxVld置1并中断扫描。SubIdxVld为1表示VMAC申请成功。申请VMAC地址操作,基于UmacKey和PortIdx两种Tag进行Cache存储。后续数据报文首先查看控制Cache的VmacState状态。UmacKey Tag保证相同数据包连续申请时,保证申请的是同一个;PortIdxTag保证VmacState在流水线申请时实时更新。
Cache的条目结构为{Valid,Tag,Act}。V-State控制Cache的条目设置为两种,一种是控制Cache0{Valid,UmacKey,{PortIdx,SubIdx}},防止相同UmacKey重复申请;一种是控制Cache1{Valid,PortIdx,VmacState}。V-State数据Cache的结构与控制Cache1的结构一致。V-State Main memory的条目存储VmacState,其地址索引为PortIdx。设置Cache深度为8,V-State Cache条目结构见图5。
当连续发送UMAC不同,PortIdx相同的数据报文时,其流水处理步骤如下:
步骤1,数据报文Umac0,Port0,申请VMAC转换。首先查询控制Cache0,Umac0没有命中条目;然后查询控制Cache1和数据Cache,Port0没有命中条目;输出V-State Mainmemory Port0索引所在条目VmacState,为8’b0000_0000。上述操作过程对应图3中的S21-S22-S24-S26-S28的流程。
步骤2,(1)数据报文Umac0,Port0申请成功,SubIdx为3’d0,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(2)数据报文Umac1,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0000_0001。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤3,(1)数据报文Umac0,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac1,Port0申请成功,SubIdx为3’d1,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac2,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0000_0011。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤4,(1)数据报文Umac1,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac2,Port0申请成功,SubIdx为3’d2,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac3,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0000_0111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤5,(1)数据报文Umac2,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac3,Port0申请成功,SubIdx为3’d3,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac4,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0000_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤6,(1)数据报文Umac3,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac4,Port0申请成功,SubIdx为3’d4,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac5,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0001_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤7,(1)数据报文Umac4,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac5,Port0申请成功,SubIdx为3’d5,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac6,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0011_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤8,(1)数据报文Umac5,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac6,Port0申请成功,SubIdx为3’d6,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac7,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0111_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤9,(1)数据报文Umac6,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac7,Port0申请成功,SubIdx为3’d7,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac8,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b1111_1111。此时Port0的VMAC申请达到最大申请数量。上述操作过程对应图3中的S21-S22-S24-S25的流程。
经过步骤9,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图6。
步骤10,(1)数据报文Umac7,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac8,Port0申请失败,更新控制Cache0和Cache1,填入空操作。上述操作过程对应图3中的S31-S32的流程。(3)数据报文Umac6,Port0,申请VMAC转换。查询V-State状态,控制Cache0命中,输出SubIdx为3’d6。上述操作过程对应图3中的S21-S22的流程。此时Port0的VMAC申请达到最大申请数量。
经过步骤10,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图7.
步骤11,(1)数据报文Umac8,Port0学习失败,无更新数据Cache和Main memory操作。(2)数据报文Umac6,更新控制Cache0,控制Cache1填入空操作。上述操作过程对应图3中的S23的流程。
步骤12,(1)数据报文Umac6,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;没有进行SubIdx申请,放弃V-State数据Cache和Main memory的更新。上述操作过程对应图3中的S51-S52-S53的流程。
经过步骤12,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图8.
当连续发送UMAC不同,PortIdx相同的数据报文,但存在申请VMAC成功学习失败时,其流水处理步骤如下:
步骤1,数据报文Umac0,Port0,申请VMAC转换。首先查询控制Cache0,Umac0没有命中条目;然后查询控制Cache1和数据Cache,Port0没有命中条目;输出V-State Mainmemory Port0索引所在条目VmacState,为8’b0000_0000。上述操作过程对应图3中的S21-S22-S24-S26-S28的流程。
步骤2,(1)数据报文Umac0,Port0申请成功,SubIdx为3’d0,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(2)数据报文Umac1,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0000_0001。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤3,(1)数据报文Umac0,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac1,Port0申请成功,SubIdx为3’d1,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac2,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0000_0011。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤4,(1)数据报文Umac1,Port0学习失败,放弃更新数据Cache和Main memory。(2)数据报文Umac2,Port0申请成功,SubIdx为3’d2,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac3,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0000_0111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤5,(1)数据报文Umac2,Port0学习失败,放弃更新数据Cache和Main memory。(2)数据报文Umac3,Port0申请成功,SubIdx为3’d3,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac4,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0000_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤6,(1)数据报文Umac3,Port0学习失败,放弃更新数据Cache和Main memory。(2)数据报文Umac4,Port0申请成功,SubIdx为3’d4,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac5,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0001_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤7,(1)数据报文Umac4,Port0学习失败,放弃更新数据Cache和Main memory。(2)数据报文Umac5,Port0申请成功,SubIdx为3’d5,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac6,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0011_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤8,(1)数据报文Umac5,Port0学习失败,放弃更新数据Cache和Main memory。(2)数据报文Umac6,Port0申请成功,SubIdx为3’d6,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac7,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b0111_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。
步骤9,(1)数据报文Umac6,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac7,Port0申请成功,SubIdx为3’d7,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)数据报文Umac8,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b1111_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。此时Port0的VMAC申请达到最大申请数量,但控制Cache1中Port0的MRU VmacState与数据Cache中Port0的对应数据不一致,控制Cache1中的为脏数据,数据Cache中的VmacState并未达到申请阈值。
经过步骤9,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图9。
步骤10,(1)数据报文Umac7,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)数据报文Umac8,Port0申请失败,更新控制Cache0和Cache1,填入空操作。上述操作过程对应图3中的S31-S32的流程。(3)数据报文Umac9,Port0,申请VMAC转换。查询V-State状态,控制Cache0没有命中,控制Cache1命中,输出VmacState为8’b1111_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。此时Port0的VMAC申请达到最大申请数量。但VmacState为脏数据,数据Cache中的VmacState并未达到申请阈值。
经过步骤10,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图10。
步骤11,(1)数据报文Umac8,Port0学习失败,无更新数据Cache和Main memory操作。(2)数据报文Umac9,Port0申请失败,更新控制Cache0和Cache1,填入空操作。上述操作过程对应图3中的S31-S32的流程。(3)流水线处于空闲状态,无数据报文请求申请VMAC。
步骤12,(1)数据报文Umac9,Port0学习失败,无更新数据Cache和Main memory操作。(2)该节拍无申请成功请求,故对控制Cache填入空操作。(3)数据报文Umac10,Port0,申请VMAC转换。首先查询控制Cache0,Umac10没有命中条目;然后查询控制Cache1,Port0有命中条目,输出VmacState,为8’b1111_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。此时Port0的VMAC申请达到最大申请数量。但VmacState为脏数据,数据Cache中的VmacState并未达到申请阈值。
经过步骤12,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图11。
步骤13,(1)无更新数据Cache和V-state Main memory操作。(2)数据报文Umac10,Port0申请失败,更新控制Cache0和Cache1,填入空操作。上述操作过程对应图3中的S31-S32的流程。(3)流水线处于空闲状态,无数据报文请求申请VMAC。
步骤14,(1)数据报文Umac10,Port0学习失败,无更新数据Cache和Main memory操作。(2)该节拍无申请成功请求,故对控制Cache填入空操作。(3)流水线处于空闲状态,无数据报文请求申请VMAC。
步骤15,(1)无更新数据Cache和V-state Main memory操作。(2)该节拍无申请成功请求,故对控制Cache填入空操作。(3)数据报文Umac11,Port0,申请VMAC转换。首先查询控制Cache0,Umac11没有命中条目;然后查询控制Cache1,Port0有命中条目,输出VmacState,为8’b1111_1111。上述操作过程对应图3中的S21-S22-S24-S25的流程。此时Port0的VMAC申请达到最大申请数量。但VmacState为脏数据,数据Cache中的VmacState并未达到申请阈值。
经过步骤15,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图12.
步骤16,(1)无更新数据Cache和V-state Main memory操作。(2)数据报文Umac11,Port0申请失败,更新控制Cache0和Cache1,填入空操作。上述操作过程对应图3中的S31-S32的流程。(3)流水线处于空闲状态,无数据报文请求申请VMAC。
若连续N个空闲状态,则整个控制Cache会被清空,控制Cache清空后,以数据Cache和Main memory数据为准,实现数据一致性。
步骤17,(1)数据报文Umac11,Port0学习失败,无更新数据Cache和Main memory操作。(2)该节拍无申请成功请求,故对控制Cache填入空操作。(3)数据报文Umac12,Port0,申请VMAC转换。首先查询控制Cache0,Umac12没有命中条目;查询控制Cache1,Port0没有命中条目;然后查询数据Cache,Port0有命中条目,输出VmacState,为8’b1100_0001。上述操作过程对应图3中的S21-S22-S24-S26-S27的流程。此时控制Cache的脏数据完全清除,控制Cache和数据Cache保持数据一致性。
经过步骤17,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图13。
步骤18,(1)无更新数据Cache和V-state Main memory操作。(2)数据报文Umac12,Port0申请成功,SubIdx为3’d1,将VmacState对应SubIdx位置置1,更新控制Cache0和Cache1。上述操作过程对应图3中的S31-S33-S34的流程。(3)流水线处于空闲状态,无数据报文请求申请VMAC。
步骤19,(1)数据报文Umac12,Port0完成学习,更新UMAC和V-UMAC的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入V-State数据Cache和Main memory。上述操作过程对应图3中的S51-S52-S53-S54-S55的流程。(2)无申请成功请求,更新控制Cache0和Cache1,填入空操作。(3)流水线处于空闲状态,无数据报文请求申请VMAC。
经过步骤19,控制Cache0和Cache1、数据Cache和Main memory的条目内容如图14.
由图9-图14可知,当控制Cache出现脏数据时,经过M级流水级数后,控制Cache的脏数据被完全清除,实现了控制Cache和数据Cache的数据一致性。其中M等于Cache深度。
进一步地,本发明还提供了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述VMAC高速地址学习方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种VMAC高速地址学习方法,其特征在于,包括:
S1、使用源UMAC为UmacKey,查找UMAC地址表,UMAC数据Cache命中,输出数据Cache命中的VMAC地址;否则输出Main memory命中的VMAC地址,有命中条目的,表示条目已学习,输出VMAC地址,UmacKeyHit置1,更新V-State控制Cache0,V-State控制Cache1填入空操作,跳转到步骤S4;没有匹配条目表示没有命中,执行步骤S2;
S2、使用UmacKey和逻辑端口PortIdx,查询V-State状态表,V-State控制Cache0命中的,输出PortIdx和SubIdx,直接映射VMAC地址,更新V-State控制Cache0,V-State控制Cache1填入空操作,跳转到步骤S4;否则查询V-State控制Cache1、数据Cache和Mainmemory,输出命中VmacState,执行步骤S3;
S3、根据VmacState申请SubIdx,申请成功的,将VmacState对应SubIdx位置置1,输出SubIdxVld为1,并使用PortIdx和SubIdx映射VMAC地址,获取VMAC地址成功的,更新V-State控制Cache,执行步骤S4;否则对控制Cache填入空操作,结束本次流程;
S4、使用VMAC作为V-UmacKey,查找V-UMAC地址表,数据Cache或Main memory有匹配条目的,如果S1中UmacKeyHit为0,表示异常学习,结束本次流程,否则执行步骤S5;没有匹配条目的表示没有命中,执行步骤S5;
S5、更新UMAC地址表,写入UmacKey以及获取的VMAC地址;更新V-UMAC地址表,写入V-UmacKey以及源UMAC地址和源端口信息InPort;对S3中SubIdxVld为1的,查询V-State数据Cache和Main memory,获取最新VmacState,在对应SubIdx位置置1,更新V-State状态表,写入更新后的VmacState,结束学习流程。
2.如权利要求1所述的VMAC高速地址学习方法,其特征在于,所述V-State状态表用于存储VMAC申请状态,采用“控制Cache”、“数据Cache”和Main memory的三级结构;UMAC地址表用于VMAC地址转换,V-UMAC地址表用于存储转发信息,均采用“数据Cache”和Mainmemory的二级结构。
3.如权利要求1或2所述的VMAC高速地址学习方法,其特征在于,所述Cache的条目内容包括Valid、Tag和Data,Cache的查找流程为,查找Cache内的所有条目,比较Valid和Tag,若Valid有效且Tag匹配的,表示Cache命中;若多个Cache条目同时命中时,优先输出靠近底部条目的Data数据。
4.如权利要求1或2所述的VMAC高速地址学习方法,其特征在于,所述Cache的结构为先进先出队列,从底部压入,从顶部弹出,压入和弹出操作同时进行,底部为最近最多使用条目,顶部为最近最少使用条目,底部优先级最高,顶部优先级最低,Cache的深度为VMAC地址学习一次完整操作的流水级数,从读UMAC地址表、V-State状态表、V-UMAC地址表到更新对应表表项的最大流水级数。
5.如权利要求2所述的VMAC高速地址学习方法,其特征在于,所述V-State状态表的“控制Cache”用于流水线处理操作的申请,任何操作时都进行压入操作同时弹出操作,“控制Cache”的操作包括写操作和空操作,“控制Cache”的空操作条目的Valid为0,Valid为0的条目不参与仲裁比较,当“控制Cache”的写操作失败时,就变成空操作压入,即Tag条目,会自动由MRU变成LRU,直到被完全弹出,最终实现与“数据Cache”和Main memory同步;所述UMAC地址表、V-State状态表、V-UMAC地址表的“数据Cache”应用于Main memory,在存在读写延时的情况下保持数据一致性,只有写操作时进行压入操作同时弹出操作,写操作的同时,更新到Main memory。
6.如权利要求5所述的VMAC高速地址学习方法,其特征在于,所述UMAC地址表、V-State状态表、V-UMAC地址表的“数据Cache”始终保存对应Main memory最近的N次更新操作,N小于等于Cache深度。
7.如权利要求1或2所述的VMAC高速地址学习方法,其特征在于,
在上行方向:以逻辑端口PortIdx为索引查询V-State状态表,申请VMAC地址;以源UMAC地址作为UmacKey,将VMAC地址存入到UMAC地址表;并基于VMAC地址作为V-UmacKey查询V-UMAC地址表,将源UMAC地址和源端口信息InPort学习到V-UMAC地址表,将报文源UMAC地址转换成VMAC地址转发到上层网络;
在下行方向:以用户目的VMAC地址作为V-UmacKey查询V-UMAC地址表,获得目的UMAC地址和转发端口InPort,使用目的UMAC地址作为UmacKey,查询UMAC地址表,且命中,表示为已知报文,将已知报文目的VMAC转换成UMAC地址,并转发到InPort端口。
8.如权利要求1或2所述的VMAC高速地址学习方法,其特征在于,在所述步骤S2中的查询V-State状态表,包括:
使用UmacKey和逻辑端口PortIdx,申请VMAC转换,首先查询控制Cache0;若没有命中条目,继续查询控制Cache1;若没有命中条目,继续查询数据Cache;若没有命中,输出V-StateMain memory中PortIdx索引所在条目VmacState。
9.如权利要求8所述的VMAC高速地址学习方法,其特征在于,在所述步骤S3中的根据VmacState申请SubIdx成功的,包括:
将VmacState对应SubIdx位置置1,更新控制Cache0和控制Cache1;若失败,控制Cache0和控制Cache1填入空操作。
10.如权利要求1或2所述的VMAC高速地址学习方法,其特征在于,在所述步骤S5中实现新条目的学习结果更新,包括:
更新UMAC地址表和V-UMAC地址表的数据Cache和Main memory;查询V-State数据Cache和Main memory,获得最新VmacState,在对应SubIdx位置置1,然后将更新后的VmacState写入数据Cache和Main memory。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10任一项所述的VMAC高速地址学习方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010854590.XA CN112153169B (zh) | 2020-08-24 | 2020-08-24 | 一种vmac高速地址学习方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010854590.XA CN112153169B (zh) | 2020-08-24 | 2020-08-24 | 一种vmac高速地址学习方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112153169A CN112153169A (zh) | 2020-12-29 |
CN112153169B true CN112153169B (zh) | 2022-03-25 |
Family
ID=73888129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010854590.XA Active CN112153169B (zh) | 2020-08-24 | 2020-08-24 | 一种vmac高速地址学习方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112153169B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545265A (zh) * | 2003-11-25 | 2004-11-10 | 港湾网络有限公司 | 数字用户线接入服务器设备实现虚拟媒体访问控制地址的方法 |
CN101075933A (zh) * | 2007-06-29 | 2007-11-21 | 华为技术有限公司 | 学习mac地址的方法及网元设备 |
CN101888388A (zh) * | 2010-07-15 | 2010-11-17 | 中兴通讯股份有限公司 | 一种实现虚拟媒体访问控制地址的方法及装置 |
WO2014032620A1 (en) * | 2012-08-31 | 2014-03-06 | Hangzhou H3C Technologies Co., Ltd. | Virtual mac address, mask-based, packet forwarding |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10616108B2 (en) * | 2014-07-29 | 2020-04-07 | Avago Technologies International Sales Pte. Limited | Scalable MAC address virtualization |
-
2020
- 2020-08-24 CN CN202010854590.XA patent/CN112153169B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545265A (zh) * | 2003-11-25 | 2004-11-10 | 港湾网络有限公司 | 数字用户线接入服务器设备实现虚拟媒体访问控制地址的方法 |
CN101075933A (zh) * | 2007-06-29 | 2007-11-21 | 华为技术有限公司 | 学习mac地址的方法及网元设备 |
CN101888388A (zh) * | 2010-07-15 | 2010-11-17 | 中兴通讯股份有限公司 | 一种实现虚拟媒体访问控制地址的方法及装置 |
WO2014032620A1 (en) * | 2012-08-31 | 2014-03-06 | Hangzhou H3C Technologies Co., Ltd. | Virtual mac address, mask-based, packet forwarding |
Also Published As
Publication number | Publication date |
---|---|
CN112153169A (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9871727B2 (en) | Routing lookup method and device and method for constructing B-tree structure | |
US6266705B1 (en) | Look up mechanism and associated hash table for a network switch | |
CN100550847C (zh) | 一种解决Hash冲突的方法及装置 | |
US10397362B1 (en) | Combined cache-overflow memory structure | |
US6754799B2 (en) | System and method for indexing and retrieving cached objects | |
EP2562978B1 (en) | Content router of a content centric network | |
US6842791B2 (en) | Method and apparatus for memory efficient fast VLAN lookups and inserts in hardware-based packet switches | |
US6772279B1 (en) | Method and apparatus for monitoring the status of CAM comparand registers using a free list and a busy list | |
GB2462493A (en) | Storing and retrieving data from a hash table which has a plurality of columns comprising determining if an entry is empty or not for each column | |
CN103428093A (zh) | 一种基于名字路由前缀存储、匹配及更新方法与装置 | |
KR20160060550A (ko) | 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법 | |
CN101620623A (zh) | 内容可寻址存储器表项管理方法和装置 | |
CN107888687A (zh) | 一种基于分布式存储系统的代理客户端存储加速方法及系统 | |
CN107171960B (zh) | 一种分布式动态二层转发表的维护方法 | |
CN104951403A (zh) | 一种低开销且无差错的冷热数据识别方法 | |
CN114281712A (zh) | 查表方法、装置、fpga及可读存储介质 | |
CN112153169B (zh) | 一种vmac高速地址学习方法和电子设备 | |
WO2016206490A1 (zh) | 一种用于提高表项访问带宽和原子性操作的装置及方法 | |
CN112269784B (zh) | 一种基于硬件实现的哈希表装置以及插入、查询和删除方法 | |
WO2015032214A1 (zh) | 一种同时支持IPv4和IPv6的高速路由查找方法及装置 | |
CN106878185B (zh) | 一种报文ip地址匹配电路及方法 | |
CN102984071B (zh) | 分段地址路由的路由表组织方法及查找路由的方法 | |
CN115599711B (zh) | 缓存数据处理方法、系统、装置、设备及计算机存储介质 | |
US6687786B1 (en) | Automated free entry management for content-addressable memory using virtual page pre-fetch | |
CN104378295B (zh) | 表项管理装置及表项管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |