CN108848034B - 一种网络设备及表项学习方法 - Google Patents

一种网络设备及表项学习方法 Download PDF

Info

Publication number
CN108848034B
CN108848034B CN201810785621.3A CN201810785621A CN108848034B CN 108848034 B CN108848034 B CN 108848034B CN 201810785621 A CN201810785621 A CN 201810785621A CN 108848034 B CN108848034 B CN 108848034B
Authority
CN
China
Prior art keywords
message
information
source
description information
hash collision
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
Application number
CN201810785621.3A
Other languages
English (en)
Other versions
CN108848034A (zh
Inventor
项学锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201810785621.3A priority Critical patent/CN108848034B/zh
Publication of CN108848034A publication Critical patent/CN108848034A/zh
Application granted granted Critical
Publication of CN108848034B publication Critical patent/CN108848034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/08Learning-based routing, e.g. using neural networks or artificial intelligence

Abstract

本申请提供一种网络设备及表项学习方法,该方法包括:交换芯片接收到报文后,在转发表中未查找到匹配报文的源信息的硬件表项时,将源未知标记添加到报文描述信息;在第一hash冲突表中未查找到匹配所述报文的源信息的hash冲突表项时,将源未命中标记添加到报文描述信息;若所述报文描述信息命中第一ACL规则,则将所述报文发送给处理器;处理器在接收到报文后,确定所述报文的源信息对应的软件表项,若未成功将所述软件表项同步到交换芯片的转发表,则确定所述源信息发生hash冲突,并将所述软件表项下发到交换芯片的第一hash冲突表。通过本申请的技术方案,当存在hash冲突问题时,交换芯片可以学习到发生hash冲突的硬件表项,保证流量的正常单播转发。

Description

一种网络设备及表项学习方法
技术领域
本申请涉及通信技术领域,尤其涉及一种网络设备及表项学习方法。
背景技术
目前,交换芯片通常具有源MAC(Media Access Control,媒体访问控制)学习功能和目的MAC查找功能。其中,通过交换芯片的源MAC学习功能,可以保证MAC地址的学习速度,并可以大幅度的降低软件的实现复杂度。
源MAC学习功能是指:在通过端口1接收到报文后,解析该报文的源MAC地址,并查询转发表中是否存在与该源MAC地址对应的硬件表项。如果不存在,则可以在转发表中添加一个硬件表项,并通过该硬件表项记录该源MAC地址与端口1的对应关系。如果存在,则可以不再学习该报文的源MAC地址。
目的MAC查找功能是指:在接收到报文后,解析该报文的目的MAC地址,并查询转发表中是否存在与该目的MAC地址对应的硬件表项。如果不存在,则广播该报文。如果存在,则通过与该目的MAC地址对应的硬件表项转发报文。
交换芯片在进行源MAC学习时,通常采用hash算法存储硬件表项,具体的,确定源MAC地址对应的hash值,查询该hash值对应的存储位置是否存在该源MAC地址对应的硬件表项。如果不存在,在该hash值对应的存储位置添加硬件表项,并通过该硬件表项记录该源MAC地址与端口1的对应关系。
但是,每个hash值对应的存储位置的空间有限,如最多存储4个硬件表项,当大量源MAC地址对应同一个hash值,如超过4个源MAC地址对应同一hash值,就会产生hash冲突问题,即无法存储所有源MAC地址的硬件表项。
发明内容
本申请提供一种网络设备,所述网络设备包括交换芯片和处理器,所述交换芯片包括二层模块、精确匹配模块和ACL管理模块,其中:
所述二层模块,用于在接收到报文后,在转发表中未查找到匹配所述报文的源信息的硬件表项时,则将源未知标记添加到所述报文对应的报文描述信息,并将所述报文和所述报文描述信息发送给精确匹配模块;
所述精确匹配模块,用于在接收到报文和报文描述信息后,在第一hash冲突表中未查找到匹配所述报文的源信息的hash冲突表项时,则将源未命中标记添加到报文描述信息,将所述报文和所述报文描述信息发送给ACL管理模块;
所述ACL管理模块,用于在接收到报文和报文描述信息后,若所述报文描述信息命中第一ACL规则,则将所述报文发送给处理器;所述第一ACL规则的匹配选项包括源未知标记和源未命中标记,动作选项包括上送处理器;
所述处理器,用于在接收到报文后,确定所述报文的源信息对应的软件表项,若未成功将所述软件表项同步到所述二层模块的转发表,则确定所述源信息发生hash冲突,并将所述软件表项下发到精确匹配模块的第一hash冲突表。
本申请提供一种表项学习方法,应用于网络设备,所述方法包括:
所述网络设备的交换芯片在接收到报文后,在转发表中未查找到匹配所述报文的源信息的硬件表项时,则将源未知标记添加到所述报文对应的报文描述信息;在第一hash冲突表中未查找到匹配所述报文的源信息的hash冲突表项时,则将源未命中标记添加到所述报文描述信息;若所述报文描述信息命中第一ACL规则,则将所述报文发送给所述网络设备的处理器;其中,所述第一ACL规则的匹配选项包括源未知标记和源未命中标记,动作选项包括上送处理器;
所述处理器在接收到报文后,确定所述报文的源信息对应的软件表项,若未成功将所述软件表项同步到所述交换芯片的转发表,则确定所述源信息发生hash冲突,并将所述软件表项下发到所述交换芯片的第一hash冲突表。
由以上技术方案可见,本申请实施例中,当存在hash冲突问题时,交换芯片可以学习到发生hash冲突的硬件表项,避免由于hash冲突导致无法学习到硬件表项的问题,继而解决流量不能单播的问题,保证流量的正常单播转发。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的网络设备的硬件结构图;
图2是本申请另一种实施方式中的网络设备的硬件结构图;
图3是本申请一种实施方式中的表项学习方法的流程图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例提出一种网络设备(如路由器、交换机等),该网络设备可以包括交换芯片和处理器。例如,网络设备可以包括多个业务线卡,每个业务线卡均包括交换芯片和处理器。其中,交换芯片在接收到报文后,可以进行源信息学习和目的信息查找。源信息学习是指:在通过某端口接收到报文后,解析该报文的源信息,并查询转发表中是否存在与该源信息对应的硬件表项;如果不存在,则在转发表中添加一个硬件表项,并通过该硬件表项记录该源信息与该端口的对应关系;如果存在,则不再学习该报文的源信息。目的信息查找是指:在接收到报文后,解析该报文的目的信息,并查询转发表中是否存在与该目的信息对应的硬件表项;如果不存在,则广播该报文;如果存在,则通过与该目的信息对应的硬件表项转发报文。其中,源信息可以为源MAC地址,或者,源MAC地址和VLAN(Virtual Local AreaNetwork,虚拟局域网)标识;目的信息可以为目的MAC地址,或者,目的MAC地址和VLAN标识。
在一个例子中,交换芯片在进行源信息学习时,可以采用hash算法存储硬件表项。参见表1所示,为转发表的示例,该转发表的每个表项为一个硬件表项。交换芯片通过端口4接收到报文后,解析报文的源信息,假设为MAC6。
若MAC6对应的hash值为100,则判断hash值100对应的存储位置是否存在MAC6,如果不存在,则学习MAC6的硬件表项。但是,由于hash值100对应的存储位置已经没有空闲表项资源,因此,无法学习MAC6的硬件表项。若MAC6对应的hash值为200,则判断hash值200对应的存储位置是否存在MAC6,如果不存在,则学习MAC6的硬件表项。由于hash值200对应的存储位置存在空闲表项资源,因此,可以学习到MAC6的硬件表项,参见表2所示。
表1
Figure BDA0001733666360000041
表2
Figure BDA0001733666360000042
Figure BDA0001733666360000051
综上可以看出,由于每个hash值对应的存储位置的空间有限,如最多存储4个硬件表项,因此,若MAC6对应hash值100,则会产生hash冲突问题,即无法存储MAC6的硬件表项。这样,参见表1所示,若接收到目的MAC地址为MAC6的报文,由于没有与MAC6对应的硬件表项,因此,交换芯片需要广播发送该报文,而无法单播发送该报文,从而影响交换芯片的转发性能。
针对上述发现,本申请实施例中,当存在hash冲突问题时,交换芯片可以检测到hash冲突问题,并学习到发生hash冲突的硬件表项,避免由于hash冲突导致无法学习到硬件表项的问题,解决流量不能单播的问题,保证流量的正常单播转发。以下结合具体实施例,对本申请实施例的网络设备进行说明。
参见图1所示,该网络设备可以包括但不限于交换芯片11和处理器12,该交换芯片11可以包括二层模块111、精确匹配模块112和ACL管理模块113。
其中,二层模块111也可以称为L2模块,该二层模块111可以维护表1或者表2所示的转发表,并利用该转发表实现源信息学习和目的信息查找。
其中,精确匹配模块112也可以称为EM模块,该精确匹配模块112可以维护第一hash冲突表和第二hash冲突表,第一hash冲突表和第二hash冲突表均可以通过slice资源实现。具体的,第一hash冲突表用于存储hash冲突的源信息,且该第一hash冲突表用于进行源信息的学习;第二hash冲突表用于存储hash冲突的源信息,且该第二hash冲突表用于进行目的信息的查找。
其中,ACL管理模块113也可以称为IFP模块,该ACL管理模块113可以配置多个ACL规则,并利用这些ACL规则进行处理。本实施例中,以ACL管理模块113配置第一ACL规则、第二ACL规则和第三ACL规则为例,后续过程中,介绍第一ACL规则、第二ACL规则和第三ACL规则的内容与作用。
基于二层模块111、精确匹配模块112、ACL管理模块113和处理器12,本实施例中,针对源信息学习的处理过程,以下结合情况1-情况4进行说明。
情况1、在二层模块111的转发表中不存在与源信息对应的硬件表项,且在精确匹配模块112的第一hash冲突表中不存在与源信息对应的hash冲突表项。
二层模块111在接收到报文后,在转发表中未查找到匹配该报文的源信息的硬件表项时,则可以生成源未知标记,并将该源未知标记添加到该报文对应的报文描述信息,并将该报文和该报文描述信息发送给精确匹配模块112。
其中,针对二层模块111接收到的每个报文,均对应有报文描述信息,报文描述信息随着报文一起,在交换芯片内部各模块之间传输,用于记录与报文有关的描述信息,对此报文描述信息的内容不做限制。二层模块111在转发表中未查找到匹配该源信息的硬件表项时,则将源未知标记添加到报文描述信息。
在一个例子中,二层模块111将该源未知标记添加到该报文对应的报文描述信息时具体用于:在转发表中学习与该源信息对应的硬件表项,并将该源未知标记添加到该报文对应的报文描述信息;或者,在转发表中学习与该源信息对应的硬件表项,若未成功将该硬件表项学习到所述转发表,则可以确定该源信息发生hash冲突,并将该源未知标记添加到该报文对应的报文描述信息。
例如,二层模块111在接收到报文后,解析该报文的源信息,假设为MAC6。若MAC6对应的hash值为100,则判断转发表中hash值100对应的存储位置是否存在MAC6,如果不存在,则可以在转发表中hash值100对应的存储位置学习MAC6的硬件表项,该硬件表项用于记录MAC6与端口4的对应关系。
在一种实现方式中,在hash值100对应的存储位置学习MAC6的硬件表项后,无论是否成功将该硬件表项存储到hash值100对应的存储位置,二层模块111均生成源未知标记,并将该源未知标记添加到该报文对应的报文描述信息。
在另一种实现方式中,在hash值100对应的存储位置学习MAC6的硬件表项后,只有未成功将硬件表项存储到hash值100对应的存储位置,二层模块111才生成源未知标记,并将该源未知标记添加到该报文对应的报文描述信息;若成功将该硬件表项存储到hash值100对应的存储位置,则二层模块111可以不生成源未知标记,也不需要将源未知标记添加到该报文对应的报文描述信息。
例如,参见表1所示,在转发表中hash值100对应的存储位置学习MAC6的硬件表项时,由于hash值100对应的存储位置已经没有空闲表项资源,因此,二层模块111无法成功将MAC6的硬件表项存储到hash值100对应的存储位置,可以确定MAC6发生hash冲突,可以将源未知标记添加到报文描述信息。
精确匹配模块112在接收到报文和报文描述信息后,在第一hash冲突表中未查找到匹配该报文的源信息的hash冲突表项(将第一hash冲突表中的每个表项称为hash冲突表项)时,则可以生成源未命中标记,并将该源未命中标记添加到该报文描述信息,并将该报文和该报文描述信息发送给ACL管理模块113。
例如,精确匹配模块112在接收到报文后,解析该报文的源信息,假设为MAC6,然后,判断第一hash冲突表中是否存在与MAC6对应的hash冲突表项,如果否,则可以生成源未命中标记,并将该源未命中标记添加到报文描述信息。
ACL管理模块113在接收到报文和报文描述信息后,若该报文描述信息命中第一ACL规则,则将该报文发送给处理器12。其中,该第一ACL规则的匹配选项可以包括源未知标记和源未命中标记,动作选项包括上送处理器12。
其中,ACL管理模块113配置有第一ACL规则,该第一ACL规则的匹配选项包括源未知标记和源未命中标记,源未知标记表示二层模块111的转发表中不存在与源信息对应的硬件表项,源未命中标记表示精确匹配模块112的第一hash冲突表中不存在与源信息对应的hash冲突表项。此外,该第一ACL规则的动作选项可以包括复制报文,并将复制后的报文上送处理器12。
综上所述,由于二层模块111在报文描述信息中添加源未知标记,且精确匹配模块112在报文描述信息中添加源未命中标记,因此,ACL管理模块113在接收到该报文描述信息后,该报文描述信息可以命中第一ACL规则。
在一个例子中,ACL管理模块113将报文上送给处理器12时,为了防止冲击处理器12,还可以对上送给处理器12的报文进行限速。例如,判断上送给处理器12的报文速率是否达到阈值(可以根据经验进行配置),如果是,则不再将该报文上送给处理器12,如果否,可以将该报文上送给处理器12。
处理器12在接收到报文后,确定该报文的源信息对应的软件表项,若未成功将该软件表项同步到二层模块111的转发表,则确定该源信息发生hash冲突,并将该软件表项下发到精确匹配模块112的第一hash冲突表和第二hash冲突表。
具体的,处理器12在接收到报文后,解析该报文的源信息,假设为MAC6。若MAC6对应的hash值为100,则判断二层模块111的转发表中,hash值100对应的存储位置是否存在MAC6;如果存在,结束流程;如果不存在,则在hash值100对应的存储位置学习MAC6的软件表项。如果成功将MAC6的软件表项存储到二层模块111的转发表,则确定MAC6未发生hash冲突,结束流程;如果未成功将MAC6的软件表项存储到二层模块111的转发表,则确定MAC6发生hash冲突,然后,处理器12判断精确匹配模块112的第一hash冲突表和第二hash冲突表中是否存在MAC6;如果存在,结束流程;如果不存在,将MAC6的软件表项下发到精确匹配模块112的第一hash冲突表和第二hash冲突表中。
在处理器12将MAC6的软件表项下发到精确匹配模块112的第一hash冲突表后,则第一hash冲突表可以参见表3或表4所示,该第一hash冲突表用于精确匹配模块112的源信息学习。在处理器12将MAC6的软件表项下发到精确匹配模块112的第二hash冲突表后,则第二hash冲突表可以参见表5所示,第二hash冲突表用于精确匹配模块112的目的信息查找。
表3
源信息 出端口
MAC6 Nothing
表4
源信息 出端口
MAC6 端口4
表5
目的信息 出端口
MAC6 端口4
在表4和表5中,处理器12可以确定交换芯片11是通过端口4接收到报文,对此确定方式不做限制,因此,可以将软件表项的出端口确定为端口4。
在上述实施例中,涉及软件表项、硬件表项和hash冲突表项,以下结合具体应用场景,对软件表项、硬件表项和hash冲突表项的区别与联系进行说明。
二层模块111的转发表中的每个表项称为硬件表项。二层模块111在接收到报文后,可以将报文的源信息学习到转发表中,而学习到转发表中的表项就是硬件表项。而且,处理器12可以从二层模块111的转发表中读取这些硬件表项,在将这些硬件表项读取到处理器后,这些表项又可以称为软件表项。
精确匹配模块112的第一hash冲突表中的每个表项称为hash冲突表项,精确匹配模块112的第二hash冲突表中的每个表项也可以称为hash冲突表项。
处理器12生成的表项称为软件表项。处理器12接收到报文后,可以学习报文的源信息,得到软件表项。而且,处理器12得到软件表项后,若将该软件表项下发到二层模块111的转发表中,则下发到二层模块111的转发表中的表项又可以称为硬件表项。处理器12得到软件表项后,若将该软件表项下发到精确匹配模块112的第一hash冲突表/第二hash冲突表中,则下发到精确匹配模块112的第一hash冲突表/第二hash冲突表中的表项又可以称为hash冲突表项。
情况2、在二层模块111的转发表中存在与源信息对应的硬件表项,且在精确匹配模块112的第一hash冲突表中不存在与源信息对应的hash冲突表项。
二层模块111在接收到报文后,在转发表中查找到匹配该报文的源信息的硬件表项时,则可以生成源已知标记,并将该源已知标记添加到该报文对应的报文描述信息,并将该报文和该报文描述信息发送给精确匹配模块112。
例如,二层模块111在接收到报文后,解析该报文的源信息,假设为MAC4。若MAC4对应的hash值为100,则判断转发表中hash值100对应的存储位置是否存在MAC4,如果存在,则可以将源已知标记添加到报文描述信息中。
精确匹配模块112在接收到报文和报文描述信息后,在第一hash冲突表中未查找到匹配该报文的源信息的hash冲突表项时,则生成源未命中标记,并将该源未命中标记添加到该报文描述信息,将报文和报文描述信息发送给ACL管理模块113。例如,精确匹配模块112在接收到报文后,解析该报文的源信息,假设为MAC4,判断第一hash冲突表中是否存在与MAC4对应的hash冲突表项,如果否,则生成源未命中标记,并将该源未命中标记添加到报文描述信息。
ACL管理模块113在接收到报文和报文描述信息后,若该报文描述信息未命中本地的任一ACL规则(如第一ACL规则、第二ACL规则和第三ACL规则等),则不需要将该报文发送给处理器12,并结束源信息的学习过程。
例如,假设二层模块111在报文描述信息中添加源已知标记,且精确匹配模块112在报文描述信息中添加源未命中标记,则ACL管理模块113在接收到该报文描述信息后,该报文描述信息可以未命中本地的任一ACL规则。
情况3、在二层模块111的转发表中不存在与源信息对应的硬件表项,且在精确匹配模块112的第一hash冲突表中存在与源信息对应的hash冲突表项。
二层模块111在接收到报文后,在转发表中查找到匹配该报文的源信息的硬件表项时,则可以生成源未知标记,并将该源未知标记添加到该报文对应的报文描述信息,并将该报文和该报文描述信息发送给精确匹配模块112。
例如,二层模块111在接收到报文后,解析该报文的源信息,假设为MAC6。若MAC6对应hash值100,判断转发表中hash值100对应的存储位置是否存在MAC6,如果否,在转发表中hash值100对应的存储位置学习MAC6的硬件表项,该硬件表项用于记录MAC6与端口4的对应关系。在hash值100对应的存储位置学习硬件表项后,无论是否成功将硬件表项存储到hash值100对应的存储位置,二层模块111均生成源未知标记,将源未知标记添加到报文描述信息。
精确匹配模块112在接收到报文和报文描述信息后,在第一hash冲突表中查找到匹配该报文的源信息的hash冲突表项时,则生成源已命中标记,并将该源已命中标记添加到该报文描述信息,将报文和报文描述信息发送给ACL管理模块113。例如,精确匹配模块112在接收到报文后,解析该报文的源信息,假设为MAC6,然后,判断第一hash冲突表中是否存在MAC6,参见表3或者表4所示,由于第一hash冲突表中存在与MAC6对应的hash冲突表项,因此,精确匹配模块112生成源已命中标记,并将该源已命中标记添加到报文描述信息。
ACL管理模块113在接收到报文和报文描述信息后,若该报文描述信息未命中本地的任一ACL规则(如第一ACL规则、第二ACL规则和第三ACL规则等),则不需要将该报文发送给处理器12,并结束源信息的学习过程。
例如,假设二层模块111在报文描述信息中添加源未知标记,且精确匹配模块112在报文描述信息中添加源已命中标记,则ACL管理模块113在接收到该报文描述信息后,该报文描述信息可以未命中本地的任一ACL规则。
情况4、在二层模块111的转发表中存在与源信息对应的硬件表项,且在精确匹配模块112的第一hash冲突表中存在与源信息对应的hash冲突表项。
二层模块111在接收到报文后,在转发表中查找到匹配该报文的源信息的硬件表项时,则可以生成源已知标记,并将该源已知标记添加到该报文对应的报文描述信息,并将该报文和该报文描述信息发送给精确匹配模块112。
例如,二层模块111在接收到报文后,解析该报文的源信息,假设为MAC6。若MAC6对应的hash值为100,则判断转发表中hash值100对应的存储位置是否存在MAC6,如果存在,则可以将源已知标记添加到报文描述信息中。
其中,转发表中存在MAC6的硬件表项的原因可以是:参见表1所示,假设MAC 4的硬件表项被删除,使得hash值100对应的存储位置存在空闲资源,这样,二层模块111再次接收到源信息为MAC6的报文后,就可以将MAC6的硬件表项存储到转发表中,从而使得转发表中存在MAC6的硬件表项。
精确匹配模块112在接收到报文和报文描述信息后,在第一hash冲突表中查找到匹配该报文的源信息的hash冲突表项时,则生成源已命中标记,并将该源已命中标记添加到该报文描述信息,将报文和报文描述信息发送给ACL管理模块113。例如,精确匹配模块112在接收到报文后,解析该报文的源信息,假设为MAC6,然后,判断第一hash冲突表中是否存在MAC6,参见表3或者表4所示,由于第一hash冲突表中存在与MAC6对应的hash冲突表项,因此,精确匹配模块112生成源已命中标记,并将该源已命中标记添加到报文描述信息。
ACL管理模块113在接收到报文和报文描述信息后,若该报文描述信息命中第二ACL规则,则将该报文发送给处理器12。其中,该第二ACL规则的匹配选项可以包括源已知标记和源已命中标记,动作选项包括上送处理器12。
其中,ACL管理模块113配置有第二ACL规则,该第二ACL规则的匹配选项包括源已知标记和源已命中标记,源已知标记表示转发表中存在与源信息对应的硬件表项,源已命中标记表示第一hash冲突表中存在与源信息对应hash冲突表项。该第二ACL规则的动作选项包括复制报文,并将报文上送处理器12。
综上所述,由于二层模块111在报文描述信息中添加源已知标记,且精确匹配模块112在报文描述信息中添加源已命中标记,因此,ACL管理模块113在接收到该报文描述信息后,该报文描述信息可以命中第二ACL规则。
处理器12在接收到报文后,若二层模块111的转发表中存在与该报文的源信息对应的软件表项,且精确匹配模块112的第一hash冲突表中存在与该源信息对应的软件表项,则确定该源信息的hash冲突被解除,并从精确匹配模块112的第一hash冲突表和第二hash冲突表中删除与该源信息对应的软件表项。
具体的,处理器12在接收到报文后,解析该报文的源信息,假设为MAC6。若MAC6对应的hash值为100,则判断二层模块111的转发表中,hash值100对应的存储位置是否存在MAC6;如果存在,则判断精确匹配模块112的第一hash冲突表中,是否存在与MAC6对应的软件表项;如果存在,则处理器12从精确匹配模块112的第一hash冲突表和第二hash冲突表中删除与MAC6对应的软件表项。此外,如果转发表中存在与MAC6对应的软件表项,且第一hash冲突表中不存在与MAC6对应的软件表项,则结束流程。如果转发表中不存在与MAC6对应的软件表项,且第一hash冲突表中存在与MAC6对应的软件表项,则结束流程。如果转发表中不存在与MAC6对应的软件表项,且第一hash冲突表中不存在与MAC6对应的软件表项,则在转发表中学习MAC6的软件表项,如果成功将MAC6的软件表项存储到转发表,则确定MAC6未发生hash冲突,结束流程;如果未成功将MAC6的软件表项存储到转发表,则确定MAC6发生hash冲突,将MAC6的软件表项下发到第一hash冲突表和第二hash冲突表中。
在一个例子中,上述情况1-情况4是针对源信息学习的处理过程,在实际应用中,还涉及目的信息查找过程。在目的信息查找过程中,交换芯片的结构与图1相比,除了二层模块111、精确匹配模块112、ACL管理模块113,还可以包括转发决策模块,参见图2所示,为网络设备的结构示意图,网络设备的交换芯片11可以包括二层模块111、精确匹配模块112、ACL管理模块113和转发决策模块114,该转发决策模块114用于通过报文描述信息转发报文。
本实施例中,针对目的信息查找过程,以下结合情况5-情况8进行说明。
情况5、在二层模块111的转发表中不存在与目的信息对应的硬件表项,在精确匹配模块112的第二hash冲突表中不存在与目的信息对应的hash冲突表项。
二层模块111在接收到报文后,在转发表中未查找到匹配该报文的目的信息的硬件表项时,则生成目的未知标记,并将该目的未知标记添加到该报文对应的报文描述信息,并将该报文和该报文描述信息发送给精确匹配模块112。
例如,二层模块111在接收到报文后,可以解析该报文的目的信息,假设为MAC8。若MAC8对应的hash值为100,则判断转发表中hash值100对应的存储位置是否存在MAC8,如果不存在,即转发表中不存在与MAC8对应的硬件表项,则生成目的未知标记,并将该目的未知标记添加到报文描述信息。
精确匹配模块112接收到报文和报文描述信息后,在第二hash冲突表中未查找到匹配该报文的目的信息的hash冲突表项,则生成目的未命中标记,并将目的未命中标记添加到报文描述信息,将报文和报文描述信息发送给ACL管理模块113。例如,精确匹配模块112在接收到报文后,解析该报文的目的信息,假设为MAC8。判断第二hash冲突表中是否存在与MAC8对应的hash冲突表项,如果否,则生成目的未命中标记,将目的未命中标记添加到报文描述信息。
ACL管理模块113在接收到报文和报文描述信息后,若该报文描述信息未命中本地的任一ACL规则(如第一ACL规则、第二ACL规则和第三ACL规则等),则可以将该报文和该报文描述信息发送给转发决策模块114。
转发决策模块114在接收到报文和报文描述信息后,由于报文描述信息未携带出端口的信息,因此,转发决策模块114可以采用广播方式发送该报文。
情况6、在二层模块111的转发表中存在与目的信息对应的硬件表项,且在精确匹配模块112的第二hash冲突表中不存在与目的信息对应的hash冲突表项。
二层模块111在接收到报文后,在转发表中查找到匹配该报文的目的信息的硬件表项时,则生成目的已知标记,并将该目的已知标记和第四出端口添加到该报文对应的报文描述信息,并将该报文和该报文描述信息发送给精确匹配模块112。其中,第四出端口基于转发表中与该目的信息对应的硬件表项确定。
例如,二层模块111在接收到报文后,可以解析该报文的目的信息,假设为MAC4。若MAC4对应的hash值为100,则可以判断转发表中hash值100对应的存储位置是否存在MAC4,如果存在,即转发表中存在与MAC4对应的硬件表项,则二层模块111可以从该硬件表项中获取到第四出端口为端口2,并生成目的已知标记,并将该目的已知标记和端口2添加到报文描述信息。
精确匹配模块112接收到报文和报文描述信息后,在第二hash冲突表中未查找到匹配该报文的目的信息的hash冲突表项时,则生成目的未命中标记,并将目的未命中标记添加到报文描述信息,将报文和报文描述信息发送给ACL管理模块113。例如,精确匹配模块112在接收到报文后,解析该报文的目的信息,假设为MAC4。判断第二hash冲突表中是否存在与MAC4对应的hash冲突表项,如果否,则生成目的未命中标记,将目的未命中标记添加到报文描述信息。
ACL管理模块113在接收到报文和报文描述信息后,若该报文描述信息未命中本地的任一ACL规则(如第一ACL规则、第二ACL规则和第三ACL规则等),则可以将该报文和该报文描述信息发送给转发决策模块114。
转发决策模块114在接收到报文和报文描述信息后,由于报文描述信息中携带有第四出端口,因此,可以根据报文描述信息确定出端口是第四出端口(即端口2),也就是说,转发决策模块114可以通过端口2单播发送该报文。
情况7、在二层模块111的转发表中不存在与目的信息对应的硬件表项,且在精确匹配模块112的第二hash冲突表中存在与目的信息对应的hash冲突表项。
二层模块111在接收到报文后,在转发表中未查找到匹配该报文的目的信息的硬件表项时,则生成目的未知标记,并将该目的未知标记添加到该报文对应的报文描述信息,并将该报文和该报文描述信息发送给精确匹配模块112。
例如,二层模块111在接收到报文后,可以解析该报文的目的信息,假设为MAC6。若MAC6对应的hash值为100,则判断转发表中hash值100对应的存储位置是否存在MAC6,如果不存在,即转发表中不存在与MAC6对应的硬件表项,则生成目的未知标记,并将该目的未知标记添加到报文描述信息。
精确匹配模块112在接收到报文和报文描述信息后,在第二hash冲突表中查找到匹配该报文的目的信息的hash冲突表项时,则生成目的已命中标记,并将目的已命中标记和第一出端口添加到报文描述信息,将报文和报文描述信息发送给ACL管理模块113;其中,该第一出端口基于第二hash冲突表中与该目的信息对应的hash冲突表项确定。例如,精确匹配模块112在接收到报文后,解析该报文的目的信息,假设为MAC6。判断第二hash冲突表中是否存在MAC6,参见表5所示,由于存在,则从MAC6的hash冲突表项中获取到第一出端口为端口4,生成目的已命中标记,将目的已命中标记和端口4添加到报文描述信息。
ACL管理模块113在接收到报文和报文描述信息后,若该报文描述信息未命中本地的任一ACL规则(如第一ACL规则、第二ACL规则和第三ACL规则等),则可以将该报文和该报文描述信息发送给转发决策模块114。
转发决策模块114在接收到报文和报文描述信息后,由于报文描述信息中携带有第一出端口,因此,可以根据报文描述信息确定出端口是第一出端口(即端口4),也就是说,转发决策模块114可以通过端口4单播发送该报文。
情况8、在二层模块111的转发表中存在与目的信息对应的硬件表项,且在精确匹配模块112的第二hash冲突表中存在与目的信息对应的hash冲突表项。
二层模块111在接收到报文后,在转发表中查找到匹配该报文的目的信息的硬件表项时,则可以生成目的已知标记,并将该目的已知标记和第二出端口添加到该报文对应的报文描述信息,并将报文和报文描述信息发送给精确匹配模块112。其中,第二出端口基于转发表中与该目的信息对应的硬件表项确定。
例如,二层模块111在接收到报文后,可以解析该报文的目的信息,假设为MAC6。若MAC6对应的hash值为100,则判断转发表中hash值100对应的存储位置是否存在MAC6,如果存在,即转发表中存在与MAC6对应的硬件表项,则二层模块111从该硬件表项中获取到第二出端口为端口5(假设为端口5),并生成目的已知标记,并将该目的已知标记和端口5添加到报文描述信息。
精确匹配模块112接收到报文和报文描述信息后,在第二hash冲突表中查找到匹配该报文的目的信息的hash冲突表项时,则生成目的已命中标记,将目的已命中标记和第三出端口添加到报文描述信息,将报文和报文描述信息发送给ACL管理模块113;其中,第三出端口基于第二hash冲突表中与该目的信息对应的hash冲突表项确定。例如,精确匹配模块112在接收到报文后,解析该报文的目的信息,假设为MAC6。判断第二hash冲突表中是否存在MAC6,参见表5所示,由于存在,则从MAC6的hash冲突表项中获取到第三出端口为端口4,生成目的已命中标记,将目的已命中标记和端口4添加到报文描述信息。
ACL管理模块113在接收到报文和报文描述信息后,若该报文描述信息命中第三ACL规则,则可以为第二出端口设置选中状态,而不为第三出端口设置选中状态,并将该报文和该报文描述信息发送给转发决策模块114。其中,第三ACL规则的匹配选项可以包括目的已知标记和目的已命中标记,第三ACL规则的动作选项可以包括为二层模块111添加的第二出端口设置选中状态。
在一个例子中,ACL管理模块113配置有第三ACL规则,该第三ACL规则的匹配选项包括目的已知标记和目的已命中标记,目的已知标记表示转发表中存在与目的信息对应的硬件表项,目的已命中标记表示第二hash冲突表中存在与目的信息对应的hash冲突表项。该第三ACL规则的动作选项包括为二层模块111添加的第二出端口设置选中状态,即将第二出端口作为最终的出端口。
转发决策模块114在接收到报文和报文描述信息后,由于报文描述信息中携带有第二出端口和第三出端口,而第二出端口设置有选中状态,第三出端口未设置选中状态,因此,可以根据报文描述信息确定出端口是第二出端口(即端口5),也就是说,转发决策模块114可以通过端口5单播发送该报文。
在一个例子中,在上述第三ACL规则的动作选项中,除了包括为二层模块111添加的第二出端口设置选中状态,还可以包括复制报文,并将复制后的报文上送处理器12。基于此,ACL管理模块113除了将报文和报文描述信息发送给转发决策模块114,还可以复制该报文,并将复制后的报文上送给处理器12。
处理器12在接收到报文后,若二层模块111的转发表中存在与该报文的目的信息对应的软件表项,且精确匹配模块112的第二hash冲突表中存在与该目的信息对应的软件表项,确定该目的信息的hash冲突被解除,从精确匹配模块112的第一hash冲突表和第二hash冲突表中删除与该目的信息对应的软件表项。
处理器12接收到报文后,解析该报文的目的信息,假设为MAC6。若MAC6对应的hash值为100,则判断二层模块111的转发表中,hash值100对应的存储位置是否存在MAC6;如果存在,则判断精确匹配模块112的第二hash冲突表中,是否存在与MAC6对应的软件表项;如果存在,处理器12从精确匹配模块112的第一hash冲突表和第二hash冲突表中删除与MAC6对应的软件表项。
在一个例子中,上述情况5-情况8是针对目的信息查找的处理过程,而实际应用中,源信息学习和目的信息查找是同时进行的。也就是说,二层模块111在接收到报文后,进行源信息学习的流程(如情况1-情况4的任一情况),也进行目的信息查找的流程(如情况5-情况7的任一情况);同理,精确匹配模块112在接收到报文后,进行源信息学习的流程,也进行目的信息查找的流程;ACL管理模块113在接收到报文后,进行源信息学习的流程,也进行目的信息查找的流程;转发决策模块114在接收到报文后,可以通过出端口转发报文。
在一个例子中,针对第一hash冲突表和第二hash冲突表中的hash冲突表项,还可以为该hash冲突表项设置老化定时器,该老化定时器的老化时间可以根据经验配置,如5分钟。这样,如果在老化定时器超时前,精确匹配模块112接收到与该hash冲突表项对应的报文,则可以更新该老化定时器;如果在老化定时器超时之前,精确匹配模块112未接收到与该hash冲突表项对应的报文,则可以从第一hash冲突表和第二hash冲突表中删除该hash冲突表项。
由以上技术方案可见,本申请实施例中,当存在hash冲突问题时,交换芯片可以学习到发生hash冲突的硬件表项,避免由于hash冲突导致无法学习到硬件表项的问题,继而解决流量不能单播的问题,保证流量的正常单播转发。
在上述实施例的基础上,参见图3所示,为本申请实施例中提出的表项学习方法的流程示意图,该方法可以应用于网络设备,该方法可以包括:
步骤301,网络设备的交换芯片接收到报文后,在转发表中未查找到匹配该报文的源信息的硬件表项时,将源未知标记添加到该报文对应的报文描述信息。
其中,交换芯片将源未知标记添加到该报文对应的报文描述信息,可以包括:交换芯片在转发表中学习与该源信息对应的硬件表项,并将源未知标记添加到该报文对应的报文描述信息;或者,交换芯片在转发表中学习与该源信息对应的硬件表项,若未成功将该硬件表项学习到转发表,则确定该源信息发生hash冲突,并将源未知标记添加到该报文对应的报文描述信息。
步骤302,在第一hash冲突表中未查找到匹配该报文的源信息的hash冲突表项时,交换芯片将源未命中标记添加到该报文描述信息。其中,第一hash冲突表可以用于存储hash冲突的源信息,并且,第一hash冲突表用于源信息学习。
步骤303,若该报文描述信息命中第一ACL规则,则交换芯片将该报文发送给网络设备的处理器;其中,该第一ACL规则的匹配选项可以包括源未知标记和源未命中标记,该第一ACL规则的动作选项可以包括上送处理器。
步骤304,处理器在接收到该报文后,确定该报文的源信息对应的软件表项,若未成功将该软件表项同步到交换芯片的转发表,则确定该源信息发生hash冲突,并将该软件表项下发到交换芯片的第一hash冲突表和第二hash冲突表。其中,第二hash冲突表用于存储hash冲突的源信息,并用于目的信息查找。
在一个例子中,交换芯片在接收到报文后,在转发表中查找到匹配该报文的源信息的硬件表项时,则将源已知标记添加到报文描述信息;在第一hash冲突表中查找到匹配该报文的源信息的hash冲突表项时,则将源已命中标记添加到报文描述信息。进一步的,若该报文描述信息命中第二ACL规则,则交换芯片还可以将该报文发送给处理器。其中,该第二ACL规则的匹配选项可以包括源已知标记和源已命中标记,该第二ACL规则的动作选项可以包括上送处理器。
处理器在接收到该报文后,若交换芯片的转发表中存在与该报文的源信息对应的软件表项,且交换芯片的第一hash冲突表中存在与该源信息对应的软件表项,则处理器可以确定该源信息的hash冲突被解除,并可以从交换芯片的第一hash冲突表和第二hash冲突表中删除与该源信息对应的软件表项。
在一个例子中,交换芯片在接收到报文后,在转发表中未查找到匹配该报文的目的信息的硬件表项时,则将目的未知标记添加到该报文对应的报文描述信息;在第二hash冲突表中查找到匹配该报文的目的信息的hash冲突表项时,则将目的已命中标记和第一出端口添加到该报文描述信息,该第一出端口可以基于第二hash冲突表中与该目的信息对应的hash冲突表项确定。交换芯片根据该报文描述信息确定出端口是第一出端口,并通过第一出端口发送该报文。
在一个例子中,交换芯片在接收到报文后,在转发表中查找到匹配该报文的目的信息的硬件表项时,则将目的已知标记和第二出端口添加到该报文对应的报文描述信息中;在第二hash冲突表中查找到匹配该报文的目的信息的hash冲突表项时,则将目的已命中标记和第三出端口添加到该报文描述信息中。其中,第二出端口可以基于转发表中与所述目的信息对应的硬件表项确定,第三出端口可以基于第二hash冲突表中与所述目的信息对应的hash冲突表项确定。
进一步的,若该报文描述信息命中第三ACL规则,则交换芯片可以为第二出端口设置选中状态,并可以根据该报文描述信息确定出端口是第二出端口,然后,交换芯片可以通过该第二出端口发送该报文;其中,该第三ACL规则的匹配选项可以包括:目的已知标记和目的已命中标记,该第三ACL规则的动作选项可以包括:为基于转发表添加的第二出端口设置选中状态。
在一个例子中,该第三ACL规则的动作选项还可以包括上送处理器;因此,交换芯片确定该报文描述信息命中第三ACL规则后,还可以将该报文发送给处理器。进一步的,处理器在接收到该报文后,若交换芯片的转发表中存在与该报文的目的信息对应的软件表项,且交换芯片的第二hash冲突表中存在与该目的信息对应的软件表项,则确定该目的信息的hash冲突被解除,并从交换芯片的第一hash冲突表和第二hash冲突表中删除与该目的信息对应的软件表项。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种网络设备,其特征在于,所述网络设备包括交换芯片和处理器,所述交换芯片包括二层模块、精确匹配模块和ACL管理模块,其中:
所述二层模块,用于在接收到报文后,在转发表中未查找到匹配所述报文的源信息的硬件表项时,则将源未知标记添加到所述报文对应的报文描述信息,并将所述报文和所述报文描述信息发送给精确匹配模块;
所述精确匹配模块,用于在接收到报文和报文描述信息后,在第一hash冲突表中未查找到匹配所述报文的源信息的hash冲突表项时,则将源未命中标记添加到报文描述信息,将所述报文和所述报文描述信息发送给ACL管理模块;
所述ACL管理模块,用于在接收到报文和报文描述信息后,若所述报文描述信息命中第一ACL规则,则将所述报文发送给处理器;所述第一ACL规则的匹配选项包括源未知标记和源未命中标记,动作选项包括上送处理器;
所述处理器,用于在接收到报文后,确定所述报文的源信息对应的软件表项,若未成功将所述软件表项同步到所述二层模块的转发表,则确定所述源信息发生hash冲突,并将所述软件表项下发到精确匹配模块的第一hash冲突表。
2.根据权利要求1所述的网络设备,其特征在于,
所述二层模块将源未知标记添加到所述报文对应的报文描述信息时具体用于:在所述转发表中学习与所述源信息对应的硬件表项,并将源未知标记添加到所述报文对应的报文描述信息;或者,在所述转发表中学习与所述源信息对应的硬件表项,若未成功将所述硬件表项学习到所述转发表,则确定所述源信息发生hash冲突,并将源未知标记添加到所述报文对应的报文描述信息。
3.根据权利要求1所述的网络设备,其特征在于,
所述二层模块,还用于在接收到报文后,在转发表中查找到匹配所述报文的源信息的硬件表项时,则将源已知标记添加到所述报文对应的报文描述信息,并将所述报文和所述报文描述信息发送给精确匹配模块;
所述精确匹配模块,还用于在接收到报文和报文描述信息后,在第一hash冲突表中查找到匹配所述报文的源信息的hash冲突表项时,将源已命中标记添加到所述报文描述信息,将所述报文和所述报文描述信息发送给ACL管理模块;
所述ACL管理模块,还用于在接收到报文和报文描述信息后,若所述报文描述信息命中第二ACL规则,则将所述报文发送给处理器;所述第二ACL规则的匹配选项包括源已知标记和源已命中标记,动作选项包括上送处理器;
所述处理器,还用于在接收到报文后,若所述二层模块的转发表中存在与所述报文的源信息对应的软件表项,且所述精确匹配模块的第一hash冲突表中存在与所述源信息对应的软件表项,则确定所述源信息的hash冲突被解除,并从所述精确匹配模块的第一hash冲突表中删除与所述源信息对应的软件表项。
4.根据权利要求1所述的网络设备,其特征在于,
所述二层模块,还用于在接收到报文后,在转发表中未查找到匹配所述报文的目的信息的硬件表项时,则将目的未知标记添加到所述报文对应的报文描述信息,并将所述报文和所述报文描述信息发送给精确匹配模块;
所述精确匹配模块,还用于在接收到报文和报文描述信息后,在第二hash冲突表中查找到匹配所述报文的目的信息的hash冲突表项时,则将目的已命中标记和第一出端口添加到所述报文描述信息,将所述报文和报文描述信息发送给ACL管理模块;所述第一出端口基于所述目的信息对应的hash冲突表项确定;
所述网络设备还包括转发决策模块;所述ACL管理模块,还用于在接收到报文和报文描述信息后,将所述报文和所述报文描述信息发送给转发决策模块;
所述转发决策模块,用于在接收到报文和报文描述信息后,根据所述报文描述信息确定出端口是第一出端口,并通过所述第一出端口发送所述报文。
5.根据权利要求1所述的网络设备,其特征在于,
所述二层模块,还用于在接收到报文后,在转发表中查找到匹配所述报文的目的信息的硬件表项时,则将目的已知标记和第二出端口添加到所述报文对应的报文描述信息,并将所述报文和所述报文描述信息发送给精确匹配模块;其中,所述第二出端口基于转发表中与所述目的信息对应的硬件表项确定;
所述精确匹配模块,还用于在接收到报文和报文描述信息后,在第二hash冲突表中查找到匹配所述报文的目的信息的hash冲突表项时,则将目的已命中标记和第三出端口添加到报文描述信息,将所述报文和报文描述信息发送给ACL管理模块;所述第三出端口基于与所述目的信息对应的hash冲突表项确定;
所述网络设备还包括转发决策模块;所述ACL管理模块,还用于在接收到报文和报文描述信息后,若所述报文描述信息命中第三ACL规则,则为所述第二出端口设置选中状态,并将所述报文和所述报文描述信息发送给转发决策模块;所述第三ACL规则的匹配选项包括目的已知标记和目的已命中标记,动作选项包括为所述二层模块添加的第二出端口设置选中状态;
所述转发决策模块,用于在接收到报文和报文描述信息后,根据所述报文描述信息确定出端口是第二出端口,并通过所述第二出端口发送所述报文。
6.根据权利要求5所述的网络设备,其特征在于,
所述第三ACL规则的动作选项还包括上送处理器;
所述ACL管理模块,还用于将所述报文发送给所述处理器;
所述处理器,还用于在接收到报文后,若二层模块的转发表中存在与所述报文的目的信息对应的软件表项,且精确匹配模块的第二hash冲突表中存在与所述目的信息对应的软件表项,则确定所述目的信息的hash冲突被解除,并从所述精确匹配模块的第二hash冲突表中删除与所述目的信息对应的软件表项。
7.根据权利要求4-6任一项所述的网络设备,其特征在于,
所述处理器,还用于在将所述软件表项下发到精确匹配模块的第一hash冲突表之后,将所述软件表项下发到精确匹配模块的第二hash冲突表;
其中,所述第一hash冲突表用于存储hash冲突的源信息,且所述第一hash冲突表用于源信息学习;所述第二hash冲突表用于存储hash冲突的源信息,且所述第二hash冲突表用于目的信息查找。
8.一种表项学习方法,其特征在于,应用于网络设备,所述方法包括:
所述网络设备的交换芯片在接收到报文后,在转发表中未查找到匹配所述报文的源信息的硬件表项时,则将源未知标记添加到所述报文对应的报文描述信息;在第一hash冲突表中未查找到匹配所述报文的源信息的hash冲突表项时,则将源未命中标记添加到所述报文描述信息;若所述报文描述信息命中第一ACL规则,则将所述报文发送给所述网络设备的处理器;其中,所述第一ACL规则的匹配选项包括源未知标记和源未命中标记,动作选项包括上送处理器;
所述处理器在接收到报文后,确定所述报文的源信息对应的软件表项,若未成功将所述软件表项同步到所述交换芯片的转发表,则确定所述源信息发生hash冲突,并将所述软件表项下发到所述交换芯片的第一hash冲突表。
9.根据权利要求8所述的方法,其特征在于,
所述交换芯片将源未知标记添加到所述报文对应的报文描述信息,包括:
在所述转发表中学习与所述源信息对应的硬件表项,并将源未知标记添加到所述报文对应的报文描述信息;或者,在所述转发表中学习与所述源信息对应的硬件表项,若未成功将所述硬件表项学习到所述转发表,则确定所述源信息发生hash冲突,并将源未知标记添加到所述报文对应的报文描述信息。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述交换芯片在接收到报文后,在转发表中查找到匹配所述报文的源信息的硬件表项时,则将源已知标记添加到报文描述信息;在第一hash冲突表中查找到匹配所述报文的源信息的hash冲突表项时,则将源已命中标记添加到所述报文描述信息;若所述报文描述信息命中第二ACL规则,则将所述报文发送给处理器;第二ACL规则的匹配选项包括源已知标记和源已命中标记,动作选项包括上送处理器;
所述处理器在接收到报文后,若所述交换芯片的转发表中存在与所述报文的源信息对应的软件表项,且所述交换芯片的第一hash冲突表中存在与所述源信息对应的软件表项,则确定所述源信息的hash冲突被解除,并从所述交换芯片的第一hash冲突表中删除与所述源信息对应的软件表项。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述交换芯片在接收到报文后,在转发表中未查找到匹配所述报文的目的信息的硬件表项时,将目的未知标记添加到所述报文对应的报文描述信息;
在第二hash冲突表中查找到匹配所述报文的目的信息的hash冲突表项时,则将目的已命中标记和第一出端口添加到所述报文描述信息,其中,所述第一出端口基于所述目的信息对应的hash冲突表项确定;根据所述报文描述信息确定出端口是第一出端口,并通过所述第一出端口发送所述报文。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述交换芯片在接收到报文后,在转发表中查找到匹配所述报文的目的信息的硬件表项时,则将目的已知标记和第二出端口添加到所述报文对应的报文描述信息;所述第二出端口基于转发表中与所述目的信息对应的硬件表项确定;
在第二hash冲突表中查找到匹配所述报文的目的信息的hash冲突表项时,则将目的已命中标记和第三出端口添加到所述报文描述信息,其中,所述第三出端口基于与所述目的信息对应的hash冲突表项确定;
若所述报文描述信息命中第三ACL规则,则为所述第二出端口设置选中状态,根据所述报文描述信息确定出端口是第二出端口,通过所述第二出端口发送所述报文;其中,所述第三ACL规则的匹配选项包括目的已知标记和目的已命中标记,动作选项包括为基于转发表添加的第二出端口设置选中状态。
13.根据权利要求12所述的方法,其特征在于,
所述第三ACL规则的动作选项包括上送处理器;所述交换芯片确定所述报文描述信息命中第三ACL规则后,将所述报文发送给所述处理器;
所述处理器在接收到所述报文后,若所述交换芯片的转发表中存在与所述报文的目的信息对应的软件表项,且所述交换芯片的第二hash冲突表中存在与所述目的信息对应的软件表项,则确定所述目的信息的hash冲突被解除,并从所述交换芯片的第二hash冲突表中删除与所述目的信息对应的软件表项。
14.根据权利要求11-13任一项所述的方法,其特征在于,所述处理器将所述软件表项下发到所述交换芯片的第一hash冲突表之后,所述方法还包括:
将所述软件表项下发到所述交换芯片的第二hash冲突表;
其中,所述第一hash冲突表用于存储hash冲突的源信息,且所述第一hash冲突表用于源信息学习;所述第二hash冲突表用于存储hash冲突的源信息,且所述第二hash冲突表用于目的信息查找。
CN201810785621.3A 2018-07-17 2018-07-17 一种网络设备及表项学习方法 Active CN108848034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810785621.3A CN108848034B (zh) 2018-07-17 2018-07-17 一种网络设备及表项学习方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810785621.3A CN108848034B (zh) 2018-07-17 2018-07-17 一种网络设备及表项学习方法

Publications (2)

Publication Number Publication Date
CN108848034A CN108848034A (zh) 2018-11-20
CN108848034B true CN108848034B (zh) 2021-04-27

Family

ID=64197726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810785621.3A Active CN108848034B (zh) 2018-07-17 2018-07-17 一种网络设备及表项学习方法

Country Status (1)

Country Link
CN (1) CN108848034B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181825B (zh) * 2019-12-31 2021-12-21 智车优行科技(北京)有限公司 信息处理方法和装置、电子设备和存储介质
CN112087388B (zh) * 2020-08-17 2022-03-08 深圳市风云实业有限公司 一种l2数据报文的转发方法
CN111935021B (zh) * 2020-09-27 2020-12-25 翱捷智能科技(上海)有限公司 一种快速匹配网络数据包的方法及系统
CN112468413B (zh) * 2020-11-26 2023-04-25 迈普通信技术股份有限公司 报文处理方法、装置、电子设备及存储介质
CN112702268B (zh) * 2020-12-22 2022-10-21 新华三技术有限公司 一种配置转发表项的方法及装置
CN113905416B (zh) * 2021-09-16 2024-04-16 锐捷网络股份有限公司 VoLTE报文的处理方法及装置
CN114390008B (zh) * 2021-11-22 2024-04-02 裕太微电子股份有限公司 一种以太网二层转发表的学习方法及系统
CN114422478A (zh) * 2021-12-21 2022-04-29 福建星网智慧科技有限公司 一种gemport id和mac地址映射的方法和存储设备
CN116346746B (zh) * 2023-05-12 2023-08-15 之江实验室 一种多级可编程编辑的报文处理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232444A (zh) * 2008-01-22 2008-07-30 杭州华三通信技术有限公司 哈希冲突解决方法、装置及具有该装置的交换设备
CN102710813A (zh) * 2012-06-21 2012-10-03 杭州华三通信技术有限公司 一种mac地址表项存取方法和设备
CN103001878A (zh) * 2012-11-26 2013-03-27 中兴通讯股份有限公司 Mac地址哈希冲突的确定方法及装置
CN103731355A (zh) * 2013-12-31 2014-04-16 迈普通信技术股份有限公司 避免mac地址学习时哈希冲突的方法及系统
WO2016183732A1 (zh) * 2015-05-15 2016-11-24 华为技术有限公司 一种数据包转发方法和网络设备
CN107547408A (zh) * 2017-07-28 2018-01-05 新华三技术有限公司 一种mac地址哈希冲突的处理方法和装置
CN107770076A (zh) * 2016-08-23 2018-03-06 中兴通讯股份有限公司 一种哈希冲突的处理方法、装置及交换设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820383B (zh) * 2010-01-27 2014-12-10 中兴通讯股份有限公司 限制交换机远程访问的方法及装置
US8312066B2 (en) * 2010-11-30 2012-11-13 Telefonaktiebolaget L M Ericsson (Publ) Hash collision resolution with key compression in a MAC forwarding data structure
CN102724131B (zh) * 2012-06-29 2016-08-03 杭州华三通信技术有限公司 一种ip报文等价路由均衡实现的方法及装置
CN106301970A (zh) * 2016-10-27 2017-01-04 盛科网络(苏州)有限公司 一种使用转发表收敛以减少tcam表项消耗的芯片实现方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232444A (zh) * 2008-01-22 2008-07-30 杭州华三通信技术有限公司 哈希冲突解决方法、装置及具有该装置的交换设备
CN102710813A (zh) * 2012-06-21 2012-10-03 杭州华三通信技术有限公司 一种mac地址表项存取方法和设备
CN103001878A (zh) * 2012-11-26 2013-03-27 中兴通讯股份有限公司 Mac地址哈希冲突的确定方法及装置
CN103731355A (zh) * 2013-12-31 2014-04-16 迈普通信技术股份有限公司 避免mac地址学习时哈希冲突的方法及系统
WO2016183732A1 (zh) * 2015-05-15 2016-11-24 华为技术有限公司 一种数据包转发方法和网络设备
CN107770076A (zh) * 2016-08-23 2018-03-06 中兴通讯股份有限公司 一种哈希冲突的处理方法、装置及交换设备
CN107547408A (zh) * 2017-07-28 2018-01-05 新华三技术有限公司 一种mac地址哈希冲突的处理方法和装置

Also Published As

Publication number Publication date
CN108848034A (zh) 2018-11-20

Similar Documents

Publication Publication Date Title
CN108848034B (zh) 一种网络设备及表项学习方法
CN107547391B (zh) 一种报文传输方法和装置
CN108683668B (zh) 内容分发网络中的资源校验方法、装置、存储介质及设备
EP3451592B1 (en) Packet transmission between vxlan domains
CN108600109B (zh) 一种报文转发方法和装置
CN108259346B (zh) 一种等价路由表项建立方法和装置
US20220045875A1 (en) Multicast message processing method and apparatus, storage medium and processor
CN108390954B (zh) 一种报文传输方法和设备
CN106921578B (zh) 一种转发表项的生成方法和装置
CN107040393B (zh) 一种路由管理方法和设备
US10652145B2 (en) Managing data frames in switched networks
CN109032533B (zh) 一种数据存储方法、装置和设备
CN106603736B (zh) Mac地址处理方法及装置
CN108234422B (zh) 资源调度方法及装置
CN108683617B (zh) 报文分流方法、装置及分流交换机
CN107547400B (zh) 一种虚拟机迁移方法和装置
CN108683615B (zh) 报文分流方法、装置及分流交换机
CN108259348B (zh) 一种报文传输方法和装置
CN107547535B (zh) 防攻击的mac地址学习方法、装置和网络设备
CN112948313A (zh) 一种会话数据的管理方法和装置
CN106850382B (zh) 一种流量牵引方法及装置
CN111953599B (zh) 一种终端权限控制方法、装置、电子设备及存储介质
CN109413225B (zh) 一种mac表项处理方法和设备
US20220231945A1 (en) Message matching table lookup method, system, storage medium, and terminal
US20220360519A1 (en) Method and device for packet forwarding

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