CN113691452B - 转变多级混合层次化转发信息库格式 - Google Patents

转变多级混合层次化转发信息库格式 Download PDF

Info

Publication number
CN113691452B
CN113691452B CN202010849397.7A CN202010849397A CN113691452B CN 113691452 B CN113691452 B CN 113691452B CN 202010849397 A CN202010849397 A CN 202010849397A CN 113691452 B CN113691452 B CN 113691452B
Authority
CN
China
Prior art keywords
forwarding
translated
next hop
entries
hop entries
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
CN202010849397.7A
Other languages
English (en)
Other versions
CN113691452A (zh
Inventor
M·拜拉普拉·多德高达
P·拉马普拉赛德
P·科迪亚
R·曼朱纳斯
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.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
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 Juniper Networks Inc filed Critical Juniper Networks Inc
Priority to CN202211400592.7A priority Critical patent/CN115801673A/zh
Publication of CN113691452A publication Critical patent/CN113691452A/zh
Application granted granted Critical
Publication of CN113691452B publication Critical patent/CN113691452B/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
    • 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

Abstract

本公开的实施例涉及转变多级混合层次化转发信息库格式。一种网络设备可以接收与网络设备的多级混合层次结构转发信息库相关联的转发数据。网络设备可以处理转发数据,以生成转变后的转发下一跳条目的第一集合。网络设备可以处理与默认转发类别相关联的转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合。网络设备可以处理与所有业务类别相关联的转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合。网络设备可以基于转变后的组下一跳条目来对转变后的转发下一跳条目的多个集合进行聚集,以生成转变后的转发下一跳条目的最终集合。网络设备可以将转变后的转发下一跳条目的最终集合转变成特定格式。

Description

转变多级混合层次化转发信息库格式
相关申请的交叉引用
本申请要求于2020年5月18日提交的名称为“TRANSFORMING A MULTI-LEVELHYBRID HIERARCHICAL FORWARDING INFORMATION BASE FORMAT”的印度临时申请第202041020812号的优先权。该申请的全部内容通过引用明确地并入本文中。
背景技术
转发信息库(FIB)可以是包括转发数据(诸如标识目的地的信息、标识通向目的地的路由中的下一跳的信息等)的数据结构。网络设备可以在FIB中执行查找,以标识转发数据并且使用转发数据来将分组转发至目的地。
发明内容
根据一些实现,一种方法可以包括:由网络设备接收与网络设备的多级(multi-level)混合层次结构转发信息库相关联的转发数据;由网络设备处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;由网络设备处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;由网络设备处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;由网络设备基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集(group),以生成转变后的转发下一跳条目的最终集合;由网络设备将转变后的转发下一跳条目的最终集合转变成特定格式;以及由网络设备将呈特定格式的转变后的转发下一跳条目的最终集合存储在转发信息库中。
根据一些实现,一种网络设备可以包括一个或多个存储器和一个或多个处理器。在一些实现中,一个或多个处理器被通信地耦合至一个或多个存储器。一个或多个处理器可以被配置为:接收与网络设备的多级混合层次结构转发信息库相关联的转发数据;处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合;将转变后的转发下一跳条目的最终集合转变成特定格式;接收与网络相关联的业务;以及基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务。
根据一些实现,一种非瞬态计算机可读介质可以存储一个或多个指令。该一个或多个指令在由网络设备的一个或多个处理器执行时可以使一个或多个处理器:接收与网络设备的多级混合层次结构转发信息库相关联的转发数据;处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合;将转变后的转发下一跳条目的最终集合转变成特定格式;将呈特定格式的转变后的转发下一跳条目的最终集合存储在转发信息库中;接收与网络相关联的业务;以及基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务。
附图说明
图1A至图1L是本文中所描述的一种或多种示例实现的示意图。
图2是可以实现本文中所描述的系统和/或方法的示例环境的示意图。
图3是图2的一个或多个设备的示例组件的示意图。
图4是图2的一个或多个设备的示例组件的示意图。
图5至图7是与转变多级混合层次化转发信息库(FIB)格式相关的示例过程的流程图。
具体实施方式
示例实现的以下详细描述参照附图。不同绘图中的相同附图标记可以标识相同或类似元件。
网络设备上的FIB可以存储与大量(例如约数百万个)目的地相关联的转发数据。FIB可以是包括多个级(level)的层次化FIB。可以将由网络设备接收到的传入业务分类为不同转发类别(class)。可以在层次结构中的不同级下将传入业务路由至不同出站接口。网络设备可以在层次结构中的不同级下分发业务(例如做出负载共享决策)。
在一些层次化FIB(诸如多级混合层次化FIB)中,可以存在一个或多个子层次结构。特定子层次结构可以被配置为处理传入业务的特定转发类别(例如不同子层次结构可以被配置为处理不同转发类别),可以在不具有转发类别配置的情况下配置特定子层次结构等。结果,由于FIB的特定子层次结构可能无法针对将经由路由被转发的业务标识所有转发类别的业务分发,因此网络设备可能无法针对路由确定跨网络设备的出站接口的业务分发。这可能会浪费与在使用这种多级混合层次化FIB时确定跨网络设备的出站接口的业务分发相关联的计算资源(例如处理资源、存储器资源等)、联网资源等。
本文中所描述的一些实现使得网络设备能够转变多级混合层次化FIB格式。例如,网络设备可以处理与网络设备的多级混合层次结构FIB相关联的转发数据,以生成转变后的组下一跳条目和/或转变后的转发下一跳条目的集合。网络设备可以处理转变后的组下一跳条目和/或转变后的转发下一跳条目的集合,以生成转变后的转发下一跳条目的一个或多个附加集合(例如包括来自转变后的转发下一跳条目的集合的一个或多个缺失的转变后的下一跳条目、转变后的转发下一跳条目的集合中的一个或多个新的转变后的下一跳条目等)。可以基于转变后的组下一跳条目(例如基于与转变后的转发下一跳条目相关联的转发类别)将转变后的转发下一跳条目的集合聚集在一起,以形成转变后的转发下一跳条目的最终集合。网络设备可以将转变后的转发下一跳条目的最终集合转变成特定格式(例如该特定格式被配置为表示针对所有转发类别的所有业务分发)。
网络设备可以接收业务并且可以基于呈特定格式的转变后的转发下一跳条目的最终集合来转发该业务。结果,可以使得网络设备能够针对与网络相关联的所有业务转发类别确定跨出站接口的业务分发。这可以节省计算资源和/或网络资源,否则该计算资源和/或网络资源将会被用于使用多级混合层次化FIB格式来确定针对给定目的地和特定转发类别的业务分发(例如其可以不包括针对目的地的所有转发类别的完全业务分发)。
图1A至图1L是与确定混合层次化转发信息库(FIB)中的业务分发相关联的一个或多个示例100的示意图。如图1A至图1L中所示,示例100包括经由网络通信的一个或多个端点设备和一个或多个网络设备。
如图1A中所示,一个或多个网络设备中的网络设备可以包括用于针对多个目的地(诸如端点设备、另一网络设备等)存储转发数据的FIB。FIB可以是将与一个或多个目的地相关联的转发数据存储在网络中、存储在另一网络中等的数据结构。与目的地相关联的转发数据可以包括:标识目的地的地址的信息(例如互联网协议(IP)地址、端口地址等)、标识通向目的地的路由中的下一跳的信息、标识与目的地相关联的接口的信息(例如介质访问控制(MAC)标识符)等。目的地可以是端点设备、另一网络设备等。
网络设备可以接收、处理和/或传输分组。分组可以是数据面分组(例如通过网络设备行进的并且不是在网络设备处发起或终止的分组)、控制面分组(例如在网络设备的控制面中发起(例如由网络设备生成)或在网络设备的控制面中终止(例如网络设备是分组的目的地)的分组)等。网络设备可以接收分组,在网络设备上的FIB中执行查找以标识与分组相关联的转发数据(例如标识分组的目的地的信息、标识通向目的地的路由中的下一跳的信息等),并且基于转发数据来将分组传输给下一跳。
网络设备可以基于各种技术来填充并维护FIB中的转发数据。例如,网络设备可以基于一个或多个路由协议(诸如路由信息协议(RIP)、开放式最短路径优先(OSPF)协议、边界网关协议(BGP)、内部网关路由协议(IGRP)、增强型IGRP(EIGRP)、距离-矢量路由协议、中间系统到中间系统协议(IS-IS)协议等)来学习网络中的路由和/或对网络中的路由的更新,并且可以将标识路由和/或对路由的更新的信息作为转发数据存储在FIB中。在一些实现中,FIB可以填充有静态转发数据,该静态转发数据可以是由用户(诸如网络管理员)配置和/或维护的转发数据。
网络设备和/或FIB可以包括用于确定由网络设备接收到的分组的转发类别的一个或多个分类器表(table)。转发类别可以是基于传入分组的参数(例如分组代码点值等)中的一个或多个而被指派给传入分组的组和/或标识符。转发类别可以使得网络设备能够将分组聚集成不同分类,然后可以使用这些分组来定义每跳(per-hop)行为(PHB),将分组指派给输出队列以进行传输等。转发类别可以使得网络设备能够对分组进行聚集以进行传输并且将分组指派给一个或多个输出队列。转发类别可以标识分组的优先级,标识针对分组的递送协议(例如尽力递送等)等。网络设备可以通过标识分组的报头中的条目(例如差分服务代码点(DSCP)条目、服务类型(ToS)条目等)来确定分组的转发类别。网络设备可以(例如使用查找操作)标识分类器表中的条目(对应于分组的报头中的条目),该条目标识转发类别(例如分类器表可以将分组的报头中的条目与转发类别相关联)。网络设备和/或FIB可以包括与特定传入接口、特定目的地等相关联的分类器表。如上文所描述,在接收到分组后,网络设备可以确定与分组相关联的转发类别。网络设备可以生成转发类别信息(例如指示转发类别),并且可以将转发类别信息包括在分组内(例如包括在分组的报头内)。
针对网络设备的传入分组可以在FIB的层次结构的不同级下被分割成路由的多条路径。例如,网络设备可以基于存储在FIB中的转发数据来确定要基于分组的转发类别来将传出路径隔离。在一些实现中,FIB的特定层次结构可以被配置成处理所有转发类别的子集,或FIB的特定层次结构可以在不具有基于转发类别的转发协议的情况下进行配置。例如,FIB可以具有混合层次化FIB(例如包括基于混合类别的转发层次结构)格式。
如图1B中所示,示例混合层次化FIB格式可以包括与通向目的地的路由相关联的转发数据。例如,FIB可以存储与关联于路由(例如路由R1)的目的地前缀(例如IP路由,诸如1.1.11.4/32)相关联的转发数据。转发数据可以标识与路由前缀相关联的顶级下一跳(例如unilist1),该顶级下一跳是与路由相关联的第一下一跳。转发数据可以针对路由标识一种或多种类型的转发下一跳(例如针对其他网络设备或网络实体)。一种或多种类型的转发下一跳可以包括聚合(aggregate)下一跳、间接下一跳、带有索引的下一跳、转发下一跳等。
聚合下一跳可以是等成本多路径(ECMP)下一跳。聚合下一跳可以标识一个或多个下一跳(例如在聚合下一跳之后的下一跳)。通向来自聚合下一跳的一个或多个下一跳的路径可以与一个或多个参数(例如权重、平衡等)相关联。权重参数可以标识路径的优先级(例如,最低权重值可以标识主要路径,更高权重值可以标识备份或不活动的路径等)。平衡参数可以标识将被应用于具有相同权重的路径之间的业务的负载平衡(例如与路径相关联的平衡值30可以指示应该经由该路径传输来自聚合下一跳的业务的30%)。来自聚合下一跳的所有路径的平衡参数之和可以等于进入聚合下一跳的总业务平衡(例如,如果进入聚合下一跳的业务平衡为100,那么来自聚合下一跳的所有路径的平衡参数之和可以是100)。
间接下一跳可以标识转发数据的间接下一跳(例如从间接下一跳至聚合下一跳、带有索引的下一跳等)。间接下一跳对于多条路由可以是公共的。带有索引的下一跳可以标识从带有索引的下一跳至转发下一跳的一条或多条路径。一条或多条路径中的路径可以与转发类别相关联。例如,转发数据可以标识从带有索引的下一跳至3个转发下一跳的3条路径。第一路径可以与第一转发类别相关联,第二路径可以与第二转发类别相关联,并且第三路径可以与剩余的转发类别相关联(例如除了第一转发类别和第二转发类别之外的所有其他转发类别)。转发下一跳可以与网络设备的(例如关联于业务的目的地的)出站接口相关联。例如,转发下一跳可以与针对目的地的单播传输(例如一对一传输)相关联。转发下一跳可以与传出计算权重相关联。传出计算权重可以指示与转发下一跳和/或对应出站接口相关联的业务平衡(例如可以指示将被分发至转发下一跳的业务的百分比或比率)。
例如,如图1B中所示,示例多级混合层次化FIB格式可以包括针对标识顶级下一跳(例如unilist1)的路由R1的主要路径的转发数据。转发数据可以标识在顶级下一跳之后的三个间接下一跳(例如indirect1、indirect2以及indirect3)。转发数据可以标识从unilist1至indirect1的路径具有平衡30(例如指示来自unilist1的业务的30%与该路径相关联),从unilist1至indirect2的路径具有平衡30(例如指示来自unilist1的业务的30%与该路径相关联),并且从unilist1至indirect3的路径具有平衡40(例如指示来自unilist1的业务的40%与该路径相关联)。
转发数据可以标识应该将来自indirect1的业务转发至unilist2。由于unilist2可以是聚合下一跳,因此unilist2可以将业务均等地分割至从unilist2至转发下一跳(例如unicast1和unicast2)的不同路径(例如针对每条路径,平衡为50)。在一些实现中,unicast1与unicast2之间的业务分割可以不是相等的(例如在不同平衡由转发数据指示的情况下)。由于进入unilist2的业务平衡为30,因此从unilist2至unicast1的路径的传出计算权重可以为15(例如30的50%),并且从unilist2至unicast2的路径的传出计算权重可以为15(例如两条路径之间的总数为30)。来自unilist2的路径可以不符合基于类别的转发。即,来自unilist2的路径可以不与任何特定转发类别相关联(例如路径可以用于所有转发类别)。
转发数据可以标识应该将来自indirect2的业务发送至indexed1。转发数据可以标识从indexed1至转发下一跳(例如unicast3、unicast4以及unicast5)的路径与特定转发类别相关联。例如,从indexed1至unicast3的路径可以与第一转发类别(例如FC 0)相关联,从indexed1至unicast4的路径可以与第二转发类别(例如FC 1)相关联,并且从indexed1至unicast5的路径可以与默认转发类别(例如未通过indexed1具体标识的所有转发类别)相关联。来自indexed1的路径可以与同进入indexed1的业务平衡相同的平衡相关联(例如,来自indexed1的三条路径中的每一条可以与传出计算权重30相关联)。
转发数据可以标识应该将来自indirect3的业务发送至indexed3。转发数据可以标识从indexed3至转发下一跳(例如unicast6、unicast7以及unicast8)的路径与特定转发类别相关联。例如,从indexed2至unicast6的路径可以与第一转发类别(例如FC 0)相关联,从indexed2至unicast7的路径可以与第三转发类别(例如FC 2)相关联,并且从indexed1至unicast5的路径可以与默认转发类别(例如未通过indexed2具体标识的所有转发类别)相关联。来自indexed2的路径可以与同进入indexed2的业务平衡相同的平衡相关联(例如,来自indexed2的三条路径中的每一条可以与传出计算权重40相关联)。
在一些实现中,转发数据可以标识在图1B中未示出的一条或多条附加路径。附加路径可以与备份或不活动的路径相关联(例如转发数据可以标识附加路径的权重大于10)。示例多级混合层次化FIB格式可以是混合的,这是因为FIB包括基于类别的转发(例如来自带有索引的下一跳)和非基于类别的转发(例如来自聚合下一跳,诸如unilist2)。多级混合层次化FIB格式可以包括4个级(例如第一级的unilist1;第二级的indirect1、indirect2以及indirect3;第三级的unilist2、indexed1以及indexed2;以及第四级的unicast1至unicast8)。在一些实现中,多级混合层次化FIB格式可以包括多于或少于4个级。
如图1C中由附图标记105所示,网络设备可以接收与多级混合层次结构FIB(例如上文相对于图1B所描述的多级混合层次结构FIB)相关联的转发数据。如由附图标记110所示,网络设备可以处理转发数据,以标识顶级下一跳条目,创建条件转变后的组下一跳(CTGNH)条目,并且生成转变后的组下一跳条目(TGs)和转变后的转发下一跳条目(Ts)。如上文所描述,针对路由R1的转发数据可以标识顶级下一跳条目是unilist1。条件转变后的组下一跳条目可以基于所标识的顶级下一跳条目(例如条件转变后的组下一跳条目可以是所标识的顶级下一跳条目)。
转变后的组下一跳条目可以标识一个或多个转变后的转发下一跳条目。转变后的组下一跳条目可以包括与相同转发类别相关联的一个或多个转变后的转发下一跳条目。例如,第一转变后的组下一跳条目可以包括与第一转发类别(例如FC 0)相关联的一个或多个转变后的转发下一跳条目,第二转变后的组下一跳条目可以包括与第二转发类别(例如FC1)相关联的一个或多个转变后的转发下一跳条目等等。
转变后的转发下一跳条目可以标识传出计算权重、转发类别、出站接口和/或其他转发信息(例如从顶级下一跳至转发下一跳的一个或多个下一跳)。例如,转变后的转发下一跳条目可以是与路由R1相关联的路径。
网络设备可以基于在转发数据中所标识的转发下一跳的类型来处理转发数据。例如,如果转发下一跳的类型是间接下一跳,那么网络设备可以处理转发数据,以标识转发数据中的在间接下一跳之后的下一条目。如果转发下一跳的类型是带有索引的下一跳,那么网络设备可以确定一个或多个子下一跳(例如在带有索引的下一跳之后的下一跳)。网络设备可以确定与从带有索引的下一跳至(多个)子下一跳的路径相关联的转发类别。网络设备可以确定与带有索引的下一跳的默认转发类别相关联的一个或多个转发类别(例如,网络设备可以确定带有索引的下一跳未明确地被配置为处理的一个或多个转发类别)。如果转发下一跳的类型是转发下一跳,那么网络设备可以创建与转发下一跳相关联的转变后的转发下一跳。
例如,网络设备可以处理与第一类型的下一跳(例如聚合下一跳)相关联的转发数据,以生成转变后的转发下一跳条目的第一子集。网络设备可以处理与第二类型的下一跳(例如间接下一跳)相关联的转发数据,以生成转变后的转发下一跳条目的第二子集。网络设备可以处理与第三类型的下一跳(例如带有索引的下一跳)相关联的转发数据,以生成转变后的转发下一跳条目的第三子集。网络设备可以处理与第四类型的下一跳(例如转发下一跳)相关联的转发数据,以生成转变后的转发下一跳条目的第四子集。网络设备可以组合转变后的转发下一跳条目的第一子集、转变后的转发下一跳条目的第二子集、转变后的转发下一跳条目的第三子集以及转变后的转发下一跳条目的第四子集,以生成转变后的转发下一跳条目的第一集合。转变后的转发下一跳条目的第一集合可以标识与针对出站接口(例如如图1B中所示,针对转发下一跳或单播)的路径相关联的每个下一跳。转变后的转发下一跳条目可以与网络设备的对应出站接口相关联。
如图1D中所示,转变后的转发下一跳条目的第一集合可以包括:(例如与unicast1相关联的)T4、(例如与unicast2相关联的)T8、(例如与unicast3相关联的)T9、(例如与unicast4相关联的)T10、(例如与unicast5相关联的)T12、(例如与unicast6相关联的)T13、(例如与unicast7相关联的)T14以及(例如与unicast8相关联的)T16。转变后的转发下一跳条目可以标识相关联的路径。例如,T4可以标识从unilist1至indirect1至unilist2至unicast1的路径,T10可以标识从unilist1至indirect2至indexed1至unicast4的路径等等。转变后的转发下一跳条目可以标识相关联的传出计算权重。例如,T4可以标识传出计算权重15,T10可以标识传出计算权重30,T14可以标识传出计算权重40等等。转变后的转发下一跳条目可以标识相关联的转发类别。例如,T4可以标识所有转发类别与T4相关联,T9可以标识FC 0的相关联的转发类别,T10可以标识FC 1的相关联的转发类别,T14可以标识FC 2的相关联的转发类别等等。
转变后的组下一跳条目可以包括与第一转发类别(例如FC 0)相关联的第一转变后的组下一跳条目、与第二转发类别(例如FC 1)相关联的第二转变后的组下一跳条目、与第三转发类别(例如FC 2)相关联的第三转变后的组下一跳条目、与默认转发类别(例如FCD)相关联的第四转变后的组下一跳条目等。第一转变后的组下一跳条目可以包括与第一转发类别相关联的一个或多个转变后的转发下一跳条目(例如T9和T13)。第二转变后的组下一跳条目可以包括与第二转发类别相关联的一个或多个转变后的转发下一跳条目(例如T10)。第三转变后的组下一跳条目可以包括与第三转发类别相关联的一个或多个转变后的转发下一跳条目(例如T14)。第四转变后的组下一跳条目可以包括与默认转发类别相关联的一个或多个转变后的转发下一跳条目(例如T12和T16)。T4和T8可以不被包括在转变后的组下一跳条目中,这是由于T4和T8可以不与特定转发类别相关联。
如图1E中由附图标记115所示,网络设备可以处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目,以生成缺失的转变后的转发下一跳条目。例如,网络设备可以确定与默认转发类别相关联的转发类别。网络设备可以比较与带有索引的下一跳条目相关联的转变后的转发下一跳条目,以确定缺失的转发类别。例如,网络设备可以标识与indexed1相关联的T9和T10。网络设备可以确定T9与第一转发类别(例如FC0)相关联并且T10与第二转发类别(例如FC 1)相关联。网络设备可以确定缺失了与indexed1和第三转发类别(例如FC 2)相关联的转变后的转发下一跳条目。结果,网络设备可以生成与indexed1和第三转发类别相关联的转变后的转发下一跳条目,与indexed1和第三转发类别相关联的该转变后的转发下一跳条目具有与关联于indexed1和默认转发类别的转变后的转发下一跳条目(例如T12)相同的转发信息。类似地,网络设备可以确定缺失了与indexed2和第二转发类别(例如FC 1)相关联的转变后的转发下一跳条目。结果,网络设备可以生成与indexed2和第二转发类别相关联的转变后的转发下一跳条目,与indexed2和第二转发类别相关联的转变后的转发下一跳条目具有与关联于indexed2和默认转发类别的转变后的转发下一跳条目(例如T16)相同的转发信息。
如图1F中所示,网络设备可以确定转变后的转发下一跳条目的第二集合。转变后的转发下一跳条目的第二集合可以包括缺失的转变后的转发下一跳条目(例如T11和T15)。网络设备可以基于转变后的转发下一跳条目的第二集合来更新转变后的组下一跳条目。例如,网络设备可以将T11添加至(例如与第三转发类别相关联的)第三转变后的组下一跳条目,并且可以将T15添加至(例如与第二转发类别相关联的)第二转变后的组下一跳条目。
如图1G中由附图标记120所示,网络设备可以处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目,以生成新的转变后的转发下一跳条目。例如,网络设备可以处理与聚合下一跳(例如unilist2等)相关联的转变后的转发下一跳条目。网络设备可以针对每个转发类别生成新的转变后的转发下一跳条目,该新的转变后的转发下一跳条目具有与关联于所有业务类别的转变后的转发下一跳条目相同的转发信息。例如,网络设备可以通过将T4转变成四个新的转变后的转发下一跳条目来生成新的转变后的转发下一跳条目,这四个新的转变后的转发下一跳条目具有与T4相同的转发信息,但与特定转发类别相关联。类似地,网络设备可以通过将T8转变成四个新的转变后的转发下一跳条目来生成新的转变后的转发下一跳条目。新的转变后的转发下一跳条目的数量可以基于转发类别的数量。
如图1H中所示,网络设备可以确定转变后的转发下一跳条目的第三集合。转变后的转发下一跳条目的第三集合可以包括新的转变后的转发下一跳条目。例如,新的转变后的转发下一跳条目可以包括(例如与unicast1和第一转发类别相关联的)T1、(例如与unicast1和第二转发类别相关联的)T2、(例如与unicast1和第二转发类别相关联的)T3、(例如与unicast1和默认转发类别相关联的)T4、(例如与unicast2和第一转发类别相关联的)T5、(例如与unicast2和第二转发类别相关联的)T6、(例如与unicast2和第三转发类别相关联的)T7以及(例如与unicast2和默认转发类别相关联的)T8。网络设备可以创建转变后的转发下一跳条目的最终集合,该转变后的转发下一跳条目的最终集合包括来自转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合的所有转变后的转发下一跳条目(例如T1至T16)。
网络设备可以基于转变后的转发下一跳条目的第三集合来更新转变后的组下一跳条目。例如,网络设备可以将T1和T5添加至(例如与第一转发类别相关联的)第一转变后的组下一跳条目,将T2和T6添加至(例如与第二转发类别相关联的)第二转变后的组下一跳条目,将T3和T7添加至(例如与第三转发类别相关联的)第三转变后的组下一跳条目,并且将T4和T8添加至(例如与默认转发类别相关联的)第四转变后的组下一跳条目。
结果,转变后的转发下一跳条目的最终集合可以包括与第一转发类别(例如FC 0)和转变后的组下一跳条目中的第一条目(例如第一转变后的组下一跳条目)相关联的转变后的转发下一跳条目的第一子集;与第二转发类别(例如FC 1)和转变后的组下一跳条目中的第二条目(例如第二转变后的组下一跳条目)相关联的转变后的转发下一跳条目的第二子集;与第三转发类别(例如FC 2)和转变后的组下一跳条目中的第三条目(例如第三转变后的组下一跳条目)相关联的转变后的转发下一跳条目的第三子集;以及与第四转发类别(例如默认转发类别)和转变后的组下一跳条目中的第四条目(例如第四转变后的组下一跳条目)相关联的转变后的转发下一跳条目的第四子集。
如图1I中由附图标记125所示,网络设备可以基于转变后的组下一跳条目,来对转变后的转发下一跳条目(例如转变后的转发下一跳条目的第一集合)、缺失的转变后的转发下一跳条目(例如转变后的转发下一跳条目的第二集合)以及新的转变后的转发下一跳条目(例如转变后的转发下一跳条目的第三集合)进行聚集。例如,网络设备可以基于转变后的组下一跳条目(例如基于每个转变后的组下一跳条目的转发类别),来对包括在转变后的转发下一跳条目的最终集合中的转变后的转发下一跳条目进行聚集。
如图1J中所示,网络设备可以将图1A至图1H的多级混合层次结构FIB格式(例如四个级(或更多个级)的多级混合层次结构FIB格式)转变成三级层次结构FIB格式。三个级可以包括条件转变后的组下一跳级(例如指示条件转变后的组下一跳条目)、转变后的组下一跳级(例如指示转变后的组下一跳条目)以及转变后的转发下一跳级(例如指示转变后的转发下一跳条目)。可以通过相关联的转变后的组下一跳条目和/或相关联的转发类别来对转变后的转发下一跳条目进行聚集。例如,三级层次结构FIB格式可以指示从条件转变后的组下一跳至第一转变后的组下一跳(例如TG1)的路径和通向与第一转变后的组下一跳相关联的转变后的转发下一跳条目(例如T1、T5、T9以及T13)中的每一者的路径。三级层次结构FIB格式可以指示关联于从第一转变后的组下一跳至相关联的转变后的转发下一跳的路径的传出计算权重。例如,从第一转变后的组下一跳至转变后的转发下一跳T1的路径的传出计算权重可以为15,从第一转变后的组下一跳至转变后的转发下一跳T5的路径的传出计算权重可以为15,从第一转变后的组下一跳至转变后的转发下一跳T9的路径的传出计算权重可以为30,并且从第一转变后的组下一跳至转变后的转发下一跳T13的路径的传出计算权重可以为40。来自第一转变后的组下一跳的路径的传出计算权重之和可以为100(例如指示来自第一转变后的组下一跳的路径包括针对与第一转发类别(例如F0)相关联的业务的所有潜在路径)。
结果,网络设备可以布置三级层次结构FIB格式,使得可以针对所有转发类别确定通过网络至对应出站接口的业务分发。例如,针对第二转发类别(例如FC 1),三级层次结构FIB格式可以指示与第二转发类别相关联的业务的15%(例如由传出计算权重15指示)可以经由转变后的转发下一跳T2被分发,与第二转发类别相关联的业务的15%(例如由传出计算权重15指示)可以经由转变后的转发下一跳T6被分发,与第二转发类别相关联的业务的30%(例如由传出计算权重30指示)可以经由转变后的转发下一跳T10被分发,并且与第二转发类别相关联的业务的40%(例如由传出计算权重40指示)可以经由转变后的转发下一跳T15被分发。类似地,与第三转发类别(例如FC2)相关联的传入业务可以跨出站接口被分发,该出站接口分别对应于比率为15、15、30以及40的转变后的转发下一跳T3、转变后的转发下一跳T7、转变后的转发下一跳T11以及转变后的转发下一跳T14。网络设备可以按类似方式确定其他转发类别的业务分发。
如图1K中由附图标记130所示,网络设备可以将经聚集的转变后的转发下一跳条目转变成特定格式。特定格式可以是三级层次结构地址转发表格式、openconfig地址转发表格式(OC-AFT)等。特定格式可以包括条件标识符,该条件标识符定义了要应用于由网络设备接收到的分组的入口分类准则。例如,当分组由网络设备接收时,网络设备可以包括具有分组的(例如分组的报头中的)条件标识符。网络设备可以基于转发数据、从另一网络设备接收到的信息、包含在由网络设备接收到的分组内的信息、存储在FIB内的信息等来确定条件标识符。条件标识符可以由网络设备和/或其他网络设备用来确定针对分组的分发(例如路径)。
如图1L中所示,网络设备可以将从条件转变后的组下一跳至一个或多个(或所有)转变后的组下一跳的路径与一个或多个条件标识符相关联。例如,条件标识符44、45以及46可以与第一转变后的组下一跳(例如TG1)相关联,条件标识符47、48以及49可以与第二转变后的组下一跳(例如TG2)相关联,条件标识符50、51以及52可以与第三转变后的组下一跳(例如TG3)相关联,并且条件标识符53可以与第四转变后的组下一跳(例如TG4)相关联。
网络设备可以基于网络设备的配置(例如设置等)来执行如上文所描述的转发数据的处理。例如,该配置可以指示网络设备将转变与多级混合层次结构FIB格式相关联的转发数据。在一些实现中,网络设备可以基于转发数据中的指示、基于配置、基于用户输入(例如来自网络的管理员)等来选择性地执行转发数据的处理。
网络设备可以将呈特定格式(例如如图1L中所示)的转变后的转发下一跳条目存储在网络设备的FIB中。网络设备可以接收与网络相关联的业务(例如分组)。网络设备可以基于呈特定格式的转变后的转发下一跳条目来转发业务。例如,网络设备可以确定与业务相关联的转发类别和/或条件标识符。网络设备可以包括转发类别和/或具有业务的(例如分组的报头中的)条件标识符。网络设备可以根据由呈特定格式的转变后的转发下一跳条目指示的分发来转发业务。网络设备可以将呈特定格式的转变后的转发下一跳条目暴露给一个或多个其他设备(例如一个或多个其他网络设备等),以便用于使用消费目的(例如以便经由遥测进行监测)。
结果,可以使得网络设备能够针对与网络相关联的所有业务转发类别确定跨出站接口的业务分发。可以使得网络设备能够追踪针对业务的给定目的地和特定转发类别的业务分发。这可以节省计算资源和/或网络资源,否则该计算资源和/或网络资源将会被用于使用多级混合层次化FIB格式来确定针对给定目的地和特定转发类别的业务分发(例如其可以不包括针对目的地的所有转发类别的完全业务分发)。
如上文所指示,图1A至图1L被提供作为示例。其他示例可以与关于图1A至图1L所描述的示例不同。图1A至图1L中所示的设备的数量和布置被提供作为示例。实际上,与图1A至图1L中所示出的设备相比,可以存在附加设备、更少的设备、不同设备或以不同方式布置的设备。此外,图1A至图1L中所示的两个或更多个设备可以被实现于单个设备内,或图1A至图1L中所示的单个设备可以被实现为多个分布式设备。附加地或备选地,图1A至图1L中所示的一组设备(例如一个或多个设备)可以执行被描述为由图1A至图1L中所示的另一组设备执行的一种或多种功能。
图2是可以实现本文中所描述的系统和/或方法的示例环境200的示意图。如图2中所示,环境200可以包括一个或多个端点设备210、一组网络设备220(被示出为网络设备220-1至网络设备220-N)以及网络230。环境200的设备可以经由有线连接、无线连接或有线连接与无线连接的组合进行互连。
端点设备210包括能够接收、生成、存储、处理和/或提供信息(诸如本文中所描述的信息)的一个或多个设备。例如,端点设备210可以包括移动电话(例如智能电话、无线电话等)、膝上型计算机、平板计算机、台式计算机、手持式计算机、游戏设备、可穿戴式通信设备(例如智能手表、一副智能眼镜、心率监测器、健身追踪器、智能服装、智能首饰、头戴式显示器等)、网络设备或类似类型的设备。在一些实现中,端点设备210可以经由网络230从其他端点设备210接收网络业务和/或可以经由网络230向其他端点设备210提供网络业务(例如通过将网络设备220用作中间件来路由分组)。
网络设备220包括能够以本文中所描述的方式接收、处理、存储、路由和/或提供业务(例如分组、其他信息或元数据等)的一个或多个设备。例如,网络设备220可以包括路由器,诸如标签交换路由器(LSR)、标签边缘路由器(LER)、入口路由器、出口路由器、提供方路由器(例如提供方边缘路由器、提供方核心路由器等)、虚拟路由器等。附加地或备选地,网络设备220可以包括网关、交换机、防火墙、集线器、桥接器、反向代理、服务器(例如代理服务器、云服务器、数据中心服务器等)、负载平衡器和/或类似设备。在一些实现中,网络设备220可以是实现于外壳(诸如机架)内的物理设备。在一些实现中,网络设备220可以是由云计算环境或数据中心的一个或多个计算机设备实现的虚拟设备。在一些实现中,一组网络设备220可以是用于通过网络230路由业务流的一组数据中心节点。
网络230包括一个或多个有线和/或无线网络。例如,网络230可以包括分组交换网络、蜂窝网络(例如第五代(5G)网络、第四代(4G)网络(诸如长期演进(LTE)网络)、第三代(3G)网络、码分多址(CDMA)网络、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如公共交换电话网络(PSTN))、专用网络、自组织网络、内联网、互联网、基于光纤的网络、云计算网络等和/或这些或其他类型的网络的组合。
图2中所示的设备和网络的数量和布置被提供为示例。实际上,与图2中所示的那些设备和/或网络相比,可以存在附加设备和/或网络、更少的设备和/或网络、不同的设备和/或网络或以不同方式布置的设备和/或网络。此外,图2中所示的两个或更多个设备可以被实现于单个设备内,或图2中所示的单个设备可以被实现为多个分布式设备。附加地或备选地,环境200的一组设备(例如一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一种或多种功能。
图3是设备300的示例组件的示意图。设备300可以对应于端点设备210、网络设备220等。在一些实现中,端点设备210、网络设备220等可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3中所示,设备300可以包括一个或多个输入组件310-1至310-B(B≥1)(在下文中统称为输入组件310且单独地称为输入组件310)、交换组件320、一个或多个输出组件330-1至330-C(C≥1)(在下文中统称为输出组件330且单独地称为输出组件330)以及控制器340。
输入组件310可以是用于物理链路的一个或多个附接点,并且可以是用于传入业务(诸如分组)的一个或多个进入点。输入组件310可以诸如通过执行数据链路层封装或解封装来处理传入业务。在一些实现中,输入组件310可以传输和/或接收分组。在一些实现中,输入组件310可以包括输入线卡,该输入线卡包括一个或多个分组处理组件(例如呈集成电路的形式),诸如一个或多个接口卡(IFC)、分组转发组件、线卡控制器组件、输入端口、处理器、存储器和/或输入队列。在一些实现中,设备300可以包括一个或多个输入组件310。
交换组件320可以将输入组件310与输出组件330互连。在一些实现中,可以经由一个或多个交叉开关、经由总线和/或利用共享存储器来实现交换组件320。共享存储器可以充当用以在最终调度了分组以将其递送到输出组件330之前存储来自输入组件310的分组的临时缓冲器。在一些实现中,交换组件320可以使得输入组件310、输出组件330和/或控制器340能够彼此通信。
输出组件330可以存储分组,并且可以调度分组以在输出物理链路上传输。输出组件330可以支持数据链路层封装或解封装和/或各种高级协议。在一些实现中,输出组件330可以传输分组和/或接收分组。在一些实现中,输出组件330可以包括输出线卡,该输出线卡包括一个或多个分组处理组件(例如呈集成电路的形式),诸如一个或多个IFC、分组转发组件、线卡控制器组件、输出端口、处理器、存储器和/或输出队列。在一些实现中,设备300可以包括一个或多个输出组件330。在一些实现中,输入组件310和输出组件330可以由一组相同的组件(例如,且输入/输出组件可以是输入组件310与输出组件330的组合)来实现。
控制器340包括例如呈CPU、GPU、APU、微处理器、微控制器、DSP、FPGA、ASIC和/或另一种类型的处理器的形式的处理器。可以在硬件、固件或硬件与软件的组合中实现处理器。在一些实现中,控制器340可以包括可以被编程为执行功能的一个或多个处理器。
在一些实现中,控制器340可以包括存储供控制器340使用的信息和/或指令的RAM、ROM和/或另一种类型的动态或静态存储设备(例如闪速存储器、磁性存储器和/或光学存储器等)。
在一些实现中,控制器340可以与连接到设备300的其他设备、网络和/或系统通信以交换关于网络拓扑的信息。控制器340可以基于网络拓扑信息来创建路由表,可以基于路由表来创建转发表,并且可以将转发表转发到输入组件310和/或输出组件330。输入组件310和/或输出组件330可以使用转发表来针对传入和/或传出分组执行路由查找。
控制器340可以执行本文中所描述的一个或多个过程。控制器340可以响应于执行由非瞬态计算机可读介质存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非瞬态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或遍布多个物理存储设备的存储器空间。
可以经由通信接口从另一计算机可读介质或另一设备将软件指令读取到与控制器340相关联的存储器和/或存储组件中。存储在与控制器340相关联的存储器和/或存储组件中的软件指令在被执行时可以使控制器340执行本文中所描述的一个或多个过程。附加地或备选地,硬连线电路装置可以代替软件指令使用或与软件指令结合使用以执行本文中所描述的一个或多个过程。因此,本文中所描述的实现不限于硬件电路装置与软件的任何特定组合。
图3中所示的组件的数量和布置被提供作为示例。实际上,与图3中所示的那些组件相比,设备300可以包括附加组件、更少的组件、不同组件或以不同方式布置的组件。附加地或备选地,设备300的一组组件(例如一个或多个组件)可以执行被描述为由设备300的另一组组件执行的一种或多种功能。
图4是设备400的示例组件的示意图。设备400可以对应于端点设备210、网络设备220等。在一些实现中,端点设备210、网络设备220等可以包括一个或多个设备400和/或设备400的一个或多个组件。如图4中所示,设备400可以包括总线410、处理器420、存储器430、存储组件440、输入组件450、输出组件460以及通信接口470。
总线410包括允许设备400的组件之间的通信的组件。在硬件、固件或硬件与软件的组合中实现处理器420。处理器420是中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或另一种类型的处理组件。在一些实现中,处理器420包括能够被编程为执行功能的一个或多个处理器。存储器430包括存储供处理器420使用的信息和/或指令的随机存取存储器(RAM)、只读存储器(ROM)和/或另一种类型的动态或静态存储设备(例如闪速存储器、磁性存储器和/或光学存储器)。
存储组件440存储与设备400的操作和使用相关的信息和/或软件。例如,存储组件440可以包括硬盘(例如磁盘、光盘、磁光盘和/或固态磁盘)、压缩光盘(CD)、数字多功能光盘(DVD)、软盘、磁带盒、磁带和/或另一种类型的非瞬态计算机可读介质以及对应驱动器。
输入组件450包括允许设备400诸如经由用户输入接收信息的组件(例如触摸屏显示器、键盘、小键盘、鼠标、按钮、交换机和/或麦克风)。附加地或备选地,输入组件450可以包括用于感测信息的传感器(例如全球定位系统(GPS)组件、加速度计、陀螺仪和/或致动器)。输出组件460包括提供来自设备400的输出信息的组件(例如显示器、扬声器和/或一个或多个LED)。
通信接口470包括收发器类组件(例如收发器和/或单独接收器和发送器等),该收发器类组件使得设备400能够诸如经由有线连接、无线连接或有线连接与无线连接的组合与其他设备通信。通信接口470可以允许设备400从另一设备接收信息和/或向另一设备提供信息。例如,通信接口470可以包括以太网接口、光学接口、同轴接口、红外接口、RF接口、通用串行总线(USB)接口、无线局域接口、蜂窝网络接口等。
设备400可以执行本文中所描述的一个或多个过程。设备400可以基于处理器420执行由非瞬态计算机可读介质(诸如存储器430和/或存储组件440)存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非瞬态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或遍布多个物理存储设备的存储器空间。
可以经由通信接口470将软件指令从另一计算机可读介质或从另一设备读取到存储器430和/或存储组件440中。存储在存储器430和/或存储组件440中的软件指令在被执行时可以使处理器420执行本文中所描述的一个或多个过程。附加地或备选地,硬连线电路装置可以代替软件指令使用或与软件指令结合使用以执行本文中所描述的一个或多个过程。因此,本文中所描述的实现不限于硬件电路装置与软件的任何特定组合。
图4中所示的组件的数量和布置被提供作为示例。实际上,与图4中所示的那些组件相比,设备400可以包括附加组件、更少的组件、不同组件或以不同方式布置的组件。附加地或备选地,设备400的一组组件(例如一个或多个组件)可以执行被描述为由设备400的另一组组件执行的一种或多种功能。
图5是与转变多级混合层次化转发信息库(FIB)格式相关联的示例过程500的流程图。在一些实现中,图5的一个或多个过程框可以由网络设备(例如网络设备220)执行。在一些实现中,图5的一个或多个过程框可以由另一设备或一组设备执行,这些设备与网络设备分离或包括网络设备,诸如端点设备(例如端点设备210)等。附加地或备选地,图5的一个或多个过程框可以由设备300的一个或多个组件(例如输入组件310、交换组件320、输出组件330、控制器340等)、设备400(例如处理器420、存储器430、存储组件440、输入组件450、输出组件460、通信接口470等)等执行。
如图5中所示,过程500可以包括:接收与网络设备的多级混合层次结构转发信息库相关联的转发数据(框510)。例如,如上文所描述,网络设备可以接收与网络设备的多级混合层次结构转发信息库相关联的转发数据。
如图5中进一步所示,过程500可以包括:处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合(框520)。例如,如上文所描述,网络设备可以处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合。
如图5中进一步所示,过程500可以包括:处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合(框530)。例如,如上文所描述,网络设备可以处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合。
如图5中进一步所示,过程500可以包括:处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合(框540)。例如,如上文所描述,网络设备可以处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合。
如图5中进一步所示,过程500可以包括:基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合(框550)。例如,如上文所描述,网络设备可以基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合。
如图5中进一步所示,过程500可以包括:将转变后的转发下一跳条目的最终集合转变成特定格式(框560)。例如,如上文所描述,网络设备可以将转变后的转发下一跳条目的最终集合转变成特定格式。
如图5中进一步所示,过程500可以包括:将呈特定格式的转变后的转发下一跳条目的最终集合存储在转发信息库中(框570)。例如,如上文所描述,网络设备可以将呈特定格式的转变后的转发下一跳条目的最终集合存储在转发信息库中。
过程500可以包括附加实现,诸如下文和/或结合本文中的其他地方所描述的一个或多个其他过程所描述的任何单种实现或实现的任何组合。
在第一实现中,过程500包括:处理转发数据,以标识转发数据中的顶级下一跳条目并且创建条件转变后的组下一跳条目。
在第二实现中,单独地或结合第一实现,过程500包括:接收与网络相关联的业务,并且基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务。
在第三实现中,单独地或结合第一实现和第二实现中的一者或多者,特定格式包括三级层次结构地址转发表格式。
在第四实现中,单独地或结合第一实现至第三实现中的一者或多者,处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合包括:处理与第一类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第一子集;处理与第二类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第二子集;处理与第三类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第三子集;处理与第四类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第四子集;并且组合转变后的转发下一跳条目的第一子集、转变后的转发下一跳条目的第二子集、转变后的转发下一跳条目的第三子集以及转变后的转发下一跳条目的第四子集,以生成转变后的转发下一跳条目的第一集合。
在第五实现中,单独地或结合第一实现至第四实现中的一者或多者,第一类型的下一跳对应于聚合下一跳,第二类型的下一跳对应于间接下一跳,第三类型的下一跳对应于带有索引的下一跳,并且第四类型的下一跳对应于转发下一跳。
在第六实现中,单独地或结合第一实现至第五实现中的一者或多者,转变后的转发下一跳条目的最终集合包括下一跳条目,该下一跳条目各自与网络设备的对应出站接口相关联。
尽管图5示出了过程500的示例框,但在一些实现中,与图5中所描绘的那些框相比,过程500可以包括附加框、更少的框、不同框或以不同方式布置的框。附加地或备选地,过程500的框中的两个或更多个框可以并行执行。
图6是与转变多级混合层次化FIB格式相关联的示例过程600的流程图。在一些实现中,图6的一个或多个过程框可以由网络设备(例如网络设备220)执行。在一些实现中,图6的一个或多个过程框可以由另一设备或一组设备执行,这些设备与网络设备分离或包括网络设备,诸如端点设备(例如端点设备210)等。附加地或备选地,图6的一个或多个过程框可以由设备300的一个或多个组件(例如输入组件310、交换组件320、输出组件330、控制器340等)、设备400(例如处理器420、存储器430、存储组件440、输入组件450、输出组件460、通信接口470等)等执行。
如图6中所示,过程600可以包括:接收与网络设备的多级混合层次结构转发信息库相关联的转发数据(框610)。例如,如上文所描述,网络设备可以接收与网络设备的多级混合层次结构转发信息库相关联的转发数据。
如图6中进一步所示,过程600可以包括:处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合(框620)。例如,如上文所描述,网络设备可以处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合。
如图6中进一步所示,过程600可以包括:处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合(框630)。例如,如上文所描述,网络设备可以处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合。
如图6中进一步所示,过程600可以包括:处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合(框640)。例如,如上文所描述,网络设备可以处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合。
如图6中进一步所示,过程600可以包括:基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合(框650)。例如,如上文所描述,网络设备可以基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合。
如图6中进一步所示,过程600可以包括:将转变后的转发下一跳条目的最终集合转变成特定格式(框660)。例如,如上文所描述,网络设备可以将转变后的转发下一跳条目的最终集合转变成特定格式。
如图6中进一步所示,过程600可以包括:接收与网络相关联的业务(框670)。例如,如上文所描述,网络设备可以接收与网络相关联的业务。
如图6中进一步所示,过程600可以包括:基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务(框680)。例如,如上文所描述,网络设备可以基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务。
过程600可以包括附加实现,诸如下文和/或结合本文中的其他地方所描述的一个或多个其他过程所描述的任何单种实现或实现的任何组合。
在第一实现中,转变后的转发下一跳条目的第二集合包括转变后的转发下一跳条目,该转变后的转发下一跳条目从转变后的转发下一跳条目的第一集合中缺失。
在第二实现中,单独地或结合第一实现,转变后的转发下一跳条目的第三集合包括新的转变后的转发下一跳条目,该新的转变后的转发下一跳条目与被包括在转变后的转发下一跳条目的第一集合中的转发类别相关联。
在第三实现中,单独地或结合第一实现和第二实现中的一者或多者,转变后的转发下一跳条目的最终集合包括:与第一转发类别和转变后的组下一跳条目中的第一条目相关联的转变后的转发下一跳条目的第一子集、与第二转发类别和转变后的组下一跳条目中的第二条目相关联的转变后的转发下一跳条目的第二子集、与第三转发类别和转变后的组下一跳条目中的第三条目相关联的转变后的转发下一跳条目的第三子集以及与第四转发类别和转变后的组下一跳条目中的第四条目相关联的转变后的转发下一跳条目的第四子集。
在第四实现中,单独地或结合第一实现至第三实现中的一者或多者,特定格式包括openconfig地址转发表格式。
在第五实现中,单独地或结合第一实现至第四实现中的一者或多者,呈特定格式的转变后的转发下一跳条目的最终集合包括条件标识符,该条件标识符定义了应用于分组的入口分类准则。
在第六实现中,单独地或结合第一实现至第五实现中的一者或多者,多级混合层次结构转发信息库包括四个或更多个级。
尽管图6示出了过程600的示例框,但在一些实现中,与图6中所描绘的那些框相比,过程600可以包括附加框、更少的框、不同框或以不同方式布置的框。附加地或备选地,过程600的框中的两个或更多个框可以并行执行。
图7是与转变多级混合层次化FIB格式相关联的示例过程700的流程图。在一些实现中,图7的一个或多个过程框可以由网络设备(例如网络设备220)执行。在一些实现中,图7的一个或多个过程框可以由另一设备或一组设备执行,这些设备与网络设备分离或包括网络设备,诸如端点设备(例如端点设备210)等。附加地或备选地,图7的一个或多个过程框可以由设备300的一个或多个组件(例如输入组件310、交换组件320、输出组件330、控制器340等)、设备400(例如处理器420、存储器430、存储组件440、输入组件450、输出组件460、通信接口470等)等执行。
如图7中所示,过程700可以包括:接收与网络设备的多级混合层次结构转发信息库相关联的转发数据(框710)。例如,如上文所描述,网络设备可以接收与网络设备的多级混合层次结构转发信息库相关联的转发数据。
如图7中进一步所示,过程700可以包括:处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合(框720)。例如,如上文所描述,网络设备可以处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合。
如图7中进一步所示,过程700可以包括:处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合(框730)。例如,如上文所描述,网络设备可以处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合。
如图7中进一步所示,过程700可以包括:处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合(框740)。例如,如上文所描述,网络设备可以处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合。
如图7中进一步所示,过程700可以包括:基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合(框750)。例如,如上文所描述,网络设备可以基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合。
如图7中进一步所示,过程700可以包括:将转变后的转发下一跳条目的最终集合转变成特定格式(框760)。例如,如上文所描述,网络设备可以将转变后的转发下一跳条目的最终集合转变成特定格式。
如图7中进一步所示,过程700可以包括:将呈特定格式的转变后的转发下一跳条目的最终集合存储在转发信息库中(框770)。例如,如上文所描述,网络设备可以将呈特定格式的转变后的转发下一跳条目的最终集合存储在转发信息库中。
如图7中进一步所示,过程700可以包括:接收与网络相关联的业务(框780)。例如,如上文所描述,网络设备可以接收与网络相关联的业务。
如图7中进一步所示,过程700可以包括:基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务(框790)。例如,如上文所描述,网络设备可以基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务。
过程700可以包括附加实现,诸如下文和/或结合本文中的其他地方所描述的一个或多个其他过程所描述的任何单种实现或实现的任何组合。
在第一实现中,过程700包括:处理转发数据,以标识转发数据中的顶级下一跳条目并且创建条件转变后的组下一跳条目。
在第二实现中,单独地或结合第一实现,处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合包括:处理与第一类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第一子集;处理与第二类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第二子集;处理与第三类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第三子集;处理与第四类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第四子集;并且组合转变后的转发下一跳条目的第一子集、转变后的转发下一跳条目的第二子集、转变后的转发下一跳条目的第三子集以及转变后的转发下一跳条目的第四子集,以生成转变后的转发下一跳条目的第一集合。
在第三实现中,单独地或结合第一实现和第二实现中的一者或多者,转变后的转发下一跳条目的最终集合包括下一跳条目,该下一跳条目分别与网络设备的对应出站接口相关联。
在第四实现中,单独地或结合第一实现至第三实现中的一者或多者,转变后的转发下一跳条目的第二集合包括转变后的转发下一跳条目,该转变后的转发下一跳条目从转变后的转发下一跳条目的第一集合中缺失,并且转变后的转发下一跳条目的第三集合包括新的转变后的转发下一跳条目,该新的转变后的转发下一跳条目与被包括在转变后的转发下一跳条目的第一集合中的转发类别相关联。
在第五实现中,单独地或结合第一实现至第四实现中的一者或多者,多级混合层次结构转发信息库包括四个或更多个级。
尽管图7示出了过程700的示例框,但在一些实现中,与图7中所描绘的那些框相比,过程700可以包括附加框、更少的框、不同框或以不同方式布置的框。附加地或备选地,过程700的框中的两个或更多个框可以并行执行。
根据本公开的各种实现,提供了以下示例。
示例1.一种方法,包括:由网络设备接收与网络设备的多级混合层次结构转发信息库相关联的转发数据;由网络设备处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;由网络设备处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;由网络设备处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;由网络设备基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合;由网络设备将转变后的转发下一跳条目的最终集合转变成特定格式;以及由网络设备将呈特定格式的转变后的转发下一跳条目的最终集合存储在转发信息库中。
示例2.根据示例1的方法,还包括:处理转发数据,以标识转发数据中的顶级下一跳条目并且创建条件转变后的组下一跳条目。
示例3.根据示例1的方法,还包括:接收与网络相关联的业务;以及基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务。
示例4.根据示例1的方法,其中特定格式包括三级层次结构地址转发表格式。
示例5.根据示例1的方法,其中处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合包括:处理与第一类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第一子集;处理与第二类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第二子集;处理与第三类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第三子集;处理与第四类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第四子集;以及组合转变后的转发下一跳条目的第一子集、转变后的转发下一跳条目的第二子集、转变后的转发下一跳条目的第三子集以及转变后的转发下一跳条目的第四子集,以生成转变后的转发下一跳条目的第一集合。
示例6.根据示例5的方法,其中:第一类型的下一跳对应于聚合下一跳,第二类型的下一跳对应于间接下一跳,第三类型的下一跳对应于带有索引的下一跳,并且第四类型的下一跳对应于转发下一跳。
示例7.根据示例1的方法,其中转变后的转发下一跳条目的最终集合包括下一跳条目,下一跳条目各自与网络设备的对应出站接口相关联。
示例8.一种网络设备,包括:一个或多个存储器;以及一个或多个处理器,用以:接收与网络设备的多级混合层次结构转发信息库相关联的转发数据;处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合;将转变后的转发下一跳条目的最终集合转变成特定格式;接收与网络相关联的业务;以及基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务。
示例9.根据示例8的网络设备,其中转变后的转发下一跳条目的第二集合包括转变后的转发下一跳条目,转变后的转发下一跳条目从转变后的转发下一跳条目的第一集合中缺失。
示例10.根据示例8的网络设备,其中转变后的转发下一跳条目的第三集合包括新的转变后的转发下一跳条目,新的转变后的转发下一跳条目与被包括在转变后的转发下一跳条目的第一集合中的转发类别相关联。
示例11.根据示例8的网络设备,其中转变后的转发下一跳条目的最终集合包括:转变后的转发下一跳条目的第一子集,转变后的转发下一跳条目的第一子集与第一转发类别和转变后的组下一跳条目中的第一条目相关联,转变后的转发下一跳条目的第二子集,转变后的转发下一跳条目的第二子集与第二转发类别和转变后的组下一跳条目中的第二条目相关联,转变后的转发下一跳条目的第三子集,转变后的转发下一跳条目的第三子集与第三转发类别和转变后的组下一跳条目中的第三条目相关联,以及转变后的转发下一跳条目的第四子集,转变后的转发下一跳条目的第四子集与第四转发类别和转变后的组下一跳条目中的第四条目相关联。
示例12.根据示例8的网络设备,其中特定格式包括openconfig地址转发表格式。
示例13.根据示例8的网络设备,其中呈特定格式的转变后的转发下一跳条目的最终集合包括条件标识符,条件标识符定义了用以应用于分组的入口分类准则。
示例14.根据示例8的网络设备,其中多级混合层次结构转发信息库包括四个或更多个级。
示例15.一种存储指令的非瞬态计算机可读介质,指令包括:一个或多个指令,一个或多个指令在由网络设备的一个或多个处理器执行时使一个或多个处理器:接收与网络设备的多级混合层次结构转发信息库相关联的转发数据;处理转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;处理与默认转发类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;处理与所有业务类别相关联的转变后的组下一跳条目和转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;基于转变后的组下一跳条目来对转变后的转发下一跳条目的第一集合、转变后的转发下一跳条目的第二集合以及转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合;将转变后的转发下一跳条目的最终集合转变成特定格式;将呈特定格式的转变后的转发下一跳条目的最终集合存储在转发信息库中;接收与网络相关联的业务;以及基于呈特定格式的转变后的转发下一跳条目的最终集合来转发业务。
示例16.根据示例15的非瞬态计算机可读介质,其中一个或多个指令在由一个或多个处理器执行时还使一个或多个处理器:处理转发数据,以标识转发数据中的顶级下一跳条目并且创建条件转变后的组下一跳条目。
示例17.根据示例15的非瞬态计算机可读介质,其中使一个或多个处理器处理转发数据以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合的一个或多个指令使一个或多个处理器:处理与第一类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第一子集;处理与第二类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第二子集;处理与第三类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第三子集;处理与第四类型的下一跳相关联的转发数据,以生成转变后的转发下一跳条目的第四子集;以及组合转变后的转发下一跳条目的第一子集、转变后的转发下一跳条目的第二子集、转变后的转发下一跳条目的第三子集以及转变后的转发下一跳条目的第四子集,以生成转变后的转发下一跳条目的第一集合。
示例18.根据示例15的非瞬态计算机可读介质,其中转变后的转发下一跳条目的最终集合包括下一跳条目,下一跳条目各自与网络设备的对应出站接口相关联。
示例19.根据示例15的非瞬态计算机可读介质,其中:转变后的转发下一跳条目的第二集合包括转变后的转发下一跳条目,转变后的转发下一跳条目从转变后的转发下一跳条目的第一集合中缺失,并且转变后的转发下一跳条目的第三集合包括新的转变后的转发下一跳条目,新的转变后的转发下一跳条目与被包括在转变后的转发下一跳条目的第一集合中的转发类别相关联。
示例20.根据示例15的非瞬态计算机可读介质,其中多级混合层次结构转发信息库包括四个或更多个级。
前述公开内容提供了说明和描述,但并不旨在是详尽的或将实现限于所公开的精确形式。可以鉴于以上公开内容做出修改和改变,并且可以从实现的实践中获取这些修改和改变。
如本文中所使用,术语“组件”旨在被广泛地解释为硬件、固件或硬件与软件的组合。
如本文中所使用,业务或内容可以包括分组集合。分组可以指用于传达信息的通信结构,诸如协议数据单元(PDU)、服务数据单元(SDU)、网络分组、数据报、片段、消息、框、帧(例如以太网帧)、上述任一者的一部分和/或能够经由网络传输的另一种类型的格式化或未经格式化的数据单元。
明显的是,本文中所描述的系统和/或方法可以不同形式的硬件、固件和/或硬件与软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不是对实现的限制。因此,本文中在不参考特定软件代码的情况下描述了系统和/或方法的操作和行为——应理解,软件和硬件可以基于本文中的描述用于实现系统和/或方法。
即使在权利要求书中叙述了和/或在说明书中公开了特征的特定组合,但这些组合不旨在限制各种实现的公开内容。实际上,可以权利要求书中未具体叙述和/或说明书中未公开的方式组合许多这些特征。尽管下文列出的每项从属权利要求可以仅直接从属于一项权利要求,但各种实现的公开内容包括每项从属权利要求与权利要求集合中的每项其他权利要求。
同样地,除非另有明确描述,否则本文中所使用的元件、动作或指令不应被解释为关键的或必需的。此外,如本文中所使用,冠词“一”和“一个”旨在包括一个或多个项并且可以与“一个或多个”互换地使用。进一步地,如本文中所使用,冠词“该”旨在包括结合冠词“该”引用的一个或多个项,并且可以与“一个或多个”互换地使用。此外,如本文中所使用,术语“集合”旨在包括一个或多个项(例如相关项、不相关项、相关项与不相关项的组合等),并且可以与“一个或多个”互换地使用。在仅旨在表示一个项的情况下,使用短语“仅一个”或类似语言。此外,如本文中所使用,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在作为开放式术语。另外,除非另有明确陈述,否则短语“基于”旨在表示“至少部分地基于”。此外,如本文中所使用,除非另有明确陈述,否则术语“或”旨在当串联使用时为包括性的,并且可以与“和/或”互换地使用(例如在结合“任一者”或“中的仅一者”使用的条件下)。

Claims (20)

1.一种方法,包括:
由网络设备接收与所述网络设备的多级混合层次结构转发信息库相关联的转发数据;
由所述网络设备处理所述转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;
由所述网络设备处理与默认转发类别相关联的所述转变后的组下一跳条目和所述转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;
由所述网络设备处理与所有业务类别相关联的所述转变后的组下一跳条目和所述转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;
由所述网络设备基于所述转变后的组下一跳条目来对所述转变后的转发下一跳条目的第一集合、所述转变后的转发下一跳条目的第二集合以及所述转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合;
由所述网络设备将所述转变后的转发下一跳条目的最终集合转变成特定格式;以及
由所述网络设备将呈所述特定格式的所述转变后的转发下一跳条目的最终集合存储在所述转发信息库中。
2.根据权利要求1所述的方法,还包括:
处理所述转发数据,以标识所述转发数据中的顶级下一跳条目并且创建条件转变后的组下一跳条目。
3.根据权利要求1所述的方法,还包括:
接收与网络相关联的业务;以及
基于呈所述特定格式的所述转变后的转发下一跳条目的最终集合来转发所述业务。
4.根据权利要求1所述的方法,其中所述特定格式包括三级层次结构地址转发表格式。
5.根据权利要求1所述的方法,其中处理所述转发数据,以生成所述转变后的组下一跳条目和所述转变后的转发下一跳条目的第一集合包括:
处理与第一类型的下一跳相关联的所述转发数据,以生成转变后的转发下一跳条目的第一子集;
处理与第二类型的下一跳相关联的所述转发数据,以生成转变后的转发下一跳条目的第二子集;
处理与第三类型的下一跳相关联的所述转发数据,以生成转变后的转发下一跳条目的第三子集;
处理与第四类型的下一跳相关联的所述转发数据,以生成转变后的转发下一跳条目的第四子集;以及
组合所述转变后的转发下一跳条目的第一子集、所述转变后的转发下一跳条目的第二子集、所述转变后的转发下一跳条目的第三子集以及所述转变后的转发下一跳条目的第四子集,以生成所述转变后的转发下一跳条目的第一集合。
6.根据权利要求5所述的方法,其中:
所述第一类型的下一跳对应于聚合下一跳,
所述第二类型的下一跳对应于间接下一跳,
所述第三类型的下一跳对应于带有索引的下一跳,并且
所述第四类型的下一跳对应于转发下一跳。
7.根据权利要求1所述的方法,其中所述转变后的转发下一跳条目的最终集合包括下一跳条目,所述下一跳条目各自与所述网络设备的对应出站接口相关联。
8.一种网络设备,包括:
一个或多个存储器;以及
一个或多个处理器,用以:
接收与所述网络设备的多级混合层次结构转发信息库相关联的转发数据;
处理所述转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;
处理与默认转发类别相关联的所述转变后的组下一跳条目和所述转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;
处理与所有业务类别相关联的所述转变后的组下一跳条目和所述转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;
基于所述转变后的组下一跳条目来对所述转变后的转发下一跳条目的第一集合、所述转变后的转发下一跳条目的第二集合以及所述转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合;
将所述转变后的转发下一跳条目的最终集合转变成特定格式;
接收与网络相关联的业务;以及
基于呈所述特定格式的所述转变后的转发下一跳条目的最终集合来转发所述业务。
9.根据权利要求8所述的网络设备,其中所述转变后的转发下一跳条目的第二集合包括转变后的转发下一跳条目,所述转变后的转发下一跳条目从所述转变后的转发下一跳条目的第一集合中缺失。
10.根据权利要求8所述的网络设备,其中所述转变后的转发下一跳条目的第三集合包括新的转变后的转发下一跳条目,所述新的转变后的转发下一跳条目与被包括在所述转变后的转发下一跳条目的第一集合中的转发类别相关联。
11.根据权利要求8所述的网络设备,其中所述转变后的转发下一跳条目的最终集合包括:
转变后的转发下一跳条目的第一子集,所述转变后的转发下一跳条目的第一子集与第一转发类别和所述转变后的组下一跳条目中的第一条目相关联,
转变后的转发下一跳条目的第二子集,所述转变后的转发下一跳条目的第二子集与第二转发类别和所述转变后的组下一跳条目中的第二条目相关联,
转变后的转发下一跳条目的第三子集,所述转变后的转发下一跳条目的第三子集与第三转发类别和所述转变后的组下一跳条目中的第三条目相关联,以及
转变后的转发下一跳条目的第四子集,所述转变后的转发下一跳条目的第四子集与第四转发类别和所述转变后的组下一跳条目中的第四条目相关联。
12.根据权利要求8所述的网络设备,其中所述特定格式包括openconfig地址转发表格式。
13.根据权利要求8所述的网络设备,其中呈所述特定格式的所述转变后的转发下一跳条目的最终集合包括条件标识符,所述条件标识符定义了用以应用于分组的入口分类准则。
14.根据权利要求8所述的网络设备,其中所述多级混合层次结构转发信息库包括四个或更多个级。
15.一种存储指令的非瞬态计算机可读介质,所述指令包括:
一个或多个指令,所述一个或多个指令在由网络设备的一个或多个处理器执行时使所述一个或多个处理器:
接收与所述网络设备的多级混合层次结构转发信息库相关联的转发数据;
处理所述转发数据,以生成转变后的组下一跳条目和转变后的转发下一跳条目的第一集合;
处理与默认转发类别相关联的所述转变后的组下一跳条目和所述转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第二集合;
处理与所有业务类别相关联的所述转变后的组下一跳条目和所述转变后的转发下一跳条目的第一集合,以生成转变后的转发下一跳条目的第三集合;
基于所述转变后的组下一跳条目来对所述转变后的转发下一跳条目的第一集合、所述转变后的转发下一跳条目的第二集合以及所述转变后的转发下一跳条目的第三集合进行聚集,以生成转变后的转发下一跳条目的最终集合;
将所述转变后的转发下一跳条目的最终集合转变成特定格式;
将呈所述特定格式的所述转变后的转发下一跳条目的最终集合存储在所述转发信息库中;
接收与网络相关联的业务;以及
基于呈所述特定格式的所述转变后的转发下一跳条目的最终集合来转发所述业务。
16.根据权利要求15所述的非瞬态计算机可读介质,其中所述一个或多个指令在由所述一个或多个处理器执行时还使所述一个或多个处理器:
处理所述转发数据,以标识所述转发数据中的顶级下一跳条目并且创建条件转变后的组下一跳条目。
17.根据权利要求15所述的非瞬态计算机可读介质,其中使所述一个或多个处理器处理所述转发数据以生成所述转变后的组下一跳条目和所述转变后的转发下一跳条目的第一集合的所述一个或多个指令使所述一个或多个处理器:
处理与第一类型的下一跳相关联的所述转发数据,以生成转变后的转发下一跳条目的第一子集;
处理与第二类型的下一跳相关联的所述转发数据,以生成转变后的转发下一跳条目的第二子集;
处理与第三类型的下一跳相关联的所述转发数据,以生成转变后的转发下一跳条目的第三子集;
处理与第四类型的下一跳相关联的所述转发数据,以生成转变后的转发下一跳条目的第四子集;以及
组合所述转变后的转发下一跳条目的第一子集、所述转变后的转发下一跳条目的第二子集、所述转变后的转发下一跳条目的第三子集以及所述转变后的转发下一跳条目的第四子集,以生成所述转变后的转发下一跳条目的第一集合。
18.根据权利要求15所述的非瞬态计算机可读介质,其中所述转变后的转发下一跳条目的最终集合包括下一跳条目,所述下一跳条目各自与所述网络设备的对应出站接口相关联。
19.根据权利要求15所述的非瞬态计算机可读介质,其中:
所述转变后的转发下一跳条目的第二集合包括转变后的转发下一跳条目,所述转变后的转发下一跳条目从所述转变后的转发下一跳条目的第一集合中缺失,并且
所述转变后的转发下一跳条目的第三集合包括新的转变后的转发下一跳条目,所述新的转变后的转发下一跳条目与被包括在所述转变后的转发下一跳条目的第一集合中的转发类别相关联。
20.根据权利要求15所述的非瞬态计算机可读介质,其中所述多级混合层次结构转发信息库包括四个或更多个级。
CN202010849397.7A 2020-05-18 2020-08-21 转变多级混合层次化转发信息库格式 Active CN113691452B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211400592.7A CN115801673A (zh) 2020-05-18 2020-08-21 转变多级混合层次化转发信息库格式

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN202041020812 2020-05-18
IN202041020812 2020-05-18
US16/916,233 2020-06-30
US16/916,233 US11323369B2 (en) 2020-05-18 2020-06-30 Transforming a multi-level hybrid hierarchical forwarding information base format

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211400592.7A Division CN115801673A (zh) 2020-05-18 2020-08-21 转变多级混合层次化转发信息库格式

Publications (2)

Publication Number Publication Date
CN113691452A CN113691452A (zh) 2021-11-23
CN113691452B true CN113691452B (zh) 2022-11-29

Family

ID=78512018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010849397.7A Active CN113691452B (zh) 2020-05-18 2020-08-21 转变多级混合层次化转发信息库格式

Country Status (2)

Country Link
US (1) US11323369B2 (zh)
CN (1) CN113691452B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11706146B1 (en) * 2020-09-17 2023-07-18 Amazon Technologies, Inc. Directing network traffic using local routing decisions with a global overview
US11765579B2 (en) * 2021-04-16 2023-09-19 Versa Networks, Inc. Methods and system for adaptively managing the policing of network traffic
US11677655B2 (en) * 2021-07-06 2023-06-13 Skybox Security Ltd. Automatic completion of network virtual model

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466340A (zh) * 2002-06-24 2004-01-07 �人��������������ι�˾ 以策略流方式转发数据的方法和数据转发设备
US7106740B1 (en) * 2002-01-02 2006-09-12 Juniper Networks, Inc. Nexthop to a forwarding table
CN101110773A (zh) * 2007-08-13 2008-01-23 杭州华三通信技术有限公司 生成标签转发表项、及查找标签转发表项的方法和装置
CN102201979A (zh) * 2011-03-21 2011-09-28 中兴通讯股份有限公司 一种对微码表项进行层次化处理的方法和装置
CN104518967A (zh) * 2013-09-30 2015-04-15 华为技术有限公司 路由方法、设备和系统
US9491087B1 (en) * 2012-11-28 2016-11-08 The Arizona Board Of Regents On Behalf Of The University Of Arizona Devices and methods for forwarding information base aggregation
CN108989212A (zh) * 2017-05-31 2018-12-11 瞻博网络公司 多个下一跳的路由协议信令及其关系
CN110545240A (zh) * 2019-08-02 2019-12-06 新华三大数据技术有限公司 基于分布式聚合系统的标签转发表的建立及报文转发方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811158B1 (en) 2012-02-29 2014-08-19 Juniper Networks, Inc. Fast reroute for common network routes
US10412009B2 (en) * 2016-03-10 2019-09-10 Arista Networks, Inc. Next hop groups
US10917338B2 (en) * 2018-03-06 2021-02-09 Clarkson University System and method for building a hierarchical data structure
US10616175B2 (en) * 2018-05-01 2020-04-07 Hewlett Packard Enterprise Development Lp Forwarding information to forward data to proxy devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7106740B1 (en) * 2002-01-02 2006-09-12 Juniper Networks, Inc. Nexthop to a forwarding table
CN1466340A (zh) * 2002-06-24 2004-01-07 �人��������������ι�˾ 以策略流方式转发数据的方法和数据转发设备
CN101110773A (zh) * 2007-08-13 2008-01-23 杭州华三通信技术有限公司 生成标签转发表项、及查找标签转发表项的方法和装置
CN102201979A (zh) * 2011-03-21 2011-09-28 中兴通讯股份有限公司 一种对微码表项进行层次化处理的方法和装置
US9491087B1 (en) * 2012-11-28 2016-11-08 The Arizona Board Of Regents On Behalf Of The University Of Arizona Devices and methods for forwarding information base aggregation
CN104518967A (zh) * 2013-09-30 2015-04-15 华为技术有限公司 路由方法、设备和系统
CN108989212A (zh) * 2017-05-31 2018-12-11 瞻博网络公司 多个下一跳的路由协议信令及其关系
CN110545240A (zh) * 2019-08-02 2019-12-06 新华三大数据技术有限公司 基于分布式聚合系统的标签转发表的建立及报文转发方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Qing Li ; Dan Wang ; Mingwei Xu ; Jiahai Yang.On the scalability of router forwarding tables: Nexthop-Selectable FIB aggregation.《2011 Proceedings IEEE INFOCOM》.2011, *
基于MPLS的两种查表转发方案的分析;李振伟等;《计算机时代》;20090502(第05期);全文 *

Also Published As

Publication number Publication date
US20210359941A1 (en) 2021-11-18
CN113691452A (zh) 2021-11-23
US11323369B2 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
CN113691452B (zh) 转变多级混合层次化转发信息库格式
US9929919B2 (en) System and method for virtual network abstraction and switching
US10361954B2 (en) Method and apparatus for processing modified packet
US9571411B1 (en) Using a firewall filter to select a member link of a link aggregation group
WO2015043327A1 (zh) 路由方法、设备和系统
JP6364106B2 (ja) DiameterシグナリングルータにおいてDiameterメッセージをルーティングするための方法、システムおよびコンピュータ読取可能媒体
EP3054634B1 (en) Scheme for performing one-pass tunnel forwarding function on two-layer network structure
US20180375767A1 (en) Generating table entry and forwarding packet in software defined network
US10142223B2 (en) Symmetric intersubnet traffic load balancing in multihomed networks
US11811649B2 (en) Automatic discovery of route reflection peering end-points
CN108337168B (zh) 流簇交换路由机制OpenFlow组表选择方法
US11949584B2 (en) Utilizing domain segment identifiers for inter-domain shortest path segment routing
US11818051B2 (en) Distributed node processing of network traffic
EP3913869B1 (en) Transforming a multi-level hybrid hierarchical forwarding information base format
WO2022007550A1 (zh) 一种负载均衡方法、装置、网络设备及系统
US20180212881A1 (en) Load-based compression of forwarding tables in network devices
US20220060413A1 (en) Utilizing flex-algorithms with route reflection
US11671322B2 (en) Configuration of a network using a flex-algorithm routing mechanism
US20230261941A1 (en) Configuration of a network using a flex-algorithm routing mechanism
US11411866B1 (en) Supporting multiple segment routing traffic engineering algorithms
EP3958524A1 (en) Utilizing flex-algorithms with route reflection
US11777847B1 (en) Point-to-multipoint transport chain
Yu et al. Dynamic load balancing multipathing in data center ethernet
US11627093B1 (en) Generic layer independent fragmentation of non-internet protocol frames

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