CN115529268B - 处理配置网络设备的指令 - Google Patents

处理配置网络设备的指令 Download PDF

Info

Publication number
CN115529268B
CN115529268B CN202210655172.7A CN202210655172A CN115529268B CN 115529268 B CN115529268 B CN 115529268B CN 202210655172 A CN202210655172 A CN 202210655172A CN 115529268 B CN115529268 B CN 115529268B
Authority
CN
China
Prior art keywords
configuration
node
instruction
nodes
network device
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
CN202210655172.7A
Other languages
English (en)
Other versions
CN115529268A (zh
Inventor
拉维拉杰·萨蒂什·德希穆克
普拉迪普·H·克里希纳穆尔蒂
瓦伦·S·K
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
Priority claimed from US17/449,617 external-priority patent/US11489724B1/en
Application filed by Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN115529268A publication Critical patent/CN115529268A/zh
Application granted granted Critical
Publication of CN115529268B publication Critical patent/CN115529268B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/044Network management architectures or arrangements comprising hierarchical management structures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0889Techniques to speed-up the configuration process

Abstract

本发明公开了处理配置网络设备的指令。一种控制器设备包括存储器,该存储器被配置为存储包括多个节点的树结构,其中该树结构包括子结构组,并且其中该树结构定义网络设备组中的网络设备的配置,使得该多个节点中的每个节点对应于该网络设备的相应资源。此外,控制器设备包括处理电路,处理电路被配置为接收用于更新网络设备的配置的指令,其中用于更新网络设备的配置的指令指明与更新相对应的节点组中的节点;以及基于与指令指明的节点对应的子结构组中的子结构,验证用于更新网络设备的配置的指令。

Description

处理配置网络设备的指令
相关申请
本申请要求2021年9月30日提交的美国专利申请第17/449,617号的优先权,要求2021年6月24日提交的印度临时专利申请第202141028389号的优先权,其全部内容通过引用并入本文。
技术领域
本公开内容涉及计算机网络,更具体地,涉及网络设备的管理。
背景技术
计算机网络是可以交换数据和共享资源的相互连接的计算设备的集合。各种设备操作以促进计算设备之间的通信。例如,计算机网络可以包括路由器、交换机、网关、防火墙和各种其他设备来提供和促进网络通信。
控制器可以执行配置任务和执行操作命令以收集和查看被管理设备的运行数据。例如,控制器可以配置设备的接口卡,调整所支持的网络协议的参数,指定设备内的物理网元,修改由路由器维护的路由信息,访问软件模块和驻留在装置上的其他资源,以及执行其他配置任务。此外,控制器可以允许用户从设备查看当前操作参数、系统日志、与网络连接相关的信息、网络活动或其他状态信息,以及查看从设备接收的事件信息并对其做出反应。
发明内容
总体而言,本公开描述了用于控制网络设备的技术。例如,控制器可被配置为配置网络设备内的网络设备组,并控制网络内的该网络设备组的操作。控制器的存储器可以被配置为存储包括多个节点的树结构。树结构可以定义网络内的该网络设备组中的网络设备的配置。即,多个节点中的每个节点可以对应于网络设备的相应资源(例如,配置资源)。当控制器接收到更新网络设备的配置的指令时,控制器可以基于树结构中的信息来验证请求。例如,如果指令包括对不由控制器管理的资源的配置进行更新的请求,则当该资源不存在于树结构中时,控制器可以拒绝该请求。
本公开的技术可以提供一个或多个优点。例如,树结构可以包括子结构组,其中,子结构组的每个子结构包括多个节点中相应的节点组。当控制器接收到引用节点的指令时,树结构可以识别对应于该节点的子结构,并且在不基于该子结构组中的其他子结构来验证该指令的情况下基于对应于该节点的子结构来验证该指令。相比于控制器基于整个树结构验证指令,这可以使得控制器更高效地验证指令。此外,存储器可被配置为存储包括多个配置表项的配置表。这些配置表项中的每一项可以指示对应于配置树的节点的路径和节点的名称,该节点对应于网络设备的相应资源。路径可以指示对应于节点的子结构。这样,控制器可以在指示节点的指令中确定与该节点对应的路径。控制器可以搜索配置表以确定所确定的路径是否对应于树结构中的节点的路径。
在一些实施例中,控制器设备包括:存储器,存储器被配置为存储包括多个节点的树结构,其中,树结构包括子结构组,子结构组的每个子结构包括多个节点中的相应节点组,并且其中,树结构定义网络设备组中的网络设备的配置,使得多个节点中的每个节点对应于网络设备的相应资源;以及处理电路。处理电路被配置为:接收更新网络设备的配置的指令,其中,该更新网络设备的配置的指令指明节点组中的节点对应于该更新;以及基于子结构组中的与该指令指明的节点对应的子结构,验证更新网络设备的配置的指令。
在一些实施例中,一种方法,包括:由处理器在存储器中存储包括多个节点的树结构,其中,树结构包括子结构组,该子结构组的每个子结构包括多个节点中的相应节点组,并且其中,树结构定义网络设备组中的网络设备的配置(例如,配置模型),使得多个节点中的每个节点对应于网络设备的相应资源;由控制器设备的处理电路接收更新网络设备的配置的指令,其中,更新网络设备的配置的指令指明节点组中的与该更新对应的节点;以及由处理电路基于子结构组中的与指令指明的节点对应的子结构,验证更新网络设备的配置的指令。
在一些实施例中,一种系统,包括网络设备组中的网络设备和控制器设备。控制器设备包括:存储器,存储器被配置为存储包括多个节点的树结构,其中,树结构包括子结构组,子结构组的每个子结构包括多个节点中的相应节点组,并且其中,树结构定义网络设备的配置,使得多个节点中的每个节点对应于网络设备的相应资源;以及处理电路。处理电路被配置为:接收更新网络设备的配置的指令,其中,该更新网络设备的配置的指令指明节点组中的与该更新对应的节点;以及基于子结构组中的与该指令指明的节点对应的子结构,验证更新网络设备的配置的指令。
发明内容旨在提供本公开中描述的主题的概述。本发明无意提供在以下附图和描述中详细描述的系统、设备和方法的排他性或穷尽性解释。本公开的一个或多个实施例的进一步细节在附图和下面的描述中阐述。其他特征、目的和优点将从描述和附图以及权利要求中显而易见。
附图说明
图1是示出根据本公开的一个或多个技术的包括使用控制器设备管理的企业网络的网元的实施例的框图。
图2是示出根据本公开的一个或多个技术的用于图1的控制器设备的示例部件组的框图。
图3是示出根据本公开的一个或多个技术的示例节点层次结构和树结构的示例模式(schema)的概念图。
图4是示出根据本公开的一个或多个技术的用于验证更新网络设备的配置的指令的示例操作的流程图。
具体实施方式
图1是示出根据本公开的一个或多个技术的包括使用控制器设备10管理的企业网络2的网元的实施例的框图。企业网络2的被管理网元14A至14G(统称为“网元(element)14”)包括经由通信链路互连以形成通信拓扑以便交换资源和信息的网络设备。网元14(通常也称为网络设备或远程网络设备)可以包括例如路由器、交换机、网关、网桥、集线器、服务器、防火墙或其他入侵检测系统(IDS)或入侵预防系统(IDP)、计算设备、计算终端、打印机、其他网络设备或这些设备的组合。尽管在本公开中描述为发送、传送或以其他方式支持数据包,但企业网络2可以根据由任何其他协议定义的任何其他离散数据单元来发送数据,例如由异步传输模式(ATM)协议定义的信元或由用户数据报协议(UDP)定义的数据报。将网元14互连的通信链路可以是物理链路(例如,光链路、铜链路等)、无线链路或其任何组合。
企业网络2被示为经由通信链路耦接到公共网络18(例如,因特网)。公共网络18可以包括例如一个或多个客户端计算设备。公共网络18可以提供对web服务器、应用服务器、公共数据库、媒体服务器、最终用户设备以及其他类型的网络资源设备和内容的访问。
控制器设备10经由企业网络2通信耦接到网元14。在一些实施例中,控制器设备10构成设备管理系统的一部分,尽管在图1中为了示例的目的仅示出了设备管理系统的一个设备。控制器设备10可以直接或间接地耦接到各种网元14。一旦网元14被部署和激活,管理员12使用控制器设备10利用设备管理协议来管理网络设备。简单网络管理协议(SNMP)是设备协议的一个实施例,其允许控制器设备10遍历和修改管理信息库(MIB),MIB存储每个被管理网元14内的配置数据。SNMP协议的进一步细节可以见Harrington等人.,RFC 3411,“AnArchitecture for Describing Simple Network Management Protocol(SNMP)Management Frameworks,”,Network Working Group,the Internet Engineering TaskForce draft,2002年12月,可见于http://tools.ietf.org/html/RFC3411,其全部内容通过引用并入本文。
在通常的实践中,控制器设备10(也称为网络管理系统(NMS)或NMS设备)和网元14由企业的IT组集中维护。管理员12与控制器设备10交互以远程监测和配置网元14。例如,管理员12可以从控制器设备10接收关于任何网元14的警报,查看网元14的配置数据,修改网元14的配置数据,向企业网络2添加新的网络设备,从企业网络2移除现有的网络设备,或者以其他方式操纵企业网络2和其中的网络设备。尽管针对企业网络进行了描述,但本公开的技术可应用于其他网络类型,公共和专用,包括LAN、VLAN、VPN等。
在一些实施例中,管理员12使用控制器设备10或本地工作站与网元14直接交互,例如通过telnet、secure shell(SSH)或其他类似的通信会话。即,网元14通常提供用于直接交互的接口,例如命令行接口(CLI)、基于web的接口、图形用户界面(GUI)等,通过这些接口,用户可以与设备交互以直接发布基于文本的命令。例如,这些接口通常允许用户例如通过telnet、secure shell(SSH)、超文本传输协议(HTTP)或其他网络会话直接与设备交互,以根据定义的语法输入文本以向被管理网元提交命令。在一些实施例中,用户使用控制器设备10与网元14之一(例如网元14F)启动SSH会话15,以直接配置网元14F。以这种方式,用户可以直接向网元14提供用于执行的格式的命令。
此外,管理员12还可以创建可由控制器设备10提交给任何或所有网元14的脚本。例如,除了CLI接口之外,网元14还提供用于接收根据脚本语言指定命令的脚本的接口。在某种意义上,脚本可以由控制器设备10输出,以自动调用被管理网元14上的对应的远程过程调用(RPC)。脚本可以符合例如可扩展标记语言(XML)或另一数据描述语言。
管理员12使用控制器设备10来配置网元14,以指定进一步实现管理员12的目标的某些操作特性。例如,管理员12可以为网元14指定特定操作策略,关于安全性、设备可访问性、流量工程、服务质量(QoS)、网络地址转换(NAT)、数据包过滤、数据包转发、速率限制或其他策略。控制器设备10使用被设计用于管理被管理的网络网元14内的配置数据的一个或多个网络管理协议(例如SNMP协议或网络配置协议(NETCONF)或其衍生物,例如Juniper设备管理接口)来执行配置。通常,NETCONF提供配置网络设备的机制,并对配置数据使用基于可扩展标记语言(XML)的数据编码,其可能包括策略数据。在Enns,“NETCONFConfiguration Protocol”,Network Working Group,RFC 4741,2006年12月,可见于tools.ietf.org/html/RFC4741中描述了NETCONF。控制器设备10可以与一个或多个网元14建立NETCONF会话。
在一些实施例中,控制器设备10包括被配置为存储包括多个节点的树结构的数据库,其中,树结构对应于网元14中的网元。例如,树结构可以对应于网元14A。数据库可以被配置为存储对应于网元14中的任何一个或多个网元的树结构。树结构可以通过定义网元14A的一个或多个资源的层次结构来定义网元14A的配置。树结构可能表示YANG(YetAnother Next Generation)文件,但这不是必需的。树结构可以包括能够表达网元14A的资源的层次结构的任何类型的文件。
由控制器设备10的存储器存储的树结构可以表示多个节点之间的依赖关系的多级层次结构(multi-level hierarchy)。例如,树结构可能起源于根节点(其代表主节点)。一个或多个次级节点可以依赖于主节点,一个或多个三级节点可以依赖于各个次级节点,以此类推。该层次结构可以包括任意数量的级别。树结构中的每个节点可以具有父节点,树结构中的每个节点可以具有一个或多个子节点。在一些实施例中,树结构可被拆分为子结构组,其中,该子结构组中的每个子结构包括树结构中的多个节点中的一个或多个节点的分支。例如,第一子结构可以起源于第一次节点(其作为主节点的子节点)。第一子结构可以包括从第一次节点递降的每个节点。例如,第二子结构可以起源于第二次节点(其作为主节点的子节点)。第二子结构可以包括从第二次节点递降的每个节点。子结构代表定义网元14A的配置的全树结构的部分,因此子结构定义网元14A的一部分配置。
控制器设备10可以接收对于任何网元14的配置进行更新的指令。例如,该指令可以表示更新网元14A的配置的请求。更新网元14A的配置的指令可以指明树结构中存在的一个或多个节点,其中,树结构定义网元14A的配置。控制器设备10可以基于树结构中的信息和指令中所指明的一个或多个节点来验证该指令。例如,控制器设备10可以通过确认由指令指明的一个或多个节点存在于树结构中来验证指令。当由指令指明的一个或多个节点存在于树结构中时,控制器设备10可以根据该指令更新网元14A的配置,因为控制器设备10管理与指令指明的一个或多个节点对应的资源。当由指令指明的一个或多个节点不存在于树结构中时,控制器设备10可以拒绝根据指令更新网元14A的配置,因为控制器设备10可能不管理与指令指明的一个或多个节点对应的资源。
对于控制器设备10而言仅通过对照与一个或多个节点对应的子结构检查由该指令标识的一个或多个节点来验证该指令,可能是有益的。例如,当指令指明作为次节点的子节点的三级节点时,控制器设备10可以确定三级节点是否存在于源自次节点的子结构中,而无需确定三级节点是否存在与其他次节点对应的其他子结构。与控制器对照整个树结构检查节点相比,通过确定由指令指明的一个或多个节点是否存在于与该一个或多个节点对应的子结构中,而无需确定该一个或多个节点是否存在于该树结构的其他子结构中,控制器设备10更高效地验证该指令。例如,与控制器对照整个树结构检查节点相比,通过仅对照一个子结构检查节点,控制器设备10可以消耗更少的计算资源,并且在更短的时间内验证指令。
在一些实施例中,控制器设备10接收更新网元14A的配置的指令,其中,该指令代表根据gNMI协议的远程过程调用(RPC)。gNMI协议代表用于修改和检索诸如网元14的网络设备的配置的基于gRPC的协议。例如,gNMI Set RPC指令可使控制器设备10更新、替换或删除定义网元14之一的配置的树结构中的一个或多个节点。控制器设备10可以根据底层树结构(其通过识别树结构中每个节点的路径、名称和属性来识别节点)处理gNMI指令。在一些实施例中,树结构包括以文件(例如,YANG文件)形式定义的模式,其指示节点之间的引用。
为了比较由更新网元14A的配置的指令所指明的节点,控制器设备10可以对照配置表来检查该节点。例如,控制器设备的存储器可以存储包括多个配置表项的配置表,其中多个配置表项的每个配置表项对应于树结构中的多个节点中的相应节点。在某些实施例中,配置表代表YAML非标记语言(YAML,YAML Ain’t Markup Language)文件,但这并不是必需的。配置表可以代表被配置为存储与节点对应的信息的任何类型的表。在一些实施例中,配置表包括多个配置表项,其中每个配置表项表明与对应于配置表项的相应节点相关联的名称、模块、路径和类型中的任意一个或其组合。控制器设备10可以对照由配置表项指明的信息检查与在指令中标识的节点对应的信息,以便确定由指令指明的节点是否存在于树结构中。
在一些实施例中,更新网元14A的配置的指令包括更新网元14A的现有资源的配置的请求。在一些实施例中,控制器设备10根据gNMI协议接收指令,但这不是必需的。控制器设备10可以根据其他协议接收该指令。在一些实施例中,为了验证用于更新网元14A的现有资源的指令,控制器设备10被配置为识别由用于更新网络设备的配置的指令所标识的路径。该路径可以代表到树结构中的节点的路径。换而言之,路径可以标识指令中标识的节点的一个或多个祖系节点的链。当控制器设备10识别对应于所识别的节点的路径时,控制器设备10可以将所识别的路径与由多个配置表项中的一个或多个配置表项表明的路径进行比较。在一些实施例中,控制器设备10可基于与指令指明的节点相对应的识别路径来确定对应于由指令指明的节点的子结构。子结构可对应于所识别路径中的次节点、三级节点或另一节点。在某些情况下,控制器设备10可以只将识别的路径与对应于确定的子结构内节点的一个或多个配置表项的路径进行比较。当控制器设备10确定所识别的路径匹配由一个或多个配置表项中的配置表项指明的路径时,控制器设备10可以验证由指令指明的节点存在于树结构中。当控制器设备10确定所识别的路径与由一个或多个配置表项中的配置表项指明的路径不匹配时,则控制器设备10可以确定由指令指明的节点不存在于树结构中,并拒绝验证该指令。
在一些实施例中,控制器设备10被配置为根据确定指令中识别的路径与配置表项指明的路径相对应来验证更新网元14A的配置的指令,而无需将识别的路径与树结构本身进行比较。换而言之,控制器设备10可以将所识别的路径与配置表项中的路径信息进行比较,而不将所识别的路径与树结构本身进行比较。对于控制器设备10而言,将识别的路径与配置表项中的路径信息进行比较可能是有益的,因为每个配置表项包括对应于节点的路径信息。由于配置表项已经包括路径信息,控制器设备10不需要为了检查识别的路径是否对应于树结构中的节点而处理树结构来确定路径信息。
在一些实施例中,更新网元14A的配置的指令包括配置信息,控制器设备10被配置为响应于验证该指令而基于配置信息来更新网元14A的配置。配置信息可以指明节点。在一些实施例中,配置信息可以包括对节点名称、节点类型或节点模块的更改。配置信息可以包括与网元14A的配置有关的任何信息。配置信息可以包括用于添加、删除或修改节点的信息。在任何情况下,控制器设备10可以基于配置信息更新网元14A的配置。
在一些实施例中,更新网元14A的配置的指令包括在网元14A内创建新资源的请求。例如,创建新资源的指令可以代表创建引用由该指令指明的节点的网络实例的指令。控制器设备10被配置为基于更新网元14A的配置的指令,确定由指令指明的节点的名称,并确定多个配置表项中是否包括对应于名称与指令指明的节点的名称相匹配的节点的配置表项。控制器设备10可以通过从与节点对应的子结构组中的子结构中提取节点的名称来确定由指令指明的节点的名称。例如,控制器设备10可以被配置为解析子结构并生成节点的名称。基于确定多个配置表项包括与指令指明的节点的名称相匹配的名称,控制器设备10可以更新网元14的配置以包括新资源。在一些实施例中,控制器设备10可更新树结构以指明引用由指令指明的节点的新资源。控制器设备10还可以更新配置表以包括用于新资源的配置表项。
控制器设备10的存储器可以被配置为存储包括节点引用表项组的节点引用表。在一些实施例中,节点引用表项组中的每个节点引用表项对应于树结构中的被树结构中的另一个节点引用的节点。节点引用表项组中的每个节点引用表项可以包括由引用节点引用的节点的名称和引用节点的名称。在一些实施例中,更新网元14A的配置的指令包括删除由该指令指明的节点的请求。控制器设备10被配置为基于更新网元14A的配置的指令,确定由该指令指明的节点的名称。控制器设备10可以确定多个节点引用表项是否包括与具有与指令所指明的节点的名称匹配的名称的节点相对应的节点引用表项。当多个节点引用表项包括具有与指令所指明的节点的名称匹配的名称的节点引用表项时,控制器设备10可以拒绝执行删除节点的请求。修改由另一节点引用的节点可能会破坏网络的操作,因此控制器设备10不删除由其他节点引用的节点是有益的。当多个节点引用表项不包括具有与指令所指明的节点的名称匹配的名称的节点引用表项时,控制器设备10可以执行删除节点的请求。
图2是示出根据本公开的一个或多个技术,用于图1的控制器设备的一组部件的实施例的框图。在图2中的实施例中,控制器设备10包括控制单元20、用户接口32、网络接口34和存储器40。控制单元20包括配置单元22、指令分析单元24、用户接口模块26和网络接口模块28。存储器40包括树结构42、配置表44和节点引用表46。
控制单元20代表用于实现归属于控制单元20及其组成模块和元件的功能的硬件、软件和/或固件的任何组合。当控制单元20包括软件或固件时,控制单元20还包括用于存储和执行软件或固件的任何必要硬件,例如一个或多个处理器或处理单元。通常,处理单元可以包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或分立逻辑电路,以及这些组件的任何组合。此外,处理单元通常使用固定和/或可编程逻辑电路来实现。处理器和处理单元可称为“处理电路”。
用户接口32代表一个或多个接口,通过该接口,诸如管理员12(图1)的用户与控制器设备10交互以例如提供输入和接收输出。例如,用户接口32可以代表监视器、键盘、鼠标、触摸屏、触摸板、触控板、扬声器、照相机、麦克风等中的一个或多个。此外,尽管在该实施例中控制器设备10包括用户接口,但应当理解,管理员12不需要直接与控制器设备10交互,而是可以例如经由网络接口34远程访问控制器设备10。
网络接口34代表一种示例接口,其可将控制器设备10通信耦接到外部设备,例如,图1中的网元14之一。网络接口34可以表示无线和/或有线接口,例如,以太网接口或无线电波,被配置为根据无线标准进行通信,例如IEEE 802.11无线网络协议(例如802.11a/b/g/n或其他类似的无线协议)中的一个或多个。在各种实施例中,尽管出于示例的目的仅示出了一个网络接口,但控制器设备10可以包括多个网络接口。
存储器40可被配置为在控制器设备10操作期间存储信息。存储器40可包括计算机可读存储介质或计算机可读存储设备。在一些实施例中,存储器40包括一个以上短期存储器或长期存储器。存储器40可以包括,例如,随机存取存储器(RAM),动态随机存取存储器(DRAM),静态随机存取存储器(SRAM)、磁盘、光盘、闪存或电可编程存储器(EPROM)或电可擦可编程存储器(EEPROM)。在一些实施例中,存储器40用于存储由控制器设备10执行的程序指令。存储器40可由在控制器设备10上运行的软件或应用程序使用,以便在程序执行期间临时存储信息。
在该实施例中,控制单元20包括配置单元22、指令分析单元24、用户接口模块26和网络接口模块28。控制单元20执行用户接口模块26,以从用户接口32接收输入和/或向其提供输出。控制单元20还执行网络接口模块28以经由网络接口34发送和接收数据(例如,数据包)。用户接口模块26和网络接口模块28可以实现为各个硬件单元,或者以软件或固件实现,或以其组合实现。
控制单元20执行配置单元22,以配置各种网络设备,例如图1中的网元14。例如,配置单元22可以根据从用户(例如,图1中的管理员12)接收的指令来配置网络设备并使用户能够提交配置网络设备的指令。控制单元还包括指令分析单元24,被配置为接收配置图1中的网元14的用户指令以及处理该指令。
存储器40存储一个或多个树结构42。一个或多个树结构42的每个树结构包括定义网元14的相应网元的配置的多个节点。例如,树结构42的树结构可以包括多个节点,其中多个节点中的每个节点对应于网元14A的相应资源,并且配置网元14A的请求可以指明树结构的节点。树结构可以通过定义网元14A的一个或多个资源的层次结构来定义网元14A的配置。在一些实施例中,树结构可代表YANG文件。
在一些实施例中,树结构42的树结构可被分离成子结构组,其中,子结构组的每个子结构包括多个节点中的一个或多个节点。例如,树结构可以代表树结构的各种配置节(configuration knob)的模型,作为单独管理的实体,每个被称为配置资源。例如,“接口(Interfaces)”,“接口(Interface)”,“子接口(Subinterfaces)”,“子接口(Subinterface)”,“网络实例(NetworkInstance)”,“区(Zone)”,“防火墙策略(FirewallPolicy)”是树结构的可能配置资源的示例。每个配置资源代表树结构的一个部分。
例如,下面是树结构42的树结构的示例模式。
示例模式说明了定义节点层次结构的树结构。例如,节点的层次结构以“根(root)”节点开始。“接口(interfaces)”节点和“网络实例(network-instances)”节点都依赖于接口节点。也就是说,接口节点和网络实例节点是根节点的子节点,根节点是接口节点和网络实例节点的父节点。接口节点是一个或多个“接口”节点的父节点,其中一个或多个接口节点的每个接口节点定义网元14A的接口资源的配置。例如,每个接口节点可以定义接口的名称和配置。接口节点还可以定义对应于接口配置的名称、类型和最大传输单元(MTU)参数。此外,接口节点(interfaces node)是“子接口(subinterfaces)”节点的父节点,子接口节点(subinterfaces node)是一个或多个“子接口”节点的父节点。一个或多个子接口节点中的每个子接口节点可以指明网元14A的相应子接口资源的索引和配置。
示例模式还可以指明树结构中存在的引用。例如,网元/根/接口/接口/子接口/子接口/索引可以对应于element/root/interfaces/interface/subinterfaces/subinterface/config/index。另外,或者可选地,网元/根/网络实例/网络实例/接口/接口/配置/接口可以对应于element/root/interfaces/interface/name。另外,或者可选地,网元/根/网络实例/网络实例/接口/接口/配置/子接口可以引用element/root/interfaces/interface[name=current()/../interface]/subinterfaces/subinterface/index。在等号(=)后面方括号中的路径可以在引用者节点的上下文中求值。XPath/YANG函数“current()”可以选择当前节点/root/network-instances/network-instance/interfaces/interface/config/subinterfa ce。语法“..”选择当前节点的父节点。因此,路径“current()/../interface”的计算结果为“/root/network-instances/network-instance/interfaces/interface/config/interface.”。此信息可以填充节点引用表。
网络实例(network-instances)节点是一个或多个“网络实例(network-instance)”节点的父节点。一个或多个网络实例节点的每个网络实例节点可以定义网元14A的相应的网络实例资源的名称和配置。此外,每个网络实例节点可以引用树结构的一个或多个的接口节点或子接口节点。在一些实施例中,“接口(Interface)”、“子接口(Subinterface)”和“网络实例(NetworkInstance)”配置资源在示例树结构中定义。接口配置资源可以代表树结构的/interfaces/interface路径下的除了子接口节点之外的每个节点。子接口配置资源可以表示树结构的/interfaces/interface/subinterfaces/subinterface路径下的每个节点。网络实例配置资源可以表示树结构的/network-instances/network-instance路径下的每个节点。
在一些实施例中,树结构42的树结构可被拆分为子结构组,其中,子结构组的每个子结构包括树结构中的多个节点中的一个或多个节点的分支。例如,第一子结构可以起源于第一次节点(其作为主节点的子节点)。第一子结构可以包括从第一次节点递降的每个节点。例如,第二子结构可以起源于第二次节点(其作为主节点的子节点)。第二子结构可以包括从第二次节点递降的每个节点。子结构代表定义网元14A的配置的全树结构的部分,因此子结构定义网元14A的配置的一部分。这样,子结构可以代表树结构的配置资源(例如,接口、子接口和网络实例),但这不是必需的。子结构可以代表树结构的任何部分,该部分起源于不是根节点的节点。例如,示例树结构的子结构可以包括从网络实例节点递降的所有节点(例如,所有网络实例节点和从网络实例节点递降的所有节点)。
存储器40还被配置为存储一个或多个配置表44。一个或多个配置表中的每个配置表可以对应于一个或多个树结构42中的树结构。每个配置表可以包括多个配置表项,其中,多个配置表项中的每个配置表项对应于相应树结构的节点。多个配置表项的每个配置表项可以包括关于相应节点的信息,诸如节点的完全限定名(fully qualified name)、对应于节点的模块、节点在树结构中的路径以及节点的类型。在一些实施例中,一个或多个配置表44可以代表YAML文件,但这不是必需的。一个或多个配置表可以代表被配置为存储关于各个节点的信息的任何类型的文件。一个或多个配置表44的数据格式可以包括JSON、XML、Protobuf或任何其他数据格式。以下是三个配置表项的例子,以供参考。
示例配置表项1
-
fq_name:"Interface[name=%s]"
module:openconfig-interfaces
path:/interfaces/interface
type:Interface
示例配置表项2
-
fq_name:"Interface[name=%s]/Subinterface[name=%s]"
module:openconfig-interfaces
path:/interfaces/interface/subinterfaces/subinterface
type:Subinterface
示例配置表项3
-
fq_name:"NetworkInstance[name=%s]"
module:openconfig-network-instance
path:/network-instances/network-instance
type:NetworkInstance
第一示例配置表项对应于示例树结构中的“接口(interface)”节点。第一示例配置表项中的完全限定名“fq_name”是“Interface[name=%s]”。在一些实施例中,控制器设备10可以用示例树结构中接口节点的名称填充“%s”字符。第一示例配置表项的模块是“openConfig-interfaces”。第一示例配置表项的路径是“/interfaces/interface”。在一些实施例中,示例配置表项所指明的路径不是从树结构的“根(root)”节点开始的,这样树结构就可以分成子结构。例如,第一示例配置表项可以对应于作为源自树结构的“interfaces”节点的子结构的一部分的节点。第一示例配置表项的类型可能对应于“Interface”配置资源。
第二示例配置表项对应于示例树结构中的“subinterface”节点。第二示例配置表项中的完全限定名是“Interface[name=%s]/Subinterface[name=%s].”。在一些实施例中,控制器设备10可以用示例树结构中子接口节点的名称填充“%s”字符。第二示例配置表项的模块是“openconfig-interfaces”。第二示例配置表项的路径是“/interfaces/interface/subinterfaces/subinterface”。第二示例配置表项可以对应于节点,该节点是起源于树结构的“interfaces”节点处的子结构的一部分。第二示例配置表项的类型可能对应于“Subinterface”配置资源。
第三示例配置表项实施例对应于示例树结构中的“network-instance”节点。第三示例配置表项中的完全限定名是“NetworkInstance[name=%s]”。在一些实施例中,控制器设备10可以用示例树结构中的网络接口节点的名称填充“%s”字符。第三示例配置表项的模块是“openconfig-network-instance”。第三示例配置表项的路径是“/network-instances/network-instance.”。第三示例配置表项可以对应于作为源自树结构的“network-instances”节点的子结构的一部分的节点。第三示例配置表项实施例的类型可能对应于“NetworkInstance”配置资源。
完全限定名是唯一的资源名称,它明确标识节点。节点的完全限定名可以包括通向该节点的整个层级序列。在一些实施例中,完全限定名可能会被缩短。例如,完全限定名“Interface[name=%s]/Subinterface[name=%s]”给予接口节点的名称和依赖于接口节点的子接口节点的索引。通过指定子接口节点的名称和子接口节点的索引,控制器设备10可以缩短完全限定名以移除根节点和接口节点,从而使完全限定名与来自根节点的gNMI路径相比得以缩短。
在一些实施例中,控制单元20可以为网元14A的每个资源生成唯一名称,并将该唯一名称传播到树结构42、配置表44和节点引用表46。对于接口节点,唯一名称可以是“/interfaces/interface[name=ge-0/0/3]”,完全限定名可以是Interface[name=ge-0/0/3]。对于子接口节点,唯一名称可以是“/interfaces/interface[name=ge-0/0/3]/subinterfaces/subinterface[index=0]”,完全限定名可以是“Interface[name=ge-0/0/3]/Subinterface[index=0]”。对于网络实例节点,唯一名称可以是“/interfaces/interface[name=ge-0/0/3]/subinterfaces/subinterface[index=0]”,完全限定名可以是“Interface[name=ge-0/0/3]/Subinterface[index=0]”。通过维护配置表44,控制器设备10不需要遍历整个树结构来插入节点,控制器设备10必须插入指定从节点的路径导出的唯一完全限定名的配置表项。
指令分析单元24可以经由用户接口模块26接收用于更新任何网元14的配置的指令。例如,该指令可以代表更新网元14A的配置的请求。更新网元14A的配置的指令可以指示对应于网元14A的一个或多个节点存在于树结构42的树结构中。控制器设备10可以基于树结构中的信息和指令中指明的一个或多个节点来验证指令。例如,控制器设备10可以通过确认由指令指明的一个或多个节点存在于树结构中来验证指令。
在一些实施例中,更新网元14A的配置的指令代表gNMISetRequest。因为控制器设备10保持与网元14A对应的配置表44的配置表,所以指令分析单元24不必遍历整个树结构来处理指令。下面再现一个示例gNMI指令以供参考。
/>
行"target":"754d549c-facb-4062-b311-13e2dd6592eb"指明与gNMI指令相对应的网络设备,例如网元14A。因此,指令分析单元24可以在处理指令时查找树结构和与网元14A对应的配置表。如示例gNMI指令所示,该指令引用名为“ge-0/0/3”的接口节点。指令分析单元24可以处理gNMI指令以确定到接口节点的路径。例如,指令分析单元24可以确定路径是“interfaces/interface”。随后,指令分析单元24可以将确定的路径与对应于网元14A的一个或多个配置表项的路径进行比较。在一些实施例中,指令分析单元24可以仅对照与所确定的路径的相同子结构对应的配置表项来检查所确定的路径。指令分析单元24可以基于确定具有由gNMI指令指明的节点的确定路径的配置表项存在来验证gNMI指令。如果由gNMI指令指明的节点的确定路径与配置表项的路径不匹配,则指令分析单元可以拒绝gNMI指令,并经由用户接口模块26返回错误消息以供用户接口32显示。
基于指令分析单元24证实gNMI指令,指令分析单元24可以输出用于配置单元22的指令,以根据gNMI指令配置网元14A。例如,gNMI指令包含文本"jsonVal":"{\"config\":{\"description\":\"Description for interface ge-0/0/4\",\"name\":\"ge-0/0/4\"}}"。配置单元22可配置网元14A的资源,并更新配置表项,以包括具有完全限定名Interface[name=ge-0/0/4]的配置表项。配置单元22可以从gNMI指令指明的gNMI路径和gNMI指令指明的名称“ge-0/0/4”导出完全限定名。
在一些实施例中,即使当输入中的gNMI路径在单个子结构内较短(例如,更新在替换/更新列表的一个网元中的多个配置子结构)或较长(例如,更新特定配置节)时,控制器设备10也可以创建一个或多个子结构。在一些实施例中,控制器设备10可以采用较短的gNMI路径并将较短的gNMI路径转换为多个gNMI路径/值对以用于替换/更新操作。如果gNMI路径较长,则控制器设备10可以处理该路径及其JSON以创建将映射到ConfigResource定义的一个gNMI更新网元。
在一些实施例中,指令分析单元24可以经由用户接口模块26接收通过创建网络实例资源来更新网元14A的配置的指令。指令分析单元24被配置为根据用于更新网元14A的配置的指令,确定由指令指明的节点的完全限定名,并确定多个配置表项是否包括与具有与由指令指明的节点的完全限定名匹配的完全限定名的节点对应的配置表项。下面再现了创建网络实例的示例请求。
/>
如创建网络实例的示例请求所示,示例请求引用名为“ge-0/0/3”的接口和索引为“0”的子接口。在一些实施例中,指令分析单元24可以从树结构的模式中提取接口的完全限定名和子接口的完全限定名。指令分析单元24可以为创建网络实例的请求所引用的接口节点提取完全限定名“Interface[name=ge-0/0/3]”,并且指令分析单元24可以提取完全限定名“Interface[name=ge-0/0/3]/Subinterface[name=0]”。指令分析单元24可以检查配置表44的与网元14A相对应的配置表,以确定是否存在与创建网络实例的示例请求所引用的接口节点和子接口节点相对应的配置表项。当存在与创建网络实例的示例请求所引用的接口节点和子接口节点相对应的配置表项时,指令分析单元24可以使配置单元22更新网元14A的配置以包括引用接口节点和子接口节点的网络实例。当不存在对应于接口节点和子接口节点中的一个或两者的配置表时,指令分析单元24可以拒绝使配置单元22更新网元14A的配置。
存储器40可以存储一组节点引用表46,其中,节点引用表46的每个节点引用表对应于网元14的相应网元。在一些实施例中,每个节点引用表包括多个节点引用表项,每个项对应于引用一个或多个其他节点的节点。例如,对应于网元14A的节点引用表可以包括用于每个网络实例节点(其引用对应于网元14A的树结构中的另一节点)的项。下面的表1中再现了两个节点引用表项的示例。表可以省略节点本身内的引用。
表1
如表1所示,具有完全限定名“NetworkInstance[name=ft-test]”的网络实例节点引用具有完全限定名“Interface[name=ge-0/0/3]”的接口节点和具有完全限定名“Interface[name=ge-0/0/3]/Subinterface[index=0]”的子接口节点。在一些实施例中,指令分析单元24接收用于通过删除由指令指明的节点来更新网元14A的配置的该指令。指令分析单元24被配置为根据用于更新网元14A的配置的指令,确定由该指令指明的节点的完全限定名。控制器设备10可以确定节点引用表项指明具有完全限定名的节点是否被另一节点引用。指令分析单元24可以拒绝删除由其他节点引用的节点(诸如网络实例节点)。
在一些实施例中,将树结构拆分为多个重叠部分使得控制器设备10能独立地管理重叠部分。例如,接口(Interface)配置资源和子接口(Subinterface)配置资源可以包含在“interfaces”节点中,网络实例(NetworkInstance)配置资源和协议(Protocols)配置资源可以包含在network-instances节点中。与当验证的范围不被限制时相比,当验证的范围被限制时,验证用于更新网络设备的配置的指令可能更有效。限制验证范围的一种方法是将树结构拆分为一个或多个子结构,并针对一个或多个子结构来验证指令,而无需针对整个树来验证指令。
控制器设备10可以与不根据gNMI协议所需的顺序排列路径/值对的gNMI set操作兼容。例如,gNMI规范规定操作的顺序是删除、替换、更新。在删除、替换和更新路径的顺序中,每个路径都需要按照它在列表中出现的顺序进行处理。因此,当路径/值对处于正确的顺序时,gNMI SetRequest指令处于“正确”的顺序。也就是说,在gNMI指令中,被引用的路径/值对应该出现在引用者之前。在一些实施例中,控制器设备10可以存储路径/值对的所需顺序,以便客户端可以发送以任何顺序具有路径/值对的gNMI指令。随后,指令分析单元24可以“修复”错误排序的gNMI指令的排序。指令分析单元24可以使用“编辑-顺序”功能来创建或更新路径/值对,并且使用“删除-顺序”功能来删除路径。
在一些实施例中,客户设备不知道openconfig模式,并使用config-service公开的基于原型(proto-based)的接口。下面的代码是基于原型定义子接口类型的资源的配置资源的示例。
基于原型的接口为控制器设备10提供对上述资源定义的编辑/删除操作。如上所示,谓词是在资源中定义的,用于标识openconfig模块和资源定义所在模块中的路径。模块是(module)="openconfig-interfaces",路径是(path)="interfaces/interface/subinterfaces/subinterface"。
图3是示出根据本公开的一个或多个技术的示例节点层次结构50和树结构70的示例模式的概念图。节点层次结构50是节点之间的依赖关系图,树结构70是如何以文本表示节点层次结构50的图。如图3所示,节点层次结构50可以包括节点52、节点54、节点56A至56N(统称为“节点56”)、节点58、节点60A至60N(统称为“节点60”)、节点62、节点64A至64N(统称为“节点64”)。树结构70可以包括文本72、文本74、文本76A至76N(统称为“文本76”)、文本78、文本80A至80N(统称为“文本80”)、文本82、文本84A至84N(统称为“节点84”)。节点层次结构50可以说明节点之间的一个或多个依赖关系。例如,节点52是节点54和节点62的父节点。父节点可以有多于一个子节点。节点层次结构50可以用文本表示,如树结构70所示。文本72可以对应于节点52,文本74可以对应于节点52,等等。正如在图3中所看到的,文本可以缩进以指明节点何时依赖于另一个节点。例如,文本80A从文本78缩进,因为节点60A依赖于节点58。树结构70可以是图2的树结构42之一的实施例。
图4是示出根据本公开的一个或多个技术的用于验证更新网络设备的配置的指令的示例操作的流程图。为了方便起见,图4关于图1至2的控制器设备10和网元14进行了描述。然而,图4的技术可以由控制器设备10和网元14的不同组件或由附加的或替代的设备来执行。
控制器设备10可以接收(402)用于更新网络设备(例如,网元14A)的配置的指令。在某些情况下,该指令可以指明网络设备的配置的节点,其中该节点是设备网络设备的配置的树结构的一部分。在一些实施例中,控制器设备10可以验证(404)用于更新网络设备的配置的指令。在一些实施例中,控制器设备10可以通过对照与网元14A对应的一个或多个配置表项检查节点来验证更新网络网络设备的配置的指令。每个配置表项可以对应于树结构的节点。当节点匹配配置表项时,控制器设备10可以验证该指令。控制器设备10可基于验证指令来更新(406)网元14A的配置。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任何组合来实现。例如,技术的各个方面可以在一个或多个处理器内实现,处理器包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或离散逻辑电路,以及这些组件的任何组合。术语“处理器”或“处理电路”一般可指上述逻辑电路中的任何一个,单独或与其他逻辑电路组合,或任何其他等价电路。包括硬件的控制单元也可以执行本公开的一个或多个技术。
这样的硬件、软件和固件可以在相同的设备内或在单独的设备内实现,以支持本公开中描述的各种操作和功能。此外,所描述的单元、模块或组件中的任何一个可以一起或单独地实现为离散但可互操作的逻辑器件。将不同特征描述为模块或单元旨在突出不同的功能方面,并不一定意味着这些模块或单元必须由单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件执行,或者集成在公共或单独的硬件或软件组件内。
本公开中描述的技术也可以体现或编码在计算机可读介质中,例如包含指令的计算机可读存储介质中。嵌入或编码在计算机可读介质中的指令可使可编程处理器或其他处理器执行该方法,例如,当指令被执行时。计算机可读介质可以包括非瞬时计算机可读存储介质和瞬时通信介质。有形且非短暂的计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电子可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁介质、光介质或其他计算机可读存储介质。术语“计算机可读存储介质”指的是物理存储介质,而不是信号、载波或其他瞬态介质。
各种实施例已经作了描述。这些和其他实施例包括在以下权利要求的范围内。

Claims (20)

1.一种控制器设备,包括:
存储器,被配置为存储包括多个节点的树结构,其中,所述树结构包括子结构组,所述子结构组的每个子结构包括所述多个节点中的相应节点组,并且其中,所述树结构定义网络设备组中的网络设备的配置,使得所述多个节点中的每个节点对应于所述网络设备的相应资源;以及
处理电路,被配置为:
接收更新所述网络设备的配置的指令,其中,更新所述网络设备的配置的所述指令指明所述节点组中与所述更新对应的节点;
识别所述子结构组中与所述节点组中的所述节点对应的子结构;并且
基于所述子结构组中的与所述指令指明的节点对应的所述子结构,验证用于更新所述网络设备的配置的所述指令。
2.根据权利要求1所述的控制器设备,其中,所述存储器还被配置为存储包括多个配置表项的配置表,其中,所述多个配置表项中的每个配置表项对应于所述多个节点中的相应节点,并且其中,所述多个配置表项中的每个配置表项指明到所述树结构内的所述相应节点的路径。
3.根据权利要求2所述的控制器设备,其中,用于更新所述网络设备的配置的所述指令包括用于更新所述网络设备的现有资源的配置的请求,并且其中,为了验证用于更新所述配置的所述指令,所述处理电路被配置为:
识别由更新所述网络设备的配置的所述指令所识别的路径;并且
基于确定所识别的路径与所述多个配置表项中的配置表项所指明的路径对应,验证更新所述配置的所述指令。
4.根据权利要求3所述的控制器设备,其中,所述处理电路被配置为:在不将所识别的路径与所述树结构进行比较的情况下,基于确定所识别的路径与所述多个配置表项中的配置表项所指明的路径对应,验证更新所述配置的所述指令。
5.根据权利要求3所述的控制器设备,其中,用于更新所述网络设备的配置的所述指令包括配置信息,并且其中,所述处理电路还被配置为响应于验证所述指令,基于所述配置信息来更新所述网络设备的配置。
6.根据权利要求2至5中任一项所述的控制器设备,其中,用于更新所述网络设备的配置的所述指令包括创建所述多个节点中的新节点的请求,所述新节点引用由所述指令指明的节点,并且其中,所述处理电路被配置为:
基于用于更新所述网络设备的配置的所述指令,确定由所述指令指明的所述节点的名称;并且
确定所述多个配置表项是否包括与具有的名称匹配所述指令指明的所述节点的名称的节点对应的配置项。
7.根据权利要求6所述的控制器设备,其中,为了确定由所述指令指明的所述节点的名称,所述处理电路被配置为从所述子结构组中的与所述指令指明的所述节点对应的所述子结构中提取由所述指令指明的所述节点的所述名称。
8.根据权利要求6所述的控制器设备,其中,所述处理电路被配置为:基于确定所述多个配置表项中包括与具有的名称匹配所述指令指明的所述节点的名称的节点对应的配置项,更新所述网络设备的配置以包括所述新节点。
9.根据权利要求1所述的控制器设备,其中,所述存储器还被配置为存储包括多个节点引用表项的节点引用表,其中,所述多个节点引用表项中的每个节点引用表项包括被所述多个节点中的至少一个其他节点引用的节点的名称。
10.根据权利要求9所述的控制器设备,其中,更新所述网络设备的配置的所述指令包括用于删除所述多个节点中的被指明的节点的请求,并且其中,所述处理电路还被配置为:
基于用于更新所述网络设备的配置的所述指令,确定由所述指令指明的节点的名称;并且
确定所述多个节点引用表项是否包括与具有的名称匹配所述指令指明的节点的名称的节点对应的节点引用表项。
11.根据权利要求10所述的控制器设备,其中,所述处理电路还被配置为当所述多个节点引用表项包括与具有的名称匹配所述指令指明的节点的名称的节点对应的节点引用表项时,拒绝用于删除所述多个节点中的被指明的节点的请求。
12.一种方法,包括:
由处理器在存储器中存储包括多个节点的树结构,其中,所述树结构包括子结构组,所述子结构组的每个子结构包括所述多个节点中的相应节点组,并且其中,所述树结构定义网络设备组中的网络设备的配置,使得所述多个节点中的每个节点对应于所述网络设备的相应资源;
由控制器设备的处理电路接收更新所述网络设备的配置的指令,其中,更新所述网络设备的配置的所述指令指明所述节点组中与所述更新对应的节点;
由所述处理电路识别所述子结构组中与所述节点组中的所述节点对应的子结构;以及
由所述处理电路基于所述子结构组中的与所述指令指明的节点对应的所述子结构,验证用于更新所述网络设备的配置的所述指令。
13.根据权利要求12所述的方法,其中,所述存储器还被配置为存储包括多个配置表项的配置表,其中,所述多个配置表项中的每个配置表项对应于所述多个节点中的相应节点,并且其中,所述多个配置表项中的每个配置表项指明到所述树结构内的所述相应节点的路径。
14.根据权利要求13所述的方法,其中,用于更新所述网络设备的配置的所述指令包括用于更新所述网络设备的现有资源的配置的请求,并且其中,验证用于更新所述配置的指令包括:
由所述处理电路识别由更新所述网络设备的配置的所述指令所识别的路径;以及
由所述处理电路基于确定所识别的路径与所述多个配置表项中的配置表项所指明的路径对应,验证更新所述配置的所述指令。
15.根据权利要求14所述的方法,其中所述方法还包括:在不将所识别的路径与所述树结构进行比较的情况下,由所述处理电路基于确定所识别的路径与所述多个配置表项中的配置表项所指明的路径对应,验证更新所述配置的所述指令。
16.根据权利要求14所述的方法,其中,用于更新所述网络设备的配置的所述指令包括配置信息,并且其中,所述方法还包括:响应于验证所述指令,所述处理电路基于所述配置信息来更新所述网络设备的配置。
17.根据权利要求13至16中任一项所述的方法,其中,用于更新所述网络设备的配置的所述指令包括创建所述多个节点中的新节点的请求,所述新节点引用由所述指令指明的节点,并且其中,所述方法还包括:
基于用于更新所述网络设备的配置的所述指令,确定由所述指令指明的所述节点的名称;并且
确定所述多个配置表项是否包括与具有的名称匹配所述指令指明的所述节点的名称的节点对应的配置项。
18.根据权利要求17所述的方法,其中,确定由所述指令指明的所述节点的名称包括从所述子结构组中的与所述指令指明的所述节点对应的所述子结构中提取由所述指令指明的所述节点的所述名称。
19.根据权利要求17所述的方法,其中所述方法还包括,基于确定所述多个配置表项中包括与具有的名称匹配所述指令指明的所述节点的名称的节点对应的配置项,由所述处理电路更新所述网络设备的配置以包括所述新节点。
20.一种系统,包括:
网络设备组中的网络设备;以及
控制器设备,包括:
存储器,被配置为存储包括多个节点的树结构,其中,所述树结构包括子结构组,所述子结构组的每个子结构包括所述多个节点中的相应节点组,并且其中,所述树结构定义所述网络设备的配置,使得所述多个节点中的每个节点对应于所述网络设备的相应资源;以及
处理电路,被配置为:
接收更新所述网络设备的配置的指令,其中,更新所述网络设备的配置的所述指令指明所述节点组中与所述更新对应的节点;
识别所述子结构组中与所述节点组中的所述节点对应的子结构;并且
基于所述子结构组中的与所述指令指明的节点对应的所述子结构,验证用于更新所述网络设备的配置的所述指令。
CN202210655172.7A 2021-06-24 2022-06-10 处理配置网络设备的指令 Active CN115529268B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN202141028389 2021-06-24
IN202141028389 2021-06-24
US17/449,617 US11489724B1 (en) 2021-06-24 2021-09-30 Processing instructions to configure a network device
US17/449,617 2021-09-30

Publications (2)

Publication Number Publication Date
CN115529268A CN115529268A (zh) 2022-12-27
CN115529268B true CN115529268B (zh) 2024-01-19

Family

ID=82020021

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210655172.7A Active CN115529268B (zh) 2021-06-24 2022-06-10 处理配置网络设备的指令

Country Status (3)

Country Link
US (1) US11792069B2 (zh)
EP (1) EP4109846A1 (zh)
CN (1) CN115529268B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112500B (zh) * 2023-10-17 2024-01-26 天津市天河计算机技术有限公司 一种资源管理方法、装置、设备和存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005073230A (ja) * 2003-08-07 2005-03-17 Canon Inc ネットワーク用スイッチ装置及び経路管理サーバ、ネットワークインタフェース装置、及びそれらの制御方法、及び、経路管理サーバ用コンピュータプログラム及びコンピュータ可読記憶媒体
CN101853190A (zh) * 2010-06-04 2010-10-06 华中科技大学 一种适用于嵌入式处理器的数据完整性验证方法
US10044522B1 (en) * 2012-08-21 2018-08-07 Amazon Technologies Inc. Tree-oriented configuration management service
EP3564808A1 (en) * 2017-01-26 2019-11-06 Huawei Technologies Co., Ltd. Data configuration method and data configuration apparatus
US10516761B1 (en) * 2017-03-17 2019-12-24 Juniper Networks, Inc. Configuring and managing network devices using program overlay on Yang-based graph database
CN111164936A (zh) * 2017-10-04 2020-05-15 华为技术有限公司 在软件定义网络控制器中将接入网络建模为树
CN112152835A (zh) * 2019-06-28 2020-12-29 瞻博网络公司 管理设备配置图式的多个语义版本

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763454B2 (en) 1994-05-27 2004-07-13 Microsoft Corp. System for allocating resources in a computer system
US6650347B1 (en) * 1999-02-24 2003-11-18 Cisco Technology, Inc. Heirarchical GUI representation for web based network management applications
US7870490B2 (en) 2005-11-15 2011-01-11 Microsoft Corporation On-the-fly device configuration and management
US9442810B2 (en) 2009-07-31 2016-09-13 Paypal, Inc. Cloud computing: unified management console for services and resources in a data center
US9686121B2 (en) * 2013-09-23 2017-06-20 Amazon Technologies, Inc. Client-premise resource control via provider-defined interfaces
US10211987B2 (en) * 2015-04-27 2019-02-19 Cisco Technology, Inc. Transport mechanism for carrying in-band metadata for network path proof of transit
US10680891B2 (en) * 2018-02-28 2020-06-09 Red Hat, Inc. Networking visualizations that update data model and deploy visualization
JP6842440B2 (ja) * 2018-04-25 2021-03-17 株式会社日立製作所 性能分析方法および管理計算機
US20200220782A1 (en) * 2019-01-09 2020-07-09 Hewlett Packard Enterprise Development Lp Network topology snapshots
US11575580B2 (en) * 2021-06-01 2023-02-07 Cisco Technology, Inc. Multi-domain and multi-tenant network topology model generation and deployment
US11489724B1 (en) 2021-06-24 2022-11-01 Juniper Networks, Inc. Processing instructions to configure a network device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005073230A (ja) * 2003-08-07 2005-03-17 Canon Inc ネットワーク用スイッチ装置及び経路管理サーバ、ネットワークインタフェース装置、及びそれらの制御方法、及び、経路管理サーバ用コンピュータプログラム及びコンピュータ可読記憶媒体
CN101853190A (zh) * 2010-06-04 2010-10-06 华中科技大学 一种适用于嵌入式处理器的数据完整性验证方法
US10044522B1 (en) * 2012-08-21 2018-08-07 Amazon Technologies Inc. Tree-oriented configuration management service
EP3564808A1 (en) * 2017-01-26 2019-11-06 Huawei Technologies Co., Ltd. Data configuration method and data configuration apparatus
US10516761B1 (en) * 2017-03-17 2019-12-24 Juniper Networks, Inc. Configuring and managing network devices using program overlay on Yang-based graph database
CN111164936A (zh) * 2017-10-04 2020-05-15 华为技术有限公司 在软件定义网络控制器中将接入网络建模为树
CN112152835A (zh) * 2019-06-28 2020-12-29 瞻博网络公司 管理设备配置图式的多个语义版本

Also Published As

Publication number Publication date
US11792069B2 (en) 2023-10-17
US20230034548A1 (en) 2023-02-02
CN115529268A (zh) 2022-12-27
EP4109846A1 (en) 2022-12-28

Similar Documents

Publication Publication Date Title
EP3700132B1 (en) Supporting compilation and extensibility on unified graph-based intent models
EP3620920B1 (en) Dynamic intent assurance and programmability in computer networks
US10200248B1 (en) Translating high-level configuration instructions to low-level device configuration
US11929886B2 (en) Model driven intent policy conflict detection and resolution through graph analysis
CN112152835B (zh) 管理设备配置图式的多个语义版本
US11489724B1 (en) Processing instructions to configure a network device
US10897395B2 (en) Programmable configlets through opaque intents in graph based intent controllers
US11736410B1 (en) Synchronizing device resources for element management systems
EP3599741B1 (en) Concurrent transactions on netconf devices across network services
CN115529268B (zh) 处理配置网络设备的指令
EP3952212B1 (en) Using a programmable resource dependency mathematical model to perform root cause analysis
EP3823215A1 (en) Network model aware diagnosis of a network
EP4113938A1 (en) Topology compiler for network management system
CN115529235A (zh) 控制器设备及用于该控制器设备的方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant