CN113839866A - 信息发送和分发树建立的方法、装置、设备和存储介质 - Google Patents
信息发送和分发树建立的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113839866A CN113839866A CN202010592444.4A CN202010592444A CN113839866A CN 113839866 A CN113839866 A CN 113839866A CN 202010592444 A CN202010592444 A CN 202010592444A CN 113839866 A CN113839866 A CN 113839866A
- Authority
- CN
- China
- Prior art keywords
- multicast
- attribute
- join
- processing capability
- message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 230000005540 biological transmission Effects 0.000 title claims description 13
- 238000004590 computer program Methods 0.000 claims description 6
- 238000011144 upstream manufacturing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000009977 dual effect Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
- H04L45/484—Routing tree calculation using multiple routing trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/22—Processing or transfer of terminal data, e.g. status or physical capabilities
- H04W8/24—Transfer of terminal data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提出一种信息发送和分发树建立的方法、装置、设备和存储介质,包括:确定本节点的组播加入报文加入属性的处理能力;向网络中通告组播加入报文加入属性的处理能力信息,其中,所述组播加入报文加入属性的处理能力信息用于指示本节点对组播加入报文所带加入属性的处理能力。以实现网络中的控制器或路由器感知并确定本地路由区域内哪些路由器支持或不支持处理加入属性,从而自动构建符合特定要求的组播分发树。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种信息发送和分发树建立的方法、装置、设备和存储介质。
背景技术
基础的组播分发树建立仅依赖到源或汇聚点的单播路由,但随着新的应用场景的出现,协议允许在加入报文上携带加入属性字段,该加入属性字段将影响组播分发树的构建。
在组播加入报文上携带加入属性有助于构建有特殊需求的组播分发树,但这要求每台收到带加入属性的组播加入报文的路由器都具有处理该属性的能力,以防止出现环路。但应用上还是存在一些问题,协议无关组播协议的发现报文是单跳组播报文,只有连接到同一链路上的路由器才能发现彼此处理加入属性的能力,即网络中的控制器或路由器都无法感知并确定本地路由区域内哪些路由器支持或不支持处理加入属性。目前在使用加入属性时需要网络管理员人工计算并填写具体信息,因此存在灵活性差,不能及时响应网络拓扑变化或路由器能力变化等问题。
发明内容
本申请提供用于信息发送和分发树建立的方法、装置、设备和存储介质,以实现网络中的控制器或路由器感知并确定本地路由区域内哪些路由器支持或不支持处理加入属性,从而自动构建符合特定要求的组播分发树。
第一方面,本申请实施例提供一种信息发送方法,包括:
确定本节点的组播加入报文加入属性的处理能力;
向网络中通告组播加入报文加入属性的处理能力信息,其中,所述组播加入报文加入属性的处理能力信息用于指示本节点对组播加入报文所带加入属性的处理能力。
第二方面,本申请实施例提供一种分发树建立方法,包括:
接收每个节点的组播加入报文加入属性的处理能力信息;
基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树。
第三方面,本申请实施例提供一种信息发送装置,包括:
发送模块,被配置为确定本节点的组播加入报文加入属性的处理能力;向网络中通告组播加入报文加入属性的处理能力信息,其中,所述组播加入报文加入属性的处理能力信息用于指示本节点对组播加入报文所带加入属性的处理能力。
第四方面,本申请实施例提供一种分发树建立装置,包括:
接收模块,被配置为接收每个节点的组播加入报文加入属性的处理能力信息;
建立模块,被配置为基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树。
第五方面,本申请实施例提供一种设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请实施例中的任意一种方法。
第六方面,本申请实施例提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例中的任意一种方法。
关于本申请的以上实施例和其他方面以及其实现方式,在附图说明、具体实施方式和权利要求中提供更多说明。
附图说明
图1为本申请提供的一种信息发送方法的流程示意图;
图2为本申请提供的一种分发树建立方法的流程示意图;
图3是本申请提供的一种在IGP和BGP-LS中用于通告组播加入报文加入属性处理能力的信息结构图;
图4是本申请提供的通告组播加入报文加入属性处理能力的方法的流程示意图;
图5是本申请提供的基于网络中各节点的组播加入报文加入属性处理能力信息动态确定组播分发树的方法的流程示意图;
图6是构建双活弹性保护备路径的组播分发树的原始拓扑结构的示意图;
图7是构建双活弹性保护备路径在基于组播加入报文加入属性处理能力裁剪后的拓扑结构的示意图;
图8是本申请提供的通告组播加入报文加入属性处理能力并构建组播分发树的路由器的结构示意图;
图9为本申请提供的一种信息发送装置的结构示意图;
图10为本申请提供的一种分发树建立装置的结构示意图;
图11是本申请实施例提供的一种设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
首先,对组播技术中涉及到的概念进行简单说明。
组播技术提供点到多点的高效流量传输,目前主流的协议无关组播协议(Protocol Independent Multicast,PIM)构建以组播源或汇聚点为根,以流量接收者为叶子的组播分发树,流量沿组播分发树从根向叶子的方向,仅在分支节点发生复制到达多个接收者。组播网络中与组播流量接收者连接的网络设备称为最后一跳路由器,与组播源连接的网络设备称为源路由器,汇聚点所在的网络设备称为汇聚点路由器。组播路由器通过在接口链路上交互协议无关组播协议发现报文通告三层组播能力并建立组播邻居,在单播路由表中去往源或汇聚点的出接口和下一跳设备分别称为对该源或汇聚点的反向路径转发接口和组播上游邻居。最后一跳路由器利用协议无关组播协议中的向源或汇聚点的加入报文构建组播分发树,最后一跳路由器向它的组播上游邻居发送组播加入报文,上游邻居再继续向它的上游邻居转发加入报文直到最终到达指定源路由器或汇聚点路由器,完成从叶子向根构建的组播分发树。组播流量在组播分发树上从根向叶子的方向传播,任何一台组播路由器在非反向路径转发接口上收到的组播流量都将被丢弃,以防止环路和重复流量;组播路由器向下游出接口传播从反向路径转发接口收到的流量。
基础的组播分发树构建仅依赖到源或汇聚点的单播路由,但随着新的应用场景的出现,协议允许在加入报文上携带加入属性字段,该字段将影响组播分发树的构建。例如在一个路由区域内,边界路由器连接外部区域,核心路由器用于连通边界路由器,外部路由信息在边界路由器之间直接传输。即核心路由器上只有到各个边界路由器的路由信息而不用学习外部路由信息以此来降低核心路由器的负担。当组播源/汇聚点和接收者分别在不同边界路由器所连的外部区域时,构建一个跨核心区域的组播分发树就出现了问题,因为核心区域路由器没有到外部组播源/汇聚点的单播路由,无法确定组播上游邻居。为了解决这个问题,协议定义一种反向路径转发矢量(Reverse Path Forwarding Vector,RPFVector)的加入属性,该矢量指示组播源/汇聚点所连边界路由器的地址,核心路由器收到带反向路径转发矢量加入属性的加入报文,将不再为组播源/汇聚点计算组播上游邻居而是以该矢量所指示的边界路由器为目标计算组播上游邻居,构建以组播源/汇聚点所连接的边界网关路由器为根和接收者所连接的边界网关路由器为叶子的组播分发树。再如某些组播应用为了保证高可靠传输需要双活弹性保护,即最后一跳路由器从两个独立的组播分发树同时接收流量。最后一跳路由器在传输网络正常时向接收者转发从主的组播分发树上接收到的流量,丢弃从备的组播分发树上接收到的流量;当因网络故障不能从主的组播分发树收到流量时,开始转发从备的组播分发树上接收到的流量。这就要求主和备的组播分发树路径相互独立,不要有相交点避免单点失效造成主备组播分发树同时失效。协议为构造备的组播分发树新定义一种详尽反向路径矢量(Explicit RPF Vector)的加入属性,该属性携带备的组播分发树上从叶子到根每一跳的信息,路由器收到带有详尽反向路径矢量加入属性的组播加入报文,不需要再对组播源/汇聚点计算组播上游邻居,而是直接按照该属性所指示的上游邻居发送加入报文。
在组播加入报文上携带加入属性有助于构建有特殊需求的组播分发树,但这要求每台收到带加入属性的加入报文的路由器都具有处理该属性的能力,以防止出现环路。如果某台不具有处理能力的路由器收到带有加入属性的加入报文后忽略了原本指示组播上游邻居的加入属性,而以组播源/汇聚点计算组播上游邻居,就有可能将加入报文再发回给先前已经过的路由器。为此协议无关组播协议的发现报文将扩展携带处理加入属性能力的通告,当路由器发现他的组播上游邻居不支持处理加入属性时,向上游邻居发送的组播加入报文必须先移除加入属性。但应用上还是存在一些问题,协议无关组播协议的发现报文是单跳组播报文,只有连接到同一链路上的路由器才能发现彼此处理加入属性的能力,即网络中的控制器或路由器都无法感知并确定本地路由区域内哪些路由器支持或不支持处理加入属性。以提供双活弹性保护的详尽反向路径矢量加入属性为例,目前的方法是网络管理员人工计算一条不与主的组播分发树相交并且每一跳设备都能支持加入属性的备的组播分发树,再手动填写详尽反向路径矢量加入属性的信息。显见的,人工的参与存在灵活性差,不能及时响应网络拓扑变化或路由器能力变化;可扩展性低,当有多个组播应用需要双活弹性保护时计算负担重以及易出错等问题。
针对网络控制器和路由器都无法获取本地路由区域内除直连外的其他路由器对组播加入报文加入属性的处理能力,在构建不是单纯以组播源/汇聚点的单播路由为目标的组播分发树时需要人工参与而存在的灵活性差、可扩展性低和易出错等问题,提供一种由单播链路状态协议描述路由器对组播加入报文加入属性的处理能力并在路由区域内通告,每台参与链路状态协议的路由器都可以掌握本路由区域内其他路由器对组播加入报文加入属性的处理能力;由边界网关协议-链路状态(Border Gateway Protocol-LinkState,BGP-LS)将链路状态协议对组播加入报文加入属性处理能力的描述信息编码通告给控制器,供控制器掌握网络中各路由器的能力情况。路由器和控制器学习到路由域内各路由器的能力从而可以动态计算符合要求的组播分发树路径。
在一个实施例中,本申请提供一种信息发送方法,如图1所示,本申请实施例提供的信息发送方法包括步骤S11和S12。
S11、确定本节点的组播加入报文加入属性的处理能力。
S12、向网络中通告组播加入报文加入属性的处理能力信息,其中,所述组播加入报文加入属性的处理能力信息用于指示本节点对组播加入报文所带加入属性的处理能力。
在一个实施例中,上述信息发送方法由路由区域内的每个节点来执行。
在一个实施例中,节点是指一个路由区域内的所有路由设备。需要说明的是,本实施例中的节点、设备和路由器均是路由区域内的路由设备。
所述组播加入报文加入属性的处理能力信息可以理解为指示节点是否具备处理组播加入报文加入属性能力的信息,或者可以理解为指示节点是否支持组播加入报文加入属性。
在一个实施例中,所述组播加入报文加入属性的处理能力信息中携带组播加入报文加入属性的处理能力标识,则指示本节点具备对组播加入报文所带加入属性的处理能力。所述组播加入报文加入属性的处理能力信息中未携带组播加入报文加入属性的处理能力标识,则指示本节点不具备对组播加入报文所带加入属性的处理能力。
进一步的,在本实施例中,所述组播加入报文加入属性的处理能力标识可以是新定义的Type-Length-Value(TLV)字段也可以是在现有的链路状态协议路由器能力对象中新定义的标记位。即,可以是存在TLV字段时,表示节点具备对组播加入报文所带加入属性的处理能力,不存在TLV字段时,表示节点不具备对组播加入报文所带加入属性的处理能力,或者,链路状态协议路由器能力对象中新定义的标记位设置为1时,表示节点具备对组播加入报文所带加入属性的处理能力,设置为0时,表示节点不具备对组播加入报文所带加入属性的处理能力。需要说明的是,本实施例中仅对组播加入报文加入属性的处理能力标识进行说明,而非限定。
在一个实施例中,所述组播加入报文加入属性的处理能力信息还包括本节点所支持的组播加入报文加入属性的子类型。
在一个实施例中,由于加入属性可以有多种子类型,不同子类型功能不同,所需的处理方式也不相同,因此在组播加入报文加入属性能力信息下可选的携带设备当下能支持的具体子类型。如果路由器能力信息下有通告节点所支持的加入属性的子类型,则表示路由器只能识别处理通告的子类型而不能处理未通告的子类型。如果路由器能力信息下没有通告节点所支持的加入属性的子类型,则默认当成可以支持处理任何一种子类型的组播报文加入属性。
在一个实施例中,所述组播加入报文加入属性的处理能力信息在链路状态协议IGP的路由器能力信息中携带,或者,所述组播加入报文加入属性的处理能力信息在边界网关协议-链路状态BGP-LS路由的团体属性信息中携带。
在一个实施例中,所述方法还包括:当节点的组播加入属性的处理能力发生变化时,在IGP和BGP-LS中更新组播加入报文加入属性的处理能力信息。
在一个实施例中,所述更新组播加入报文加入属性的处理能力信息,包括如下一个或多个:更新组播加入报文加入属性的处理能力标识,更新节点所支持的加入属性的子类型。
在一个实施例中,更新组播加入报文加入属性的处理能力标识包括删除组播加入报文加入属性的处理能力标识,或,添加组播加入报文加入属性的处理能力标识。
更新节点所支持的加入属性的子类型,包括新增节点所支持的加入属性的子类型,或者减少节点所支持的加入属性的子类型。
需要说明的是,在本实施例中,节点所支持的加入属性的子类型具有完整性。即路由器上一种加入属性子类型支持能力发生改变时,当下支持的所有加入属性子类型都要一并通告,不允许增量通告,即不允许仅仅通告发生变化的子类型。
在一个实施例中,本申请提供一种分发树建立方法,如图2所示,本申请实施例提供的分发树建立方法包括步骤S21和S22。
S21、接收每个节点的组播加入报文加入属性的处理能力信息;
S22、基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树。
在一个实施例中,接收每个节点的组播加入报文加入属性的处理能力信息,包括:接收每个节点在IGP或BGP-LS中通告的组播加入报文加入属性的处理能力信息。
在一个实施例中,所述基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树,包括:保留原始网络拓扑结构中满足预设条件的节点,形成新的网络拓扑结构,其中,所述预设条件由组播加入报文加入属性的处理能力信息确定;在所述新的网络拓扑结构上建立组播分发树。
在一个实施例中,所述满足预设条件的节点,包括以下一种或多种情况:只具有组播加入报文加入属性处理能力标识并且未携带任何子类型的节点;具有组播加入报文加入属性处理能力标识且所携带的子类型包括所需的特定子类型的节点。
在本实施例中,从原始的网络拓扑中删除不具有处理组播加入报文加入属性能力的节点和通告了详细加入属性子类型但是没有通告所需的特定子类型的节点以及这些节点的所在连接,在剩余的网络拓扑信息上计算去往组播源/汇聚点的备的组播分发树分支路径。
另外,需要说明的是,当网络中路由器的加入属性能力发生改变时,可能会触发重新计算组播分发树。
在一个应用性实施例中,提供一种链路状态协议和边界网关协议-链路状态用于通告组播加入报文加入属性处理能力的信息结构。图3是本申请提供的一种通告组播加入报文加入属性处理能力的信息结构图。
如图3所示,链路状态协议在路由器能力信息中新增组播加入报文加入属性处理能力标识。Type字段表示支持加入属性。Length表示后面携带的多个加入属性子类型的总长度。Attribute-Type表示具体的加入属性的子类型;F比特为指示是否可透传,该比特在路由器的组播模块处理组播加入报文的具体加入属性时才有意义,所以在链路状态协议能力通告时F比特都设置为0,接收时忽略并当成0处理;E比特在加入属性中表示本Attribute-Type是组播加入报文所携带的最后一个加入属性子类型,但在链路状态协议中有Length字段指示总的Attribute-Type子类型的数目,所以在能力通告时E比特设置为0并在接收时忽略。
如果链路状态协议通告组播加入报文加入属性能力时没有携带具体的加入属性子类型,则Length字段填为0,代表路由器可以处理任何一种子类型。
当路由器的能力发生改变,不再支持先前通告过的某些加入属性子类型或者开始支持新的子类型,路由器在链路状态协议中要将当下能够支持的所有加入属性子类型一并重新通告。收到其他路由器发送的组播加入报文加入属性的子类型有变化的路由器能力信息,要更新对应路由器的能力信息。
边界网关协议-链路状态在生成描述链路状态协议节点信息的节点类型网络层可达信息时,增加用于描述组播加入报文加入属性处理能力的团体属性。
在一个实施例中,本申请所述采用链路状态协议和边界网关协议-链路状态通告网络设备处理组播加入报文的加入属性能力信息的方法包括下面几个流程:
链路状态协议模块获取本地组播功能对组播加入报文的加入属性处理能力信息,并在链路状态协议的路由器能力信息中通告加入属性信息。
其中,所述加入属性信息可以理解为路由器是否具有处理组播加入报文中的加入属性的能力在链路状态协议中的表示。链路状态协议包括:开放最短路径优先协议(OpenShortest Path First,OSPF)和中间设备到中间设备协议(Intermediate System toIntermediate System,IS-IS)。
由于组播加入报文的加入属性可以有多种子类型,不同子类型功能不同,所需的处理方式也不相同,因此在路由器能力信息下可以更详细的携带所支持的加入属性子类型。如果有通告详细类型,则表示路由器只能识别处理通告的子类型而不能处理未通告的子类型;如果没有通告详细类型,则默认当成可以支持处理任何一种子类型的加入属性。
链路状态协议通告的组播加入报文加入属性的子类型具有完整性。即路由器上一种加入属性子类型处理能力发生改变时,当下支持的所有加入属性子类型都要一并通告,不允许增量通告。
边界网关协议-链路状态在生成节点类型的网络层可达信息时,增加描述路由器对组播加入报文加入属性处理能力信息的团体属性。
链路状态协议信息传播范围内的路由器和用边界网关协议-链路状态连接的控制器都能够准确的了解网络中每台路由器对组播加入报文加入属性的处理情况。在构建不是单纯以组播源/汇聚点单播路由为目标的组播分发树时,控制器或最后一跳路由器根据应用要求将网络设备支持加入属性的能力作为限定条件,只在有明确通告支持该子加入属性类型或者默认通告支持全部属性类型的路由器之间计算组播上游邻居或完整路径。
本申请所述的用链路状态协议和边界网关协议-链路状态通告网络设备处理组播加入报文的加入属性的能力,与现有技术实现相比,控制器和路由器能够准确的掌握网络中每台路由器对组播加入报文加入属性处理能力的支持情况,控制器或最后一跳路由器在构建不是单纯以组播源/汇聚点的单播路由为目标的组播分发树时可以进行动态计算,主动规避掉并不支持加入扩展特性的路由器,无需人工参与,灵活性、可扩展性都可以得到提高。
在一个应用性实例中,提供一种通告组播加入报文加入属性处理能力的方法,图4是本申请提供的通告流程示意图。
如图4所示,通告组播加入报文加入属性处理能力的方法主要包括步骤S31、S32、S33、S34、S35、和S36。
S31、链路状态协议模块从组播模块获取本路由器对组播加入报文加入属性处理能力的信息。
S32、如果不具备处理加入属性的能力,则在路由器能力信息中不携带加入属性信息。
S33、如果具备处理加入属性的能力,则判断是否需要通告详细加入属性子类型。如果不需要通告详细加入属性子类型,直接执行S35。如果需要通告详细加入属性子类型,直接执行S34
S34、在加入属性信息中添加当下支持的全部子类型。
S35、在路由器能力信息中携带加入属性信息。
其中,如果不携带子类型信息则表示路由器可以支持任何一种子类型。
S36、当路由器上处理能力发生改变或者子类型发生改变,返回执行S31,刷新加入属性信息通告。
在一个应用性实例中,提供如何利用各路由器处理组播加入报文加入属性信息进行动态计算的过程。如图5所示,基于加入属性信息动态确定组播分发树的方法主要包括步骤:S41、S42、S43、S44、S45、S46。
S41、最后一跳路由器或者控制器通过链路状态协议或边界网关协议-链路状态学习到网络拓扑和各台路由器对组播加入报文加入属性的处理情况。
S42、最后一跳路由器或者控制器从应用接收到计算特定非基础路由组播分发树的请求。
S43、最后一跳路由器或者控制器的路由计算部件在原始网络拓扑上去掉不支持组播加入属性的节点和其所在链路,更进一步的去掉明确不支持所需的特定加入属性子类型的节点和其所在链路。
S44、最后一跳路由器或者控制器在现有的节点和链路拓扑上对组播源/汇聚点或其他信息计算组播上游邻居或者完整路径。
S45、确定链路状态协议或边界网关协议-链路状态通告路由器能力信息中的加入属性信息是否发生改变,如果没有,不做任何操作。如果发生改变,则执行S46。
S46、判断能力变化是否影响已计算的组播上游邻居或路径,如果否,不做任何操作,如果是返回执行S43。
具体的,双活弹性保护依靠组播加入报文加入属性的子类型详尽反向路径矢量属性构建备路径的组播分发树,路由域内支持详尽反向路径矢量加入属性子类型的各路由器在链路状态协议的路由器能力信息的加入属性的子类型中通告。如果链路状态协议的路由器能力信息只通告支持加入属性而未携带任何详细子类型则默认当成可以支持所有子类型;如果路由器能力信息中没有通告加入属性,或者通告的加入属性携带了其他详细子类型但是不包含详尽反向路径矢量子类型,则表示该路由器不支持处理带有详尽反向路径矢量加入属性的组播加入报文,在计算双活弹性保护的备的组播分发树时要排除不具有处理详尽反向路径矢量加入属性子类型能力的路由器。
最后一跳路由器在计算主的组播分发树时使用传统计算方式,即无需考虑路由域中各路由器对加入属性能力的处理情况,使用链路状态协议的最短路径生成树算法在整个路由域内查找去往组播源/汇聚点的组播上游邻居。
在计算与主的组播分发树不相交的备的组播分发树时则采用有约束的最短路径生成树算法,约束条件是从原始的网络拓扑中先删除主的组播分发树经过的节点和链路,再删除不具有处理组播加入报文加入属性能力的节点和通告了详细加入属性子类型但未携带详尽反向路径矢量子类型的节点以及这些节点的所有连接,在剩余的网络拓扑信息上运行最短路径生成树算法找到去往组播源/汇聚点的备的组播分发树分支路径。
在一个实施方式中,每条链路代价相同,其中,路由器R4不支持组播加入报文加入属性。路由器R0、R1、R2、R3、R5、R6、R7都支持组播加入报文加入属性如图6所示。以构建双活弹性保护的备的组播分发树为例,在原始网络拓扑中,最后一跳路由器R1计算到源路由器R0的最短路径作为主的组播分发树,计算结果从接收者到源的路径为R1-R2-R0。在计算备的组播分发树时,删除主的组播分发树所经过的路由器R2和不具有加入属性能力的R4及其相关链路,得到裁剪后的网络拓扑结构如图7所示。最后一跳路由器R1在裁剪后的网络拓扑结构上计算备的组播分发树,计算结果为R1-R5-R6-R7-R0,R1在发往R5的组播加入报文的加入属性中依次填写<R5,R6,R7,R0>的信息。
当网络中路由器的加入属性能力发生改变,比如原本支持详尽反向路径矢量子类型的路由器不再支持该子类型或者原本不支持的路由器开始支持,将触发重新计算备的组播分发树。控制器从边界网关协议-链路状态同样可以学习到路由域内各路由器处理组播加入报文详尽反向路径矢量加入属性子类型的能力,作为路由域内集中的计算单元控制器在为最后一跳路由器计算备的组播分发树路径的过程与最后一跳路由器自主计算的过程相同。本实施例中不再赘述。
在一个示例性的实施方式中,提供一种通告组播加入报文加入属性能力并构建组播分发树的路由器的结构示意图。
如图8所示,命令行界面(Command Line Interface,CLI)可为组播模块(PIM)提供处理组播加入报文加入属性能力的开关。可选的提供加入属性子类型的开关。
链路状态协议模块(IGP)从组播模块获取组播加入报文加入属性处理能力信息,并在链路状态协议的路由器能力信息中携带。
边界网关协议-链路状态(BGP-LS)为链路状态信息生成节点类型的网络层可达信息时增加描述路由器对组播加入报文加入扩展属性处理能力信息的团体属性。
路由器经由控制面通告并接收带有指示组播加入报文加入属性能力的链路状态协议消息和边界网关协议-链路状态网络层可达信息,生成带有节点能力的网络拓扑信息,计算模块响应组播需求在可用的网络拓扑上计算上游邻居。
在一个实施例中,本申请提供一种分发树建立装置,如图9所示,本申请实施例提供的分发树建立装置包括发送模块71。
其中,发送模块71,被配置为确定本节点的组播加入报文加入属性的处理能力;向网络中通告组播加入报文加入属性的处理能力信息,其中,所述组播加入报文加入属性的处理能力信息用于指示本节点对组播加入报文所带加入属性的处理能力。
在一个实施例中,所述组播加入报文加入属性的处理能力信息中携带组播加入报文加入属性的处理能力标识,则指示本节点具备对组播加入报文所带加入属性的处理能力。
在一个实施例中,所述组播加入报文加入属性的处理能力信息还包括本节点所支持的组播加入报文加入属性的子类型。
在一个实施例中,所述组播加入报文加入属性的处理能力信息在链路状态协议IGP的路由器能力信息中携带,或者,所述组播加入报文加入属性的处理能力信息在边界网关协议-链路状态BGP-LS路由的团体属性信息中携带。
在一个实施例中,还包括:当本节点的组播加入属性的处理能力发生变化时,在IGP和BGP-LS中更新组播加入报文加入属性的处理能力信息。
在一个实施例中,所述更新组播加入报文加入属性的处理能力信息,包括如下一个或多个:更新组播加入报文加入属性的处理能力标识,更新节点所支持的加入属性的子类型。
本实施例中提供的信息发送装置可执行本发明任意实施例所提供的信息发送方法,具备执行该方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的信息发送方法。
值得注意的是,上述信息发送装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
在一个实施例中,本申请提供一种分发树建立装置,如图10所示,本申请实施例提供的分发树建立装置包括接收模块81和建立模块82。
接收模块81,被配置为接收每个节点的组播加入报文加入属性的处理能力信息;
建立模块82,被配置为基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树。
在一个实施例中,接收每个节点的组播加入报文加入属性的处理能力信息,包括:接收每个节点在IGP或BGP-LS中通告的组播加入报文加入属性的处理能力信息。
在一个实施例中所述基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树,包括:保留原始网络拓扑结构中满足预设条件的节点,形成新的网络拓扑结构,其中,所述预设条件由组播加入报文加入属性的处理能力信息确定;在所述新的网络拓扑结构上建立组播分发树。
在一个实施例中所述满足预设条件的节点包括如下一个或多个情况:只具有组播加入报文加入属性处理能力标识并且未携带任何子类型的节点;具有组播加入报文加入属性处理能力标识且所携带的子类型包括所需的特定子类型的节点。
本实施例中提供的分发树建立装置可执行本发明任意实施例所提供的分发树建立方法,具备执行该方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的分发树建立方法。
值得注意的是,上述分发树的建立装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
本申请实施例还提供一种设备,图11是本申请实施例提供的一种设备的结构示意图,如图11所示,该设备包括处理器91、存储器92、输入装置93、输出装置94;设备中处理器91的数量可以是一个或多个,图11中以一个处理器91为例;设备中的处理器91、存储器92、输入装置93和输出装置94可以通过总线或其他方式连接,图11中以通过总线连接为例。
存储器92作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的信息发送方法对应的程序指令/模块(例如,信息发送装置中的发送模块71),如本申请实施例中的分发树建立方法对应的程序指令/模块(例如,组播分发树的建立装置中的接收模块81和建立模块82),处理器91通过运行存储在存储器92中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现本申请实施例提供的任一方法。
存储器92可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器92可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器92可进一步包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置93可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种信息发送方法,包括:
确定本节点的组播加入报文加入属性的处理能力;
向网络中通告组播加入报文加入属性的处理能力信息,其中,所述组播加入报文加入属性的处理能力信息用于指示本节点对组播加入报文所带加入属性的处理能力。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的信息发送方法操作,还可以执行本申请任意实施例所提供的信息发送方法中的相关操作。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种组播分发树建立的方法,包括:
接收每个节点的组播加入报文加入属性的处理能力信息;
基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的组播分发树建立方法操作,还可以执行本申请任意实施例所提供的分发树建立的的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
本领域内的技术人员应明白,术语用户终端涵盖任何适合类型的无线用户节点,例如移动电话、便携数据处理装置、便携网络浏览器或车载移动台。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(I SA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(ROM)、随机访问存储器(RAM)、光存储器装置和系统(数码多功能光碟DVD或CD光盘)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(FGPA)以及基于多核处理器架构的处理器。
通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本发明的范围。因此,本发明的恰当范围将根据权利要求确定。
Claims (14)
1.一种信息发送方法,其特征在于,包括:
确定本节点的组播加入报文加入属性的处理能力;
向网络中通告组播加入报文加入属性的处理能力信息,其中,所述组播加入报文加入属性的处理能力信息用于指示本节点对组播加入报文所带加入属性的处理能力。
2.根据权利要求1所述的方法,其特征在于,所述组播加入报文加入属性的处理能力信息中携带组播加入报文加入属性的处理能力标识,则指示本节点具备对组播加入报文所带加入属性的处理能力。
3.根据权利要求2所述的方法,其特征在于,所述组播加入报文加入属性的处理能力信息还包括本节点所支持的组播加入报文加入属性的子类型。
4.根据权利要求1所述的方法,其特征在于,所述组播加入报文加入属性的处理能力信息在链路状态协议IGP的路由器能力信息中携带,或者,所述组播加入报文加入属性的处理能力信息在边界网关协议-链路状态BGP-LS路由的团体属性信息中携带。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当本节点的组播加入属性的处理能力发生变化时,在IGP和BGP-LS中更新组播加入报文加入属性的处理能力信息。
6.根据权利要求5所述的方法,其特征在于,所述更新组播加入报文加入属性的处理能力信息,包括如下一个或多个:
更新组播加入报文加入属性的处理能力标识,更新节点所支持的加入属性的子类型。
7.一种分发树建立方法,其特征在于,包括:
接收每个节点的组播加入报文加入属性的处理能力信息;
基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树。
8.根据权利要求7所述的方法,其特征在于,接收每个节点的组播加入报文加入属性的处理能力信息,包括:
接收每个节点在IGP或BGP-LS中通告的组播加入报文加入属性的处理能力信息。
9.根据权利要求7所述的方法,其特征在于,所述基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树,包括:
保留原始网络拓扑结构中满足预设条件的节点,形成新的网络拓扑结构,其中,所述预设条件由组播加入报文加入属性的处理能力信息确定;
在所述新的网络拓扑结构上建立组播分发树。
10.根据权利要求9所述的方法,其特征在于,所述满足预设条件的节点包括以下一种或多种情况:
只具有组播加入报文加入属性处理能力标识并且未携带任何子类型的节点;
具有组播加入报文加入属性处理能力标识且所携带的子类型包括所需的特定子类型的节点。
11.一种信息发送装置,其特征在于,包括:
发送模块,被配置为确定本节点的组播加入报文加入属性的处理能力;向网络中通告组播加入报文加入属性的处理能力信息,其中,所述组播加入报文加入属性的处理能力信息用于指示本节点对组播加入报文所带加入属性的处理能力。
12.一种分发树建立装置,其特征在于,包括:
接收模块,被配置为接收每个节点的组播加入报文加入属性的处理能力信息;
建立模块,被配置为基于所述每个节点的组播加入报文加入属性的处理能力信息建立组播分发树。
13.一种设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-10任一项所述的方法。
14.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-10任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010592444.4A CN113839866A (zh) | 2020-06-24 | 2020-06-24 | 信息发送和分发树建立的方法、装置、设备和存储介质 |
KR1020227026061A KR102687706B1 (ko) | 2020-06-24 | 2021-06-22 | 정보 전송 및 분배 트리 구축 방법, 장치, 디바이스 및 저장 매체 |
US17/759,741 US20230064407A1 (en) | 2020-06-24 | 2021-06-22 | Information transmission and distribution tree establishment methods, apparatus, device, and storage medium |
EP21830246.1A EP4089963A4 (en) | 2020-06-24 | 2021-06-22 | METHOD FOR SETTING UP SHAFT AND INFORMATION DISTRIBUTION, DEVICE AND STORAGE MEDIA |
PCT/CN2021/101646 WO2021259292A1 (zh) | 2020-06-24 | 2021-06-22 | 信息发送和分发树建立的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010592444.4A CN113839866A (zh) | 2020-06-24 | 2020-06-24 | 信息发送和分发树建立的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113839866A true CN113839866A (zh) | 2021-12-24 |
Family
ID=78964916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010592444.4A Pending CN113839866A (zh) | 2020-06-24 | 2020-06-24 | 信息发送和分发树建立的方法、装置、设备和存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230064407A1 (zh) |
EP (1) | EP4089963A4 (zh) |
KR (1) | KR102687706B1 (zh) |
CN (1) | CN113839866A (zh) |
WO (1) | WO2021259292A1 (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553423B1 (en) * | 1999-05-27 | 2003-04-22 | Cisco Technology, Inc. | Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes |
CN101989952A (zh) * | 2010-11-03 | 2011-03-23 | 中兴通讯股份有限公司 | 一种组播方法及装置 |
CN109150580A (zh) * | 2017-06-28 | 2019-01-04 | 瞻博网络公司 | 协议无关多播加入熵 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101155135B (zh) * | 2006-09-28 | 2011-04-20 | 华为技术有限公司 | 一种泛洪自治系统边界路由器能力信息的方法及装置 |
US8804489B2 (en) * | 2010-09-29 | 2014-08-12 | Telefonaktiebolaget L M Ericsson (Publ) | Fast flooding based fast convergence to recover from network failures |
US9166903B2 (en) * | 2012-12-18 | 2015-10-20 | Alcatel Lucent | System, method and apparatus to resolve RPF-vector attribute conflicts |
US9401859B2 (en) * | 2013-01-23 | 2016-07-26 | Alcatel Lucent | Method to setup protocol independent multicast trees in the presence of unidirectional tunnels |
CN105429878A (zh) * | 2015-11-10 | 2016-03-23 | 上海斐讯数据通信技术有限公司 | 一种创建pim-sm spt的方法 |
-
2020
- 2020-06-24 CN CN202010592444.4A patent/CN113839866A/zh active Pending
-
2021
- 2021-06-22 WO PCT/CN2021/101646 patent/WO2021259292A1/zh unknown
- 2021-06-22 KR KR1020227026061A patent/KR102687706B1/ko active IP Right Grant
- 2021-06-22 EP EP21830246.1A patent/EP4089963A4/en active Pending
- 2021-06-22 US US17/759,741 patent/US20230064407A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553423B1 (en) * | 1999-05-27 | 2003-04-22 | Cisco Technology, Inc. | Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes |
CN101989952A (zh) * | 2010-11-03 | 2011-03-23 | 中兴通讯股份有限公司 | 一种组播方法及装置 |
CN109150580A (zh) * | 2017-06-28 | 2019-01-04 | 瞻博网络公司 | 协议无关多播加入熵 |
Non-Patent Citations (2)
Title |
---|
E. ROSEN, ED.; CISCO SYSTEMS, INC.; R. AGGARWAL, ED.; JUNIPER NETWORKS;: "Multicast in MPLS/BGP IP VPNs", IETF RFC6513, 28 February 2012 (2012-02-28), pages 5 * |
章磊等: "域间组播与PIM-SM的域间改进", 万方数据库, 9 April 2004 (2004-04-09) * |
Also Published As
Publication number | Publication date |
---|---|
EP4089963A4 (en) | 2023-08-16 |
WO2021259292A1 (zh) | 2021-12-30 |
EP4089963A1 (en) | 2022-11-16 |
KR102687706B1 (ko) | 2024-07-23 |
US20230064407A1 (en) | 2023-03-02 |
KR20220123054A (ko) | 2022-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113261245B (zh) | 网络链路或节点故障的恢复系统和方法 | |
US9397925B2 (en) | Method and apparatus for advertising border connection information of autonomous system | |
EP3244574B1 (en) | Alternate down paths for directed acyclic graph (dag) routing | |
CN102142970B (zh) | 二层以太网络的组播树构建方法和网络节点设备 | |
CN101167311B (zh) | 节点加入无线网格网络中多播组的方法和系统 | |
US9647959B2 (en) | Method, device, and system for creating bidirectional multicast distribution tree based on interior gateway protocol | |
CN111587580A (zh) | 内部网关协议洪泛最小化 | |
US20060088031A1 (en) | Method and apparatus for providing multicast messages within a virtual private network across a data communication network | |
US20140233422A1 (en) | Flooding and multicasting in a loop-free routing topology using routing arcs | |
US20090290486A1 (en) | Ring Network Routing Method and Ring Network Node | |
CN101455030A (zh) | 动态共享风险节点组(srng)成员发现 | |
Rosenberg | A primer of multicast routing | |
CN104937878B (zh) | 在单向隧道存在的情况下建立协议无关多播树的方法 | |
CN102932255B (zh) | 隧道路径选择的方法及装置 | |
CN103220217B (zh) | 一种路由生成方法和设备 | |
CN109005109B (zh) | 路由设置方法及组播组网系统 | |
US8423668B2 (en) | Link state protocol routing message containment | |
CN113839866A (zh) | 信息发送和分发树建立的方法、装置、设备和存储介质 | |
CN104426780A (zh) | 数据转发方法和系统 | |
CN114726783A (zh) | 通告路由的方法、装置及系统 | |
JP4244891B2 (ja) | ポイントツーマルチポイントMPLS(Multi−ProtocolLabelSwitching)通信方法及びシステム | |
CN118433090A (zh) | 通信方法及装置 | |
Pedroso et al. | 1 Problem Statement | |
CN101902695A (zh) | 网格网络中的多播路由协议 | |
CN104601478A (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 |