一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

方法、网络装置和计算机可读存储介质与流程

2022-02-25 23:41:04 来源:中国专利 TAG:


1.本公开涉及网络装置。


背景技术:

2.网络装置包括执行各种任务的各种组件。例如,网络装置包括用于与其他网络装置交换数据(例如,以分组的形式)的各种类型的物理接口。网络装置还可以包括安全组件、路由组件、转发组件、服务组件等。这些硬件组件可以由软件(例如操作系统)和与硬件接合的软件(例如应用编程接口(api)等)进行控制和管理。作为一个示例,网络装置可以提供对光纤网络接口的支持。
3.网络装置的某些组件可以由网络装置的制造商来开发,而其他组件可以由第三方开发者来开发。第三方开发者通常不会为他们的组件开发与所有可能的网络装置完全兼容的软件,即使这些组件符合相关标准。组件可能具有相对于标准的较大和/或较小的偏差。这些偏差可能导致网络装置软件和硬件平台上的组件使用错误或故障。解决这些问题并将这些组件引入操作系统和其他网络装置软件对于网络装置制造商及其客户来说都是一项成本。
4.当遇到这样的问题时,客户可以将组件和/或网络装置返回到其相应的制造商。这些制造商然后可以验证该组件,然后开发专用于该组件和网络装置的相关软件。因此,必须跨客户向网络装置分发软件。由于所有网络装置节点都涉及升级过程,这可能导致客户停机以安装软件更新。这种方法可能导致客户以及制造商的收入和时间的损失。


技术实现要素:

5.总体上,本公开描述了与用于开发网络装置的软件及其硬件组件的工作流相关的技术。具体地,这些工作流技术不需要主要的软件重新发布,并且可以最小程度地减少网络装置制造商的参与。以这种方式,这些技术可以减少与将新硬件组件合并到所部署的网络装置中相关的资格和归纳。例如,尽管传统技术从发布新的第三方硬件组件直到新的硬件组件可以在所部署的网络装置中被完全使用可能需要大约一年的更新,但是这些技术可能仅需要几周的开发。
6.在一个示例中,一种方法包括由网络装置接收已经耦合到网络装置的硬件组件;网络装置接收用于硬件组件的应用编程接口(api)的数据;以及由网络装置执行用于硬件组件的api,以授权硬件组件通过api对网络装置的硬件资源的安全访问。
7.在另一示例中,网络装置包括一个或多个硬件资源;用于接收硬件组件的物理接口;存储器;以及一个或多个处理器在电路中实现并且被配置为:接收已经耦合到网络装置的物理接口的硬件组件;接收用于硬件组件的应用编程接口(api)的数据;将api的数据存储到存储器;以及执行api以授权硬件组件通过api对网络装置的硬件资源的安全访问。
8.在另一个示例中,非暂时性计算机可读存储介质在其上存储指令,这些指令在被执行时使得网络装置的处理器接收已经耦合到网络装置的硬件组件;接收用于硬件组件的
应用编程接口(api)的数据;以及执行用于硬件组件的api数据,以授权硬件组件通过api对网络装置的硬件资源的安全访问。
9.在附图和下面的描述中阐述了一个或多个示例的细节。其他特征、目的和优点从说明书和附图以及技术方案中将是显而易见的。
附图说明
10.图1是示出包括根据本公开的技术配置的网络装置的示例性系统的框图。
11.图2是示出包括根据本公开的技术配置的第三方硬件控制器的示例性路由器的框图。
12.图3是示出根据本公开的技术用于实现和发布新的第三方硬件组件和相应的第三方软件的示例性工作流的流程图。
13.图4是示出根据本公开的技术用于向网络装置添加新的第三方硬件组件的示例性方法的流程图。
具体实施方式
14.图1是示出包括根据本公开的技术配置的网络装置110的示例性系统100的框图。系统100包括网络102、网络装置110和光学网络104。网络102和光学网络104表示在其中操作一个或多个各种网络装置,例如路由器、交换机、集线器、网关、防火墙等的计算机网络。网络102可以表示例如以太网,而光学网络104表示其中网络装置经由光纤进行通信的网络。
15.网络装置110可以是路由器、交换机、安全装置、网关或其他网络装置。总体上,路由器确定通过诸如网络102和光学网络104的网络的路由。每个路由可以表示形成到达特定目的地的相应网络的网络装置之间的一系列连接。网络装置110可以确定这些路由并使用这些路由来确定哪个路由最适于到达特定目的地。网络装置110可以进一步确定转发信息,例如将网络流量引导到其以到达特定目的地的网络装置。网络装置110可以形成转发信息以指定物理网络接口,通过该接口输出网络流量(例如,网络分组)以到达分组的目的地。
16.在图1的示例中,网络装置110包括本地软件116和本地硬件单元118。本机软件116可以包括例如操作系统和其他控制软件,以及用于执行路由协议、转发协议、安全程序和其他进程或网络协议的软件。在该示例中,网络装置110还包括第三方光学单元114,并且执行第三方软件112以控制第三方光学单元114。第三方光学单元114可以由不同于网络装置110的制造商的第三方开发者来开发。根据本公开的技术,制造商可以生产用于开发软件的软件开发工具包(sdk),该软件将由网络装置110执行用于控制第三方硬件组件,例如第三方光学单元114。
17.第三方光学单元114的开发者可以使用sdk来产生第三方软件112,第三方软件112可以包括用于在第三方光学单元114和网络装置110的资源(例如本地硬件单元118)之间提供双向通信的应用编程接口(api)。本地硬件单元118的这种资源可以包括例如原始寄存器或其他硬件资源。
18.允许第三方开发者使用sdk来产生第三方软件112的方法建立在第三方软件112(例如,光学单元管理代码)与本机软件116的清晰分离上。该方法还提供升级网络装置110
的硬件的能力,诸如具有独立的光学单元捷变构造。这种代码分离允许第三方软件112的发布小于本地软件116的完全更新。
19.作为一个示例,第三方开发者可以使用光学sdk开发第三方软件112以包括光学单元管理软件。光学sdk可公开提供给硬件开发者并且包括被明确定义的api。硬件开发者(例如,光学单元硬件供应商)可以使用光学sdk来构建和发布与本地硬件单元118和本地软件116兼容的光学插件代码。光学sdk还可以允许用于网络装置110和本地硬件单元118的第三方光学单元114的任何硬件专用调谐。光学sdk可以进一步允许网络装置110和本地硬件单元118的调谐以适应第三方光学网络单元114的功能。
20.光学sdk仅仅是销售商或开发者可以用来开发第三方软件112的一个示例性sdk。在其他示例中,其他销售商或开发者可以开发其他类型的第三方硬件,并且使用相应的sdk、第三方软件来控制第三方硬件。这样的第三方硬件单元可以包括例如硬件安全单元、硬件以太网网络接口、硬件线卡等。
21.上述sdk机制支持按供应商、装置类型的api作为附加可安装包(由第三方软件112表示)。这允许对部署的网络装置(例如网络装置110)进行小的升级。该方法还允许网络装置制造商专有功能对于受信任的供应商可见,从而使供应商向诸如第三方光学单元114的第三方硬件增加价值。此外,该机制允许第三方供应商和开发者准备好开发与网络装置110、本机软件116和本机硬件单元118兼容的软件。
22.sdk api可以将本地硬件单元118中的一些或全部暴露给第三方光学单元114和第三方软件112。例如,sdk api可暴露i2c总线、串行外围接口(spi)等,并处理与从这些元件读取和/或写入相关的任何特定复杂性。此外,sdk api可以允许自动地调谐主机和模块端参数。例如,网络装置110可以自动地调谐连续时间线性均衡器(ctle)以及网络装置110的板上的串行接口(si)参数。
23.以此方式,本公开的技术可提供优于常规开发技术的某些优点。在传统技术中,第三方开发者和销售商无法访问网络装置制造商sdk,因此通常不能开发包括可以访问网络装置的内部硬件组件的api的软件。因此,第三方开发者可能会创建无法在网络装置中完全正确运行的硬件组件和相应的软件。一旦客户观察到第三方软件的问题,则客户可以向网络装置制造商提交指示该问题的报告。然后,网络装置制造商将通常需要对问题进行分类并将相关修复并入主流软件版本(例如,合并到本机软件116的更新中)。然后,网络装置制造商将在实验室中对第三方硬件进行鉴定,并向客户发布主流软件,客户可以安装主流软件以及其他功能。整个过程通常花费一年以上来完成,并且对于客户和网络装置制造商来说可能是昂贵的。相比之下,使用本公开的技术,第三方开发者或销售商可以使用相关的sdk来创建第三方软件,这可以将过程减少到仅仅几周(例如,三周)。
24.图2是示出包括根据本公开的技术配置的第三方硬件控制器180的示例性路由器150的框图。路由器150还包括第三方光学单元196,以及包括第三方应用编程接口(api)182和第三方软件184的第三方硬件控制器180。第三方硬件控制器180、第三方api 182和第三方软件184可以安装在控制单元152的存储器中。路由器150可以对应于图1的网络装置110,第三方光学单元196可以对应于图1的第三方光学单元114,并且第三方api 182和第三方软件184可以一起对应于图1的第三方软件112。
25.在图2的示例中,路由器150包括接口卡190a、190b(ifc 190)和控制单元152。控制
单元152包括寄存器154、包(packet)的转发引擎(pfe)160、路由引擎(re)170和第三方硬件控制器180。控制单元152可以以在电路中实现的一个或多个处理器的形式来实现。寄存器154表示用于存储要由控制单元152处理的数据的多个处理器寄存器。尽管未示出,控制单元152还可包括一个或多个算术逻辑单元(alu)或用于执行各种处理操作的其他硬件元件,其可存储、输出和/或操纵存储在寄存器154中的数据。在一些示例中,pfe 160、re 170和/或第三方硬件控制器180中的任何一个或全部也可以包括一个或多个寄存器的相应集合(在图2中未示出)。
26.ifc 190通过各自的入站链路192a、192b(入站链路192)接收数据,并通过出站链路194a、194b(出站链路194)发送数据。在一些示例中,入站链路192和出站链路194形成以全双工模式操作的ifc的通用物理通信介质。即,在一些示例中,每个ifc 190耦合到可基本同时发送和接收数据的相应通信介质。在其他示例中,入站链路192和出站链路194形成用于各个ifc 190的单独物理介质。
27.控制单元152包括处理硬件,并且在一些示例中包括由处理硬件执行的软件和/或固件。在各种示例中,控制单元152及其各种元件(例如,pfe 160和re 170)在一个或多个处理器、处理单元、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其任何组合中实现。当以软件或固件实现时,控制单元152包括用于执行用于软件或固件的指令的一个或多个处理器或处理单元,以及用于存储指令的计算机可读存储介质。在一些示例中,pfe 160和re 170的元件在离散的单元或模块中实现,而在其他示例中,pfe 160和re 170被功能性集成。
28.re 170包括用于一个或多个路由协议174的指令。路由协议174包括内部网关路由协议中的任何一个或全部,例如开放式最短路径优先(ospf)、中间系统到中间系统(is-is)、路由信息协议(rip)、内部网关路由协议(igrp)、增强型igrp(eigrp)、和/或外部网关路由协议,例如边界网关协议(bgp)。通常,内部网关路由协议用于在自治系统的路由器之间交换路由信息。路由协议174还包括与网络隧道相关的协议,例如mpls、标签分配协议(ldp)、资源预留协议流量工程(rsvp-te)或其他协议。
29.通常,re 170执行路由协议174以确定网络装置之间的路由,例如从路由器150到其他网络装置的路由。经由ifc 190耦合到路由器150的其他路由器向路由器150通告路由。当路由器150接收到来自通告新路由的另一路由器的通信时,re 170接收该通信并将新路由存储在路由信息172(也称为路由信息库)中。re 170还执行路由协议174以确定从路由器150到目的地的路由的优先级。即,当路由信息172包括指示存在到共同目的地的多个路由的信息时,re 170执行路由协议174以选择到达目的地的路由之一。
30.所选择的到达目的地的路线通常包括对沿着到达目的地的路线的“下一跳”的指示。该下一跳通常对应于网络装置,例如沿着到达目的地的路由的另一路由器、交换机、网关或其他网络装置。下一跳装置经由ifc 190之一连接到路由器150。因此,使用所选择的到达目的地的路由,控制单元152可以确定沿着到目的地的路由连接到下一跳的ifc 190中的一个,并且更新pfe 160所存储的转发信息以指示ifc 190中要向其发送去往目的地的分组的那一个。
31.更具体地,pfe 160维护转发信息库(fib)162。然后,响应于接收到来自路由引擎170的信息,pfe 160基于沿着到达目的地地址的路由的下一跳来更新fib 162以将目的地
地址映射到ifc 190之一。fib 162还包括指示如何转发与网络隧道相关联的分组的信息,例如,转发具有一个或多个标签的分组和/或要向其附加一个或多个标签的分组。
32.第三方硬件控制器180表示第三方光学单元196的开发者或销售商可以使用相应的sdk创建的一组示例性软件。在一些示例中,第三方硬件控制器180可以以硬件、软件和/或固件的组合来实现。当至少部分地以软件或固件实现时,路由器150可以包括用于执行软件或固件的指令的必要硬件,例如控制单元152及其处理单元。在该示例中,第三方硬件控制器180包括第三方api 182和第三方软件184。
33.第三方光学单元196包括用于发送数据200的光学发射器(例如,激光器)和用于接收数据198的光学接收器。通常,第三方软件184可以控制第三方光学单元196。例如,第三方软件184可以包括用于第三方光学单元196的光学网络协议和配置的实现。例如,第三方软件184可以例如控制用于发送数据200的光学发射器,例如通过控制用于驱动光学发射器的功率量。在一些示例中,第三方软件184可以根据路由器150的配置(例如路由器150的功率管理配置)来配置(例如,调谐)用于驱动光学发射器的功率量。
34.第三方api 182可以授权第三方硬件控制器180和第三方光学单元196对路由器150的内部组件,例如寄存器154的安全访问。尽管未示出,但是第三方api 182还可以授权第三方硬件控制器180和第三方光学单元196对i2c总线和/或spi的安全访问。
35.控制单元152可以被配置为确定第三方光学单元196已经被安装并且接收第三方硬件控制器180的数据。例如,用户可以在路由器150中安装第三方硬件控制器180(包括用于第三方api 182和第三方软件184的数据)和第三方光学单元196。因此,控制单元152可以执行第三方软件184以授权第三方硬件控制器180和第三方光学单元196通过例如第三方api182对路由器150的硬件资源和组件,例如寄存器154的安全访问。
36.允许第三方开发者或供应商经由对应的sdk创建第三方硬件控制器180允许代码与由控制单元152执行的其他软件的清晰分离。第三方硬件控制器180、第三方api 182和第三方软件184可以实现为用于控制第三方光学单元196(或其他第三方硬件单元,诸如硬件安全单元、硬件线卡、硬件以太网接口等)的软件的独立库。
37.作为示例,第三方硬件控制器180可以被配置为在每个供应商、每个装置类型的基础上动态地与另外的库和驱动器链接。作为示例,第三方硬件控制器180可以动态地与{供应商:source photonics,qsfp-100gbase-lr4-t2,零件号:740-061409}包和/或{供应商:avago,40gbase sr4,零件号:740-046565}的单独包链接。对于这些示例中的每一个,诸如路由器150的网络装置可以具有不同的实现。例如,juniper网络ptx10008的硬件可以被配置为:
[0038][0039]
而juniper网络ptx10003-80c硬件可以被配置为:
[0040][0041][0042]
此外,这些装置的初始化和管理在每种类型的硬件装置中可能有所不同。
[0043]
来自特定制造商的网络装置和来自不同供应商的第三方硬件单元的这种组合可能会倍增。通过将各种可能性容纳在数据库包和可独立安装的包中,可以简化更改为新的第三方硬件单元(例如,第三方光学单元196)的工作。
[0044]
以此方式,路由器150表示包括一个或多个硬件资源的网络装置的示例;用于接收硬件组件的物理接口;存储器;以及一个或多个处理器,在电路中实现并且被配置为:确定硬件组件已经被耦合到网络装置的物理接口;以及接收用于硬件组件的应用编程接口(api)的数据;将用于api的数据存储到存储器;以及执行用于api的数据,以授权硬件组件
通过api对网络装置的硬件资源的安全访问。
[0045]
图3是示出根据本公开的技术用于实现和发布新的第三方硬件组件和相应的第三方软件的示例性工作流的流程图。在图3的示例中,装置制造商开发api sdk(210)。装置制造商代表例如网络装置110(图1)或路由器150(图2)之类的网络装置的制造商。api sdk允许第三方供应商和开发者实现用于控制第三方硬件组件的第三方软件,并且限定允许第三方硬件组件安全访问网络装置的资源的api。资源可以包括例如网络装置的原始寄存器、i2c接口或spi。
[0046]
然后,装置制造商将api sdk发送给第三方开发者(212)。在一些示例中,装置制造商可以公开发布api sdk。在其他示例中,装置制造商可以例如通过电子方式、通过邮件等直接向第三方开发者发送api sdk。
[0047]
第三方开发者然后使用api sdk开发第三方硬件组件和用于第三方硬件组件的api(214)。例如,第三方开发者可以开发用于通过光缆访问光学网络的光学组件。第三方开发者还可以使用sdk以及其他控制器软件来开发api,诸如第三方硬件控制器180、第三方api 182和第三方软件184(图2)或第三方软件112(图1)。
[0048]
然后,客户可以获得第三方硬件组件和api(216)。例如,客户可以购买第三方硬件组件并接收用于api的数据以及用于第三方硬件组件的其他控制器软件。然后,客户可以将第三方硬件组件和api以及其他软件安装在由网络装置制造商制造的已部署网络装置中(218)。网络装置可以安装并执行api以授权第三方硬件组件对网络装置的资源的安全访问(220)。
[0049]
可以根据图3的示例执行各种示例性工作流。在一个示例中,供应商(或开发者)发布新的光学硬件单元并使用网络装置制造商的sdk来为网络装置制造商的网络装置构建一个或多个附加包。拥有制造商的一个或多个网络装置的网络装置制造商的客户可以在网络装置中使用附加包以及新的光学硬件单元。供应商随后可要求所有模块已准备好从网络装置制造商部署到网络装置。
[0050]
在另一示例中,供应商可以发布用于制造商的网络装置的新的光学模块。拥有制造商的网络装置之一的客户可以使用sdk本身来为网络装置构建附加包并安装附加包。因此,客户可以使用sdk来构建附加包,不是开发人员使用sdk来构建附加包。
[0051]
作为又一示例,供应商可以为供应商的网络装置发布新的光学模块。制造商可以使用sdk来开发附加包并且在用于第三方光学模块的发行包中发行附加包。
[0052]
因此,这些技术可以在允许基于每个供应商、每个装置类型和/或每个单元类型的基础上为开发第三方硬件单元的控制器方面提供灵活性。在不完全升级网络装置的底层操作系统和其他软件的情况下,能够适应不兼容的供应商故障。这些技术可以进一步实现未来的api标准化以及通用管理接口规范(cmis)。
[0053]
供应商可以进一步将网络装置制造商特定的自定义功能引入第三方硬件单元,例如功率管理功能。因此,第三方硬件可以被调谐到其中安装了硬件的网络装置。附加地或可选地,可以调谐网络装置本身。例如,主机侧参数可被自动地调谐并可用于控制硬件的软件的最佳工作。网络装置的本机软件还可以包括用于运行供应商特定元素的挂钩。例如,供应商可以实现用于初始化第三方硬件单元以确保与网络装置的兼容性的代码。此外,网络装置制造商可以例如在网站上为每个供应商、每个装置托管附加包,以允许客户重复使用附
加包。
[0054]
图4是示出根据本公开的技术用于向网络装置添加新的第三方硬件组件的示例性方法的流程图。尽管其他网络装置(例如图1的网络装置110)可以被配置为执行该方法或类似方法,但是图4的方法是相对于图2的路由器150来解释的。
[0055]
最初,路由器150(特别是控制单元152)确定已经安装了新的硬件组件(例如第三方光学单元196)(230)。控制单元152还可以接收用于硬件组件的api的数据(232)。可以使用由路由器150的制造商为类似于新的第三方硬件组件的装置产生的api sdk来开发api。
[0056]
然后,控制单元152可以安装api(234)以及其他控制器软件(例如第三方硬件控制器180、第三方api 182和第三方软件184)。例如,控制单元152可以在控制单元152的存储器中安装用于api和任何其他软件的数据。
[0057]
控制单元152然后可以执行api和其他软件以授权硬件组件对例如寄存器154、i2c总线或spi之类的网络装置资源的安全访问(236)。控制单元152还可以确定路由器150的网络装置配置(238),并且根据网络装置配置来调整硬件组件(240)。例如,控制单元152可以根据路由器150的电源管理配置来配置第三方硬件组件的电源管理功能。作为一个示例,如果路由器150被配置为在低功耗模式下操作,则控制单元152可以根据路由器150的配置来减少用于驱动第三方光学单元的光学发射器(例如,激光器)的功率量。
[0058]
以此方式,图4的方法表示包括由网络装置接收已经耦合到网络装置的硬件组件的方法的示例;网络装置接收用于硬件组件的应用编程接口(api)的数据;以及由网络装置执行用于硬件组件的api,以授权硬件组件通过api对网络装置的硬件资源进行安全访问。
[0059]
本公开中所描述的技术可至少部分地以硬件、软件、固件或其任何组合来实施。例如,所描述的技术的各个方面可以在一个或多个处理器中实现,包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga),或任何其他等效的集成或离散逻辑电路,以及这些组件的任何组合。术语“处理器”或“处理电路”一般可指前述逻辑电路中的任一个,单独地或与其他逻辑电路或任何其他等效电路组合。包括硬件的控制单元也可以执行本公开的一种或多种技术。
[0060]
此类硬件、软件和固件可在同一装置内或在单独装置内实施以支持本公开中所描述的各种操作和功能。另外,所描述的单元、模块或组件中的任一者可一起或单独实施为离散但可互操作的逻辑装置。对作为模块或单元的不同功能的描述旨在突出不同的功能方面,而并不一定暗示这样的模块或单元必须由单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件来执行,或者集成在公共或单独的硬件或软件组件内。
[0061]
在本公开中所描述的技术还可在包含指令的计算机可读介质(例如计算机可读存储介质)中实施或编码。嵌入或编码在计算机可读介质中的指令可使可编程处理器或其他处理器在执行指令时执行该方法。计算机可读介质可以包括非暂时性计算机可读存储介质和瞬态通信介质。计算机可读存储介质是有形的和非暂时性的,可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电子可擦除可编程只读存储器(eeprom)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁性介质、光学介质或其他计算机可读存储介质。应当理解,术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其他瞬态介质。
[0062]
已经描述了各种示例。这些和其他示例在所附技术方案的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献