CN110138630A - 内置测试业务生成器 - Google Patents
内置测试业务生成器 Download PDFInfo
- Publication number
- CN110138630A CN110138630A CN201811443783.5A CN201811443783A CN110138630A CN 110138630 A CN110138630 A CN 110138630A CN 201811443783 A CN201811443783 A CN 201811443783A CN 110138630 A CN110138630 A CN 110138630A
- Authority
- CN
- China
- Prior art keywords
- equipment
- test
- information
- component
- grouping
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种网络设备可以包括用硬件实现的分组生成器设备。分组生成器设备可以包括控制组件、负载生成组件和用于接收测试分组生成信息的接口元件。测试分组生成信息可以包括一个或多个控制输入、要被包括在一个或多个测试分组中的报头数据、以及关于要被包括在一个或多个测试分组的负载数据中的数据模式的信息。一个或多个控制输入在被提供给控制组件时,可以引起控制组件控制负载生成组件,以基于报头数据和关于数据模式的信息来生成一个或多个测试分组。
Description
背景技术
网络设备通过网络接收和向一个或多个设备(例如,客户端设备、其他网络设备等)转发业务(例如,分组)。外部测试设备通常用于测试网络设备的操作。
发明内容
根据一些可能的实现,一种网络设备可以包括用硬件实现的分组生成器设备。分组生成器设备可以包括控制组件、负载生成组件和用于接收测试分组生成信息的接口元件。测试分组生成信息可以包括一个或多个控制输入、要被包括在一个或多个测试分组中的报头数据、以及关于要被包括在一个或多个测试分组的负载数据中的数据模式的信息。一个或多个控制输入在被提供给控制组件时,可以引起控制组件控制负载生成组件,以基于报头数据和关于数据模式的信息来生成一个或多个测试分组。
在一些实现中,分组生成器设备还包括用于存储报头数据的报头缓冲器数据结构。
在一些实现中,测试分组生成信息还包括关于一个或多个测试分组要被提供的速率的信息。
在一些实现中,分组生成器设备还包括速率限制器组件,用于基于关于一个或多个测试分组要被提供的速率的信息来控制一个或多个测试分组的输出速率。
在一些实现中,一个或多个控制输入还包括关于要被生成的测试分组的数量的信息。
在一些实现中,一个或多个控制输入在被提供给控制组件时,还引起控制组件控制负载生成组件,以基于关于要被生成的测试分组的数量的信息来生成一个或多个测试分组。
在一些实现中,控制组件被实现为状态机。
根据一些可能的实现,一种分组处理设备可以包括至少部分用硬件实现的分组生成器设备。分组生成器设备可以包括控制组件、负载生成组件和用于接收分组生成信息的接口元件。分组生成信息可以包括一个或多个控制输入、报头数据和关于数据模式的信息。一个或多个控制输入在被提供给控制组件时,可以引起控制组件控制负载生成组件,以基于报头数据和/或关于数据模式的信息来生成多个测试分组。
在一些实现中,分组处理设备被包含在网络设备的分组转发组件中。
在一些实现中,分组处理设备还包括多个物理/链路层设备和信号选择设备,该信号选择设备包括第一输入、第二输入和输出。
在一些实现中,第一输入被通信地耦合到多个物理/链路层设备中的第一物理/链路层设备,第二输入被通信地耦合到分组生成器设备,并且输出被通信地耦合到一个或多个分组处理器。
在一些实现中,信号选择设备还包括选择线,并且信号选择设备基于被提供给选择线的控制信号的值来通信地耦合一个或多个分组处理器和分组生成器设备、或者一个或多个分组处理器和第一物理/链路层设备。
在一些实现中,信号选择设备包括多路复用器。
在一些实现中,多个物理/链路层设备包括一个或多个以太网媒体访问控制(MAC)设备和/或一个或多个物理编码子层(PCS)设备。
根据一些可能的实现,一种方法可以包括由分组生成器设备的接口元件接收测试分组生成信息。分组生成器设备可以被包含在网络设备的分组转发组件中,并且可以包括控制组件和负载生成组件。测试分组生成信息可以包括一个或多个控制输入、报头数据和关于数据模式的信息。该方法可以包括由控制组件从接口元件获取一个或多个控制输入,并且由控制组件基于一个或多个控制输入来引起负载生成组件基于报头数据或关于数据模式的信息来生成多个测试分组。
在一些实现中,分组生成器设备还包括错误检测码生成组件,该方法还包括由错误检测码生成组件将错误检测码包括在多个测试分组中。
在一些实现中,报头数据包括以太网报头数据和/或互联网协议(IP)报头数据。
在一些实现中,接收测试分组生成信息包括基于一个或多个命令行接口命令来接收测试分组生成信息。
在一些实现中,接收测试分组生成信息包括从分组转发组件的接口组件接收测试分组生成信息,接口组件经由总线被通信地耦合到线卡的控制设备。
在一些实现中,总线包括外围组件互连快速(PCIe)总线。
附图说明
图1A和1B是本文中描述的示例实现的概述的图;
图2是可以实现本文中描述的系统和/或方法的示例环境的图;
图3是图2的一个或多个设备的示例组件的图;
图4是本文中描述的示例分组生成器设备的图;
图5是其中可以包含图4的分组生成器设备的示例分组处理设备的图;
图6是用于生成测试分组的示例过程的流程图;以及
图7A-7C是涉及图4的分组生成器设备和图5的分组处理设备的示例实现的图。
具体实施方式
以下对示例实现的详细描述参考附图。不同附图中的相同附图标记可以标识相同或相似的元素。
更快速和更先进的联网技术不断地得到开发。这持续地增加了端口速度和诸如路由器、交换机、防火墙等网络设备中支持的端口数目。例如,随着光纤技术的最新发展,很多网络设备组件(例如,线卡)现在包括全部以共同的形状因子被支持的多种类型的光纤接口。在很多情况下,可能需要测试网络设备或系统(例如,网络设备或系统的一个或多个分组处理和/或转发组件),这可能涉及使用不同的外部测试设备(例如,业务生成器)来以网络设备或系统支持的各种线路速率生成测试业务(例如,测试分组)。然而,这种外部测试设备的开发和采购可能是昂贵的,其可能难以操作,在操作时可能需要网络中断等等。
本文中描述的一些实现提供了一种设备(例如,分组生成器设备),该设备被包含在诸如路由器、交换机和等网络设备的输入和/或输出组件的分组转发组件中(例如,内置在可以耦合到线卡(例如,被安装在线卡中)的分组转发组件的专用集成电路(ASIC)中),并且该设备能够生成测试分组,以用于测试分组转发组件(例如,以不同的线路速率并且直到分组转发组件的全部容量和/或带宽)、可以耦合到输入和/或输出组件的一个或多个其他分组转发组件(例如,相同线路卡的其他分组转发组件)、可以耦合到一个或多个其他输入和/或输出组件的一个或多个分组转发组件(例如,其他线路卡的分组转发组件)、和/或网络设备的一个或多个其他组件(例如,一个或多个交换组件(例如,结构互连))。在一些实现中,该设备能够基于从通信地耦合到该设备的用户接口(例如,命令行接口)提供的测试分组生成信息来生成测试分组。
以这种方式,输入和/或输出组件(例如,线卡)和/或耦合到输入和/或输出组件的分组处理和/或转发组件自配有生成测试分组的分组生成器设备,这减少或消除了对用于网络设备测试目的的外部测试设备的需要,从而降低了与测试网络设备和/或该网络设备的组件相关联的成本。另外,这允许对测试分组的定制(例如,通过在测试分组中包括或注入故意错误),这允许设计单元测试用例以在系统开发、设备制造和现场调试期间测试和/或诊断软件(例如,各种软件功能,诸如通常在烟雾测试(例如,功能测试)期间测试的功能)和硬件组件(例如,ASIC等)中的错误处理,这加速了开发和制造周期以及调试会话。此外,定制测试分组的能力允许对由网络设备(例如,1千兆位(Gbit)以太网、10Gbit以太网、40Gbit以太网、100Gbit以太网、200Gbit以太网、400Gbit以太网等)支持的各种(例如,所有)媒体类型的测试,这可以减少或消除开发和/或采购新测试设备的需要,因为更新的网络技术被包含在诸如线卡和分组转发组件的网络设备组件中。
图1A和1B是本文中描述的示例实现100的概述的图。如图1A和1B所示,示例实现100可以包括管理员设备(例如,计算和/或通信设备)和网络设备(例如,路由器、交换机、防火墙等),网络设备包括控制器、交换组件、以及输入和/或输出(I/O)组件(例如,线卡)。如图所示,I/O组件可以包括控制设备和分组转发组件,分组转发组件包括分组处理设备。
在一些实现中,控制设备可以包括一个或多个处理器(例如,被实现为一个或多个ASIC)。在一些实现中,分组处理设备可以被实现为能够处理和/或转发由网络设备接收的分组的ASIC。如图所示,分组处理设备可以包括核心组件(例如,一个或多个处理器(例如,分组处理器)、一个或多个存储器等)、通信地耦合到控制设备的接口组件(例如,可编程输入/输出组件)、以及能够生成测试分组的分组生成器设备。
在一些实现中,分组生成器设备可以用硬件(例如,包括一个或多个逻辑电路和/或组件)、固件、或硬件和软件的组合来实现。
如本文中使用的,分组可以指代用于传达信息的通信结构,诸如协议数据单元(PDU)、网络分组、帧、子帧、数据报、分段、消息、块、小区、时隙、符号、上述任何一项的一部分、和/或能够经由网络来传输的另一类型的格式化或未格式化的数据单元。
尽管未示出,但是在一些实现中,I/O组件的控制设备可以包括一个或多个驱动器、以及能够利用驱动器来控制分组处理设备的应用模块(例如,嵌入式软件模块)。在一些实现中,驱动器可以经由总线与分组处理设备通信(例如,经由基于高速串行的总线,诸如外围组件互连快速(PCIe)总线)。虽然未示出,但是在一些实现中,网络设备的控制器可以包括能够与I/O组件的控制设备的应用模块通信(例如,经由一个或多个应用函数调用)以控制驱动器的分组生成器元件(例如,基于软件的工具或工具箱)。
在一些实现中,管理员设备可以提供可以允许用户(例如,系统或网络管理员)输入用于管理(例如,配置、监测等)网络设备的命令的用户接口(例如,命令行接口)。在一些实现中,管理员设备(例如,管理员设备的用户接口)可以经由网络设备的控制器(例如,经由由控制器执行的操作系统)通信地耦合到分组生成器元件。在一些实现中,管理员设备可以提供允许用户(例如,网络或系统管理员)输入测试分组生成信息的用户接口,诸如命令行接口。
如图1A所示,并且如附图标记110所示,管理员设备可以向网络设备的控制器提供测试分组生成信息。在控制器包括分组生成器元件并且控制设备包括应用模块和驱动器(例如,如上所述)的情况下,控制器可以将测试分组生成信息提供给分组生成器元件,分组生成器元件又可以引起应用模块控制驱动器,以将测试分组生成信息提供给分组处理设备的接口组件。如附图标记120所示,分组生成器设备可以从接口组件接收测试分组生成信息。
在一些实现中,测试分组生成信息可以包括与要被生成的测试分组有关的一个或多个参数。例如,测试分组生成信息可以包括关于要被生成的测试分组的数量的信息、关于测试分组要被生成和/或提供的速率的信息(例如,输出速率)、要被包括在每个测试分组的报头部分中的报头数据(例如,入口/出口端口和/或地址标识符,包括例如层2报头数据(诸如以太网报头数据(例如,媒体访问控制(MAC)地址信息等))和/或层3报头数据(诸如互联网协议(IP)报头数据(例如,IP地址信息、生存时间(TTL)信息等)))、关于要被包括在每个测试分组的负载数据中的一个或多个数据模式的信息(例如,指示负载数据将是随机的信息、指示负载数据将包括所有1或所有0的信息、或指示负载数据将包括一个或多个其他数据模式的信息)、关于每个测试分组要被生成的大小(例如,比特、字节数量等,其可以是以增量或步长可选择的)的信息(包括例如要被生成的每个测试分组的最小和/或最大大小)、关于与每个测试分组有关的服务类型(TOS)的信息等。
在一些实现中,并且作为示例,配置(例如,由用户)每个测试分组的大小和/或要被包括在每个测试分组中的负载数据模式的能力可以允许诊断和/或纠正某些设备或系统错误,诸如存储器相关的错误。
如图1A所示,并且如附图标记130所示,分组生成器设备可以基于测试分组生成信息来生成测试分组。例如,在测试分组生成信息包括报头数据的情况下,分组生成器设备可以将报头数据包括在每个测试分组的报头部分中。附加地或替代地,并且继续该示例,在测试分组生成信息包括关于要被包括在每个测试分组的负载数据中的一个或多个数据模式的信息的情况下,分组生成器设备可以基于关于一个或多个数据模式的信息来生成和/或在每个测试分组中包括负载数据。附加地或替代地,并且进一步继续该示例,在测试分组生成信息包括关于要被生成的测试分组的数量的信息的情况下,分组生成器设备可以基于要被生成的测试分组的数量来生成测试分组(例如,分组生成器设备可以生成等于、稍微小于或稍微大于要被生成的测试分组的数量的数量的测试分组)。
如图1B所示,并且如附图标记140所示,分组生成器设备可以基于测试分组生成信息将所生成的测试分组提供给分组处理设备的核心组件以用于输出。在一些实现中,并且在测试分组生成信息包括关于所生成的测试分组要被提供的速率的信息(例如,输出速率)的情况下,分组生成器设备可以以该速率来提供测试分组。
在一些实现中,在测试分组生成信息包括报头数据并且这样的报头数据包括与通信地耦合到分组处理设备的物理/链路层设备(例如,以太网MAC/物理编码子层(PCS)设备)的设备(例如,客户端设备)相对应的目的地地址(例如,目的地以太网MAC地址和/或目的地IP地址)的情况下,分组处理设备的核心组件可以将生成的测试分组转发到物理/链路层设备。
替代地,在测试分组生成信息包括报头数据并且这样的报头数据包括与未通信地耦合到分组处理设备的物理/链路层设备的设备(例如,客户端设备)相对应的目的地地址(例如,目的地以太网MAC地址和/或目的地IP地址)的情况下,分组处理设备的核心组件可以基于目的地地址将所生成的测试分组转发到网络设备的交换组件以用于进行后续转发(例如,通过网络设备通信地耦合到的网络等转发到同一I/O组件的另一分组转发组件,到网络设备的另一I/O组件的另一分组转发组件,到设备(例如,客户端设备、服务器设备、另一网络设备等))。
在一些实现中,对于要被生成的业务的目的地可以没有限制。例如,对于能够被包括在报头数据中的目的地MAC地址和/或能够被包括在报头数据中的目的地IP地址可以没有限制。
以这种方式,I/O组件(例如,线卡)和/或耦合到I/O组件的分组处理和/或转发组件自配有生成测试分组的分组生成器设备,这减少或消除了对用于网络设备测试目的的外部测试设备的需要,从而降低了与测试网络设备和/或该网络设备的组件相关联的成本。
关于可以被包括在网络设备的控制器中的分组生成器元件(例如,基于软件的工具或工具箱)描述了一些实现。在一些实现中,分组生成器元件可以被包括在另一组件或设备中,诸如例如,I/O组件的控制设备(例如,线卡的处理器)和/或远离网络设备的外部设备(例如,管理设备)。各种实现的示例在图7A-7C中示出,并且在下面更详细地描述。
如上所述,图1A和1B仅作为示例提供。其他示例是可能的,并且可以与关于图1A和1B描述的不同。
图2是其中可以实现本文中描述的系统和/或方法的示例环境200的图。如图2所示,环境200可以包括一个或多个客户端设备210-1到210-N(N≥1)(下文中统称为“客户端设备210”,并且单独称为“客户端设备210”)、网络设备220、客户网络230、网络240和管理员设备250。环境200的设备可以经由有线连接、无线连接、或有线连接和无线连接的组合互连。
客户端设备210包括能够接收、生成、存储、处理和/或提供信息的一个或多个设备。例如,客户端设备210可以包括通信和/或计算设备,诸如台式计算机、膝上型计算机、平板计算机、服务器设备(例如,在数据中心或云计算环境中)、移动电话(例如,智能电话或无线电话)、游戏设备、可穿戴通信设备(例如,智能手表、一幅智能眼镜、或智能活动带)或类似类型的设备。
网络设备220包括能够接收、存储、生成、处理、和/或传送与客户端设备210相关联的业务(例如,分组)、和/或能够监测客户端设备210和/或客户网络230的业务的一个或多个设备。例如,网络设备220可以包括路由器、网关、交换机、集线器、网桥、反向代理、服务器(例如,代理服务器、网络服务器、主机服务器、存储服务器、数据中心或云计算环境中的服务器等)、防火墙、安全设备、入侵检测设备、负载均衡器或类似类型的设备。网络设备220可以与单个客户端设备210或一组客户端设备210(例如,与专用网络、数据中心等相关联的客户端设备210)结合使用。在一些实现中,可以通过网络设备220路由通信以到达成该组客户端设备210。附加地或替代地,当通信朝向客户端设备210被引导时,该通信可以被路由到网络设备220。在一些实现中,网络设备220可以是在诸如机箱等壳体内实现的物理设备。在一些实现中,网络设备220可以是由云计算环境或数据中心的一个或多个计算机设备实现的虚拟设备。尽管图2示出了单个网络设备220,但实际上,可能存在数百、数千、数百万等网络设备220。
客户网络230可以包括一个或多个有线和/或无线网络。例如,客户网络230可以包括局域网(LAN)、专用网络、内联网、云计算网络、蜂窝网络(例如,长期演进(LTE)网络、3G网络、码分多址(CDMA)网络等)、公共陆地移动网络(PLMN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网(PSTN))、自组织网络、因特网、基于光纤的网络等、和/或这些或其他类型的网络的组合。在一些实现中,客户网络230可以是与客户端设备210相关联的专用网络。
网络240包括一个或多个有线和/或无线网络。例如,网络240可以包括蜂窝网络(例如,长期演进(LTE)网络、3G网络或码分多址(CDMA)网络)、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网(例如,公共交换电话网(PSTN))、专用网、自组织网络、内联网、因特网、基于光纤的网络、云计算网络等、和/或这些或其他类型的网络的组合。
管理员设备250包括能够向诸如网络设备220的设备提供管理服务的一个或多个设备。例如,管理员设备250可以包括计算机、服务器、移动设备(例如,智能手机、平板电脑等)等。管理员设备250可以提供一个或多个用户接口(例如,命令行接口),这些用户接口可以允许用户(例如,系统或网络管理员)配置网络设备220,指示网络设备220执行与业务相关的一个或多个动作,和/或查询网络设备220以获取状态和/或配置信息。在一些实现中,用户接口可以允许用户输入测试分组生成信息,测试分组生成信息可以用于(例如,由被包括在网络设备220的分组转发组件中的分组生成器设备)生成和提供测试分组(例如,向一个或多个客户端设备210,向一个或多个设备,诸如网络设备、服务器设备、安全设备和/或耦合到网络240的客户端设备,向网络设备220的一个或多个组件等)。
图2所示的设备和网络的数目和布置作为示例提供。实际上,可以存在与图2所示的相比附加的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或不同地布置的设备和/或网络。此外,图2所示的两个或更多个设备可以在单个设备内实现,或者图2所示的单个设备可以被实现为多个分布式设备。附加地或替代地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个功能。
图3是设备300的示例组件的图。设备300可以对应于客户端设备210、网络设备220和/或管理员设备250。在一些实现中,客户端设备210、网络设备220和/或管理员设备250可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3所示,设备300可以包括一个或多个输入组件305-1到305-B(B≥1)(下文中统称为“输入组件305”,并且单独称为“输入组件305”)、交换组件310、一个或多个输出组件315-1到315-C(C≥1)(下文中统称为作为“输出组件315”,并且单独称为“输出组件315”)、以及控制器320。
输入组件305可以是物理链路的附接点,并且可以是诸如分组的传入业务的入口点。输入组件305可以处理传入业务,诸如通过执行数据链路层封装或解封装。在一些实现中,输入组件305可以发送和/或接收分组。在一些实现中,输入组件305可以包括输入线卡,输入线卡包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个接口卡(IFC)、分组转发组件、线卡控制器组件、输入端口、处理器、存储器和/或输入队列。在一些实现中,设备300可以包括一个或多个输入组件305。
交换组件310可以将输入组件305与输出组件315互连。在一些实现中,交换组件310可以经由一个或多个交叉开关、经由总线和/或使用共享存储器来实现。在分组被最终调度以递送到输出组件315之前,共享存储器可以充当临时缓冲器以存储来自输入组件305的分组。在一些实现中,交换组件310可以使得输入组件305、输出组件315和/或控制器320能够通信。
输出组件315可以存储分组并且可以调度分组以在输出物理链路上传输。输出组件315可以支持数据链路层封装或解封装、和/或各种更高级协议。在一些实现中,输出组件315可以发送分组和/或接收分组。在一些实现中,输出组件315可以包括输出线卡,输出线卡包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个IFC、分组转发组件、线卡控制器组件、输出端口、处理器、存储器和/或输出队列。在一些实现中,设备300可以包括一个或多个输出组件315。在一些实现中,输入组件305和输出组件315可以由同一组组件来实现(例如,输入/输出组件可以是输入组件305和输出组件315的组合)。
控制器320包括处理器,其形式为例如中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、和/或能够解释和/或执行指令的另一类型的处理器。处理器用硬件、固件、或硬件和软件的组合来实现。在一些实现中,控制器320可以包括能够被编程以执行功能的一个或多个处理器。
在一些实现中,控制器320可以包括随机存取存储器(RAM)、只读存储器(ROM)、和/或存储用于由控制器320使用的信息和/或指令的另一类型的动态或静态存储设备(例如,闪存、磁存储器或光学存储器)。
在一些实现中,控制器320可以与连接到设备300的其他设备、网络和/或系统通信,以交换关于网络拓扑的信息。控制器320可以基于网络拓扑信息来创建路由表,基于路由表来创建转发表,并且将转发表转发到输入组件305和/或输出组件315。输入组件305和/或输出组件315可以使用转发表以对传入和/或传出的数据分组执行路由查找。
控制器320可以执行本文中描述的一个或多个过程。控制器320可以响应于执行由非暂态计算机可读介质存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非暂态存储器设备。存储器设备包括单个物理存储设备内的存储器空间、或跨多个物理存储设备分布的存储器空间。
可以将软件指令从另一计算机可读介质或经由通信接口从另一设备读入与控制器320相关联的存储器和/或存储组件中。在被执行时,存储在与控制器320相关联的存储器和/或存储组件中的软件指令可以引起控制器320执行本文中描述的一个或多个过程。附加地或替代地,可以使用硬连线电路代替软件指令、或与软件指令组合,以执行本文中描述的一个或多个过程。因此,本文中描述的实现不限于硬件电路和软件的任何特定组合。
图3所示的组件的数目和布置作为示例提供。实际上,设备300可以包括与图3所示的相比附加的组件、更少的组件、不同的组件、或不同地布置的组件。附加地或替代地,设备300的一组组件(例如,一个或多个组件)可以执行被描述为由设备300的另一组组件执行的一个或多个功能。
图4是示例分组生成器设备400的示意性框图。如图4所示,分组生成器设备400可以包括接口元件410、控制组件420、报头缓冲器数据结构430、负载生成组件440、错误检测码生成组件450、速率限制器组件460和分组捕获/分析器组件470。分组生成器设备400的元件和组件可以用硬件(例如,元件和组件可以包括一个或多个逻辑电路等)、固件、或硬件和软件的组合来实现。
在一些实现中,分组生成器设备400可以被包含在(例如,内置于其中)分组转发组件的分组处理设备(例如,ASIC)中,其可以通信地耦合到(例如,安装在其中或插入到其中)I/O组件(例如,I/O组件305/315,其可以包括线卡)。在一些实现中,接口元件410可以通信地耦合到分组处理设备的接口组件(例如,可编程输入/输出组件)。
在一些实现中,接口组件可以通信地耦合(例如,经由PCIe总线)到I/O组件(例如,I/O组件305/315)的控制设备(例如,被实现为一个或多个ASIC的一个或多个处理器)。在一些实现中,控制设备可以包括能够控制分组处理设备的一个或多个驱动器、以及能够控制驱动器的应用模块(例如,嵌入式软件模块)。
在一些实现中,分组生成器元件(例如,基于软件的工具或工具箱)可以被提供并且被用来控制应用模块和/或驱动器。在一些实现中,分组生成器元件可以被包括在网络设备的控制器(例如,网络设备220的控制器320)中。示例实现在图7A中示出,并且在下面更详细地描述。附加地或替代地,分组生成器元件可以被包括在I/O组件的控制设备中。示例实现在图7B中示出,并且在下面更详细地描述。附加地或替代地,分组生成器元件可以被包括在远离网络设备220而定位的外部设备(例如,管理设备)中。示例实现在图7C中示出,并且在下面更详细地描述。
在一些实现中,设备(例如,管理员设备250)可以提供允许用户(例如,系统或网络管理员)输入测试分组生成信息的用户接口,诸如命令行接口。在一些实现中,用户接口可以将测试分组生成信息传达(例如,经由在网络设备220的控制器320中提供或由网络设备220的控制器320执行的操作系统环境)到分组生成器元件。附加地或替代地,可以利用一组或多组测试分组生成信息预先配置(例如,预编程)分组生成器元件。
在一些实现中,分组生成器元件可以引起应用模块控制驱动器,以将测试分组生成信息提供给分组生成器设备400的接口元件410。
在一些实现中,测试分组生成信息可以包括与要被生成的测试分组有关的一个或多个参数,如本文中其他地方描述的(例如,关于图1A和1B)。例如,测试分组生成信息可以包括关于要由分组生成器设备400生成的测试分组的数量的信息、关于测试分组要由分组生成器设备400生成和/或提供的速率的信息(例如,输出速率)、要被包括在由分组生成器设备400生成的每个测试分组的报头部分中的报头数据(例如,层2报头数据(诸如以太网报头数据(例如,MAC地址信息等))和/或层3报头数据(诸如IP报头数据(例如,IP地址信息、TTL信息等)))、关于要被包括在由分组生成器设备400生成的每个测试分组的负载数据中的一个或多个数据模式的信息(例如,指示负载数据将是随机的信息、指示负载数据将包括所有1或所有0的信息、或指示负载数据将包括一个或多个其他数据模式的信息)等。
报头缓冲器数据结构430可以被包括或存储在分组生成器设备400的一个或多个存储器中。在一些实现中,报头缓冲器数据结构430可以被实现为索引、表、链表、数据库等。
在一些实现中,在由接口元件410接收的测试分组生成信息包括报头数据的情况下,报头缓冲器数据结构430可以存储报头数据。在一些实现中,报头缓冲器数据结构430可以提供报头数据以用于包括在由分组生成器设备400生成的一个或多个测试分组的报头部分(例如,作为报头字节)中。
在一些实现中,并且在由接口元件410接收的测试分组生成信息包括关于要被包括在每个测试分组的负载数据中的数据模式的信息的情况下,负载生成组件440可以基于数据模式来针对每个测试分组生成负载数据。在一些实现中,在由接口元件410接收的测试分组生成信息包括报头数据并且报头缓冲器数据结构430存储报头数据的情况下,负载生成组件440可以从报头缓冲器数据结构430获取报头数据,并且将报头数据附加到所生成的负载数据。
在一些实现中,错误检测码生成组件450可以生成包括一个或多个错误检测码的拖尾部分,并且将其附加到负载生成组件440的输出(例如,报头数据和负载数据)。例如,错误检测码生成组件450可以包括循环冗余校验生成组件(例如,包括逻辑电路等),循环冗余校验生成组件被配置为基于负载生成组件440的输出来计算校验值,并且将校验值(例如,作为4字节值)附加到负载生成组件440的输出,以提供生成的测试分组(例如,完整的测试分组)。
速率限制器组件460可以控制由分组生成器设备400提供的测试分组的输出速率。在一些实现中,速率限制器组件460可以包括能够从错误检测码生成组件450接收生成的测试分组的一个或多个缓冲器(例如,队列等)。在一些实现中,并且在接口元件410处接收的测试分组生成信息包括关于与测试分组有关的输出速率的信息的情况下,速率限制器组件460可以基于输出速率来提供所生成的测试分组(例如,到分组处理设备的核心组件,如下面参考图5更详细描述的)。例如,速率限制器组件460可以以输出速率提供所生成的测试分组。以这种方式,分组生成器设备400提供对所生成的测试分组的精确速率控制,以使得能够以由网络组件或设备(诸如,I/O组件305/315和/或网络设备220)支持的任何线路速率来输出所生成的测试分组。
如图4所示,控制组件420可以控制分组生成器设备400的各种组件的操作。例如,控制组件420可以控制报头缓冲器数据结构430、负载生成组件440、错误检测码生成组件450和/或速率限制器组件460。
在一些实现中,控制组件420可以被实现为控制状态机(例如,有限状态机),控制状态机可以从接口元件410接收一个或多个控制输入并且基于控制输入来控制分组生成器设备400的各种组件。
在一些实现中,接口元件410可以向控制组件420提供从分组处理设备的接口组件接收的测试分组生成信息的一部分或整体作为控制输入。例如,在由接口元件410接收的测试分组生成信息包括关于与测试分组有关的输出速率的信息的情况下,接口元件410可以将关于输出速率的信息提供给控制组件420作为控制输入。附加地或替代地,并且作为另一示例,在由接口元件410接收的测试分组生成信息包括关于要被包括在每个测试分组的负载数据中的数据模式的信息的情况下,接口元件410可以将关于数据模式的信息提供给控制组件420作为控制输入。附加地或替代地,并且作为又一示例,在由接口元件410接收的测试分组生成信息包括关于要被生成和/或提供的测试分组的数量的信息的情况下,接口元件410可以将关于要被生成和/或提供的测试分组的数量的信息提供给控制组件420作为控制输入。
在一些实现中,并且测试分组生成信息由用户经由用户接口(例如,由管理员设备250提供)来提供的情况下,控制组件420可以向用户接口提供(例如,经由接口元件410)关于分组生成器设备400处的分组生成过程的状态信息。在一些实现中,控制组件420可以在分组生成过程已经完成之后(例如,在与要被生成的测试分组的数量相对应的数量的测试分组已经被生成和/或提供之后)提供状态信息。附加地或替代地,控制组件420可以在分组生成过程中提供状态信息。
如图4所示,分组捕获/分析器组件470可以从分组处理设备的核心组件接收分组,并且可以将所接收的分组提供给分组处理设备的物理/链路层设备。在一些实现中,分组捕获/分析器组件470可以确定关于所接收的分组的统计数据,诸如所接收的分组的数量等。替代地,分组捕获/分析器组件470可以不确定关于所接收分组的任何统计,并且可以简单地作用为针对所接收分组的直通组件。
在一些实现中,分组生成器设备400可以包括入口部分和出口部分。在这种情况下,分组捕获/分析器组件470可以被包括在出口部分中,并且分组生成器设备400的其他元件和/或组件(例如,接口元件410、控制组件420、报头缓冲器数据结构430、负载生成组件440、错误检测码生成组件450、速率限制器组件460等)可以被包括在入口部分中。
尽管未示出,但是分组生成器设备400可以包括一个或多个时钟信号、重置信号等,其能够被提供给分组生成器设备400的一个或多个元件和/或组件(例如,控制组件420、负载生成组件440等)并且能够支持和/或促进这些元件和/或组件的操作(例如,在测试分组生成期间)。
图4所示的组件的数目和布置作为示例提供。实际上,分组生成器设备400可以包括与图4所示的相比附加的组件、更少的组件、不同的组件、或不同地布置的组件。例如,尽管图4示出了单个接口元件410、单个控制组件420、单个报头缓冲器数据结构430、单个负载生成组件440、单个错误检测码生成组件450、单个速率限制器组件460和单个分组捕获/分析器组件470,但是在一些实现中,分组生成器设备400可以包括多组这样的元件和/或组件。以这种方式,分组生成器设备400能够并行地生成多个测试分组流,这允许对各种网络设备组件的附加容量和/或带宽的测试。
附加地或替代地,分组生成器设备400的一组组件(例如,一个或多个组件)可以执行被描述为由分组生成器设备400的另一组组件执行的一个或多个功能。
尽管本文中关于以太网技术描述一些实现,但是本文中描述的实现同样地或类似地适用于其他媒体访问格式和/或计算机联网技术。
图5是示例分组处理设备500的示意性框图。在一些实现中,分组处理设备500可以被实现为一个或多个ASIC。在一些实现中,分组处理设备500可以被实现为基于以太网的设备或基于另一计算机联网技术的设备。如图5所示,分组处理设备500可以包括核心组件510、一个或多个物理/链路层设备520-1到520-M(M≥1)(下文中统称为“物理/链路层设备520”,并且单独称为“物理/链路层设备520”)、信号选择设备530和分组生成器设备400。
在一些实现中,核心组件510可以包括能够处理和/或转发分组的一个或多个处理器、一个或多个存储器等。虽然未示出,但是在一些实现中,核心组件510可以通信地耦合到网络设备的交换组件(例如,结构互连)(例如,网络设备220的交换组件310),这允许测试核心组件510直到核心组件510的全部容量,并且允许使用分组生成器设备400来测试网络设备的一个或多个其他分组转发组件(例如,其他分组转发组件的接口,诸如广域网出口接口),从而使得能够测试端到端的业务流。端到端业务流的示例是使用分组生成器设备400(例如,被包括在网络设备220的输入组件中,诸如输入组件305-1到305-B中的任何一个)来生成测试分组以用于测试与网络设备220的输出组件(诸如输出组件315-1到315-C中的任何一个)相关联的一个或多个物理链路。在这种情况下,所生成的测试分组可以通过网络设备220的交换组件,诸如交换组件310,并且从输出组件(例如,从输出组件315-1到315-C中的一个或多个)流出到相关联的物理链路。
在一些实现中,并且在分组处理设备500被实现为基于以太网的设备的情况下,物理/链路层设备520可以包括以太网MAC设备、以太网PCS设备、和/或这些或其他类型的设备的组合。如图5所示,物理/链路层设备520可以包括接收器部分Rx和发射器部分Tx,接收器部分Rx能够从一个或多个设备(例如,客户端设备210和/或其他设备,诸如通信地耦合到网络240的设备)接收分组,发射器部分Tx能够向一个或多个设备(例如,客户端设备210和/或其他设备,诸如通信地耦合到网络240的设备)发射分组。
信号选择设备530可以选择性地向核心组件510提供分组。在一些实现中,信号选择设备530可以包括用硬件、固件、或硬件和软件的组合实现的多路复用器。如图5所示,信号选择设备530可以包括选择线540、能够从接收器部分Rx接收分组的数据输入A、能够从分组生成器设备400接收测试分组的数据输入B、以及能够向核心组件510输出在输入A或输入B处接收的分组的输出C。在一些实现中,输出C可以取决于提供给选择线540的控制信号的值来向核心组件510输出在输入A或输入B处接收的分组。
在一些实现中,控制信号的值可以基于测试分组生成信息(例如,由用户经由诸如命令行接口的用户接口提供的测试分组生成信息)和/或相关联的命令(例如,由诸如被包括在I/O组件的控制设备(例如,I/O组件305/315的控制设备)中的分组生成器元件(例如,基于软件的工具或工具箱)的分组生成器元件提供的一个或多个命令,如上面关于图4所述)。在一些实现中,控制信号可以由I/O组件的控制设备中包括和/或可访问的一个或多个驱动器提供,和/或由受一个或多个驱动器控制的I/O组件中的一个或多个组件提供。
在一些实现中,并且在提供给选择线540的控制信号的值引起输入A变为通信地耦合到输出C的情况下(例如,取决于信号选择设备530的配置,控制信号的值可以是逻辑“1”或“0”),信号选择设备530可以将由物理/链路层设备520-1的接收器部分Rx接收的传入分组提供给核心组件510。在一些实现中,并且在提供给选择线540的控制信号的值引起输入B变为通信地耦合到输出C的情况下(例如,取决于信号选择设备530的配置,该值可以是逻辑“1”或“0”),信号选择设备530可以将由分组生成器设备400生成和/或提供的测试分组提供给核心组件510。
这样,在分组转发组件、或分组转发组件的分组处理设备(例如,分组处理设备500)包括多个物理/链路层设备(例如,物理/链路层设备520)的情况下,否则将耦合到物理/链路层设备之一的接收器部分(例如,物理/链路层设备520-1的接收器部分Rx)的分组处理设备的核心组件(例如,核心组件510)的输入可以被用于代替地从分组生成器设备400接收生成的测试分组。这减少或消除了利用外部测试设备(例如,用于测试分组转发组件,用于测试一个多个其他分组转发组件,等等)的需要,这否则可能需要被外部连接到通向物理/链路层设备的接收器部分(例如,物理/链路层设备520-1的接收器部分Rx)的端口。在一些实现中,外部测试设备可以与分组生成器设备400一起使用以生成测试分组并且将其提供给分组处理设备500(例如,通过将外部测试设备耦合到通向另一物理/链路层设备520的接收器部分的端口)。
图5所示的组件的数目和布置作为示例提供。实际上,分组处理设备500可以包括与图5所示的相比附加的组件、更少的组件、不同的组件、或不同地布置的组件。附加地或替代地,分组处理设备500的一组组件(例如,一个或多个组件)可以执行被描述为由分组处理设备500的另一组组件执行的一个或多个功能。
图6是用于生成测试分组的示例过程600的流程图。在一些实现中,图6的一个或多个过程框可以由分组生成器设备400执行。在一些实现中,图6的一个或多个过程框可以由与分组生成器设备400分离、或包括分组生成器设备400的另一设备或一组设备(诸如分组处理设备500的一个或多个其他组件)执行。
如图6所示,过程600可以包括接收测试分组生成信息(框610)。例如,分组生成器设备400可以接收(例如,使用接口元件410等)测试分组生成信息。在一些实现中,分组生成器设备400可以基于来自设备的用户的输入来接收测试分组生成信息(例如,经由管理员设备250、客户端设备210等提供的用户接口),如上面关于图4和5所述。
在一些实现中,测试分组生成信息可以包括关于要由分组生成器设备400生成的测试分组的数量的信息、关于测试分组要由分组生成器设备400生成和/或提供的速率的信息(例如,输出速率)、要被包括在每个测试分组中的报头数据、关于要被包括在由分组生成器设备400生成的每个测试分组的负载数据中的一个或多个数据模式的信息等,如上面关于图1A、1B和4所述。
这样,分组生成器设备400可以接收测试分组生成信息以引起分组生成器设备400基于测试分组生成信息来生成测试分组。
如图6所示,过程600可以包括基于测试分组生成信息来生成测试分组(框620)。例如,分组生成器设备400可以基于测试分组生成信息来生成(例如,使用控制组件420、报头缓冲器数据结构430、负载生成组件440、错误检测码生成组件450等)测试分组。
在一些实现中,并且如上面关于图4所述,控制组件420可以控制报头缓冲器数据结构430、负载生成组件440和/或错误检测码生成组件450以基于测试分组生成信息来生成测试分组。例如,为了生成每个测试分组,控制组件420可以引起负载生成组件440生成负载数据(例如,基于关于被包括在测试分组生成信息中的数据模式的信息),引起报头缓冲器数据结构430向负载生成组件440提供报头数据(例如,基于被包括在测试分组生成信息中的报头数据),引起负载生成组件440将报头数据附加到负载数据,并且引起负载生成组件440将负载数据和附加的报头数据提供给错误检测码生成组件450,以将拖尾部分附加到负载数据,如上面关于图4所述。继续该示例,在测试分组生成信息包括关于要被生成的测试分组的数量的信息的情况下,控制组件420可以控制报头缓冲器数据结构430、负载生成组件440和/或错误检测码生成组件450以生成与要被生成的测试分组的数量相对应的数量的测试分组,如上面关于图4所述。
这样,分组生成器设备400可以基于测试分组生成信息来生成测试分组,以引起分组生成器设备400基于测试分组生成信息来提供测试分组。
如图6所示,过程600可以包括基于测试分组生成信息来提供测试分组(框630)。例如,分组生成器设备400可以基于测试分组生成信息来提供(例如,使用控制组件420、速率限制器组件460等)测试分组。
在一些实现中,并且如上面关于图4所述,控制组件420可以引起速率限制器组件460提供所生成的测试分组以用于输出。例如,在测试分组生成信息包括关于与测试分组有关的输出速率的信息的情况下,控制组件420可以控制速率限制器组件460以输出速率来输出从负载生成组件440和/或错误检测码生成组件450接收的所生成的测试分组,如上面关于图4所述。
以这种方式,分组生成器设备400可以基于测试分组生成信息来提供测试分组。
尽管图6示出了过程600的示例框,但是在一些实现中,过程600可以包括与图6中描绘的相比附加的框、更少的框、不同的框、或不同地布置的框。附加地或替代地,过程600的两个或更多个框可以被并行执行。
图7A-7C分别是涉及分组生成器设备400和分组处理设备500的示例实现700、720和740的图。
如图7A所示,示例实现700可以包括网络设备220。如图所示,网络设备220可以包括多个I/O组件(例如,线卡),包括可以与I/O组件305/315相同或相似的I/O组件305/315和I/O组件305n/315n。
如图7A所示,I/O组件305/315可以包括分组处理设备500(例如,被实现为ASIC并且被包括在安装在I/O组件305/315中的分组转发组件中)和控制设备702(例如,被实现为ASIC)。如图所示,分组处理设备500可以包括分组生成器设备400和接口组件704(例如,可编程输入/输出组件,如上面关于图4所述)。如图所示,控制设备702可以包括应用模块708和驱动器710(例如,上面关于图4描述的应用模块和驱动器)。
如图7A所示,I/O组件305n/315n可以包括控制设备702n(其可以与控制设备702相同或相似)和分组处理设备500n(其可以与分组处理设备500相同或相似)。如图所示,分组处理设备500n可以包括接口组件704n(其可以与接口组件704相同或相似)和分组生成器设备400n(其可以与分组生成器设备400相同或相似)。如图所示,控制设备702n可以包括应用模块708n(其可以与应用模块708相同或相似)和驱动器710n(其可以与驱动器710相同或相似)。
如图7A所示,网络设备220的控制器320可以包括分组生成器元件706(例如,上面关于图4描述的分组生成器元件),其可以通信地耦合到应用模块708和/或应用模块708n。虽然未示出,但是示例实现700可以包括可以与I/O组件305/315和/或I/O组件305n/315n相同或相似的一个或多个附加I/O组件。在这种情况下,附加地或替代地,分组生成器元件706可以通信地耦合到这样的附加I/O组件的一个或多个应用模块。
在一些实现中,分组生成器元件706可以接收测试分组生成信息(例如,从命令行接口,如上面关于图4所述),并且引起(例如,经由一个或多个应用函数调用)应用模块708控制驱动器710,以将测试分组生成信息提供给接口组件704,并且最终提供给分组生成器设备400。附加地或替代地,分组生成器元件706可以引起(例如,经由一个或多个应用函数调用)应用模块708n控制驱动器710n,以将测试分组生成信息提供给接口组件704n,并且最终提供给分组生成器设备400n。
在一些实现中,并且在从用户接口(例如,命令行接口)提供测试分组生成信息的情况下,用户接口可以允许用户配置和/或向一个或多个分组生成器设备提供一组或多组测试分组生成信息(例如,在多组测试分组生成信息被提供的情况下,这些组可以是相同的、相似的或不同的)。例如,用户可以将一组测试分组生成信息引导到分组生成器设备400和/或将一组测试分组生成信息引导到分组生成器设备400n。以这种方式,一组或多组测试分组生成信息可以被引导到一个或多个分组生成器设备,这可以允许跨越一个或多个分组处理设备、一个或多个I/O组件、和/或网络设备的一个或多个其他组件(例如,网络设备220的交换组件310)来生成一个或多个测试分组流(stream)或流(flow)。
在一些实现中,网络设备220和/或网络设备220的一个或多个组件可以被配置为再循环(例如,“蛇形”)并且遍及网络设备220的一部分或整体转发和/或路由由分组生成器设备(例如,分组生成器设备400、分组生成器设备400n等)生成的一个或多个测试分组。附加地或替代地,网络设备220和/或网络设备220的一个或多个组件可以配置有一个或多个测试分组报头修改功能(例如,用硬件、固件、或硬件和软件的组合实现),该一个或多个测试分组报头修改功能可以(例如,周期性地、持续地等)修改一个或多个生成的测试分组的报头数据(例如,通过改变被包括在报头数据中的目的地信息(例如,目的地IP地址))。这允许创建分组的附加(例如,大量)业务流(stream)或流(flow)以用于测试网络设备220的一些或所有组件(例如,以网络设备220和/或网络设备220的组件的全部容量或带宽)。
在一些实现中,分组生成器元件706可以被预先配置(例如,预编程)以在I/O组件305/315、I/O组件305n/315n、网络设备220的一个或多个其他类似I/O组件、和/或网络设备220的一个或多个其他组件(例如,交换组件310)的初始化期间(例如,在加电自检(POST)期间)向应用模块708、应用模块708n、和/或被包括在其他I/O组件中的一个或多个其他应用模块提供一组或多组测试分组生成信息,以引起相应的分组生成器设备跨越网络设备220生成并且提供测试分组。以这种方式,可以在启动期间自动测试网络设备220的一部分或整体,以标识可能需要被解决的任何系统问题。
在一些实现中,分组生成器元件706可以被包括在控制器320中,而不影响(例如,但不限制)由控制器320提供的任何配置、特征和/或服务,诸如例如经由命令行接口设置的配置、特征和/或服务。
如图7B所示,示例实现720可以包括I/O组件305/315,I/O组件305/315包括与图7A所示的示例实现700的I/O组件305/315相同(或类似)的组件、元件、设备等。这里,在示例实现720中,I/O组件305/315可以不被包括在网络设备中(例如,可以不被安装或插入到网络设备的机箱中),诸如网络设备220。相反,如图7B所示,I/O组件305/315可以包括分组生成器元件706(例如,在控制设备702中),分组生成器元件706可以向应用模块708提供测试分组生成信息,而不需要I/O组件305/315通信地耦合到网络设备的控制器(例如,图7A所示的示例实现700的网络设备220的控制器320)。
在一些实现中,分组生成器元件706和/或控制设备702的另一组件或元件可以包括允许用户输入测试分组生成信息的功能。例如,分组生成器元件706、和/或控制设备702的另一组件或元件可以提供于可以由与示例实现700的控制器320通信的命令行接口提供的功能类似的命令行接口功能。附加地或替代地,并且在一些实现中,分组生成器元件706、和/或控制设备702的另一组件或元件可以包括允许适当地转发由分组生成器设备400生成的测试分组的分组转发功能。例如,分组生成器元件706、和/或控制设备702的另一组件或元件可以提供与可以由图7A所示的示例实现700的控制器320(和/或交换组件)提供的路由和/或交换功能类似的路由和/或交换功能。
以这种方式,即使在I/O组件305/315作为独立组件(例如,如图7B所示)操作的情况下,诸如在开发或测试期间(例如,在工作台上和/或在板启动或“启动”期间),可以利用分组生成器设备400来生成和提供测试分组以用于测试I/O组件305/315和/或I/O组件305/315的一个或多个组件。
如图7C所示,示例实现740可以包括网络设备220,网络设备220可以与图7A所示的示例实现700的网络设备220相同(或相似),不同之处在于,示例实现740的分组生成器元件706可以被包括在管理设备742(例如,管理员设备250或另一设备)中。虽然未示出,但是在一些实现中,管理设备742可以通过网络(例如,通过客户网络230或网络240)通信地耦合到网络设备220。
这里,在示例实现740中,管理设备742可以提供用户接口(例如,命令行接口),该用户接口可以和与示例实现700的控制器320通信的用户接口相同或相似。这允许管理设备742的用户(例如,系统或网络管理员)输入测试分组生成信息。如图7C所示,分组生成器元件706可以经由控制器320向应用模块708和/或应用模块708n提供测试分组生成信息。在一些实现中,分组生成器元件706可以被配置为引起控制器320(例如,经由一个或多个功能调用)将测试分组生成信息提供给应用模块708和/或应用模块708n(例如,以最终提供给分组生成器设备400和/或分组生成器设备400n)。
以这种方式,用户(例如,系统或网络管理员)可以远程控制网络设备处的测试分组的生成,这在测试网络设备中提供了更多的灵活性。
如上所述,图7A-7C仅作为示例提供。其他示例是可能的,并且可以与关于图7A-7C描述的不同。
本文中描述的一些实现提供分组转发组件的硬件(例如,ASIC),其包括能够生成用于测试分组转发组件的测试分组的分组生成器设备、一个或多个其他分组转发组件、和/或分组转发组件可以通信地耦合到的网络设备的一个或多个其他组件。在一些实现中,分组生成器设备能够基于从通信地耦合到设备的用户接口(例如,命令行接口)提供的测试分组生成信息来生成测试分组。
以这种方式,输入和/或输出组件(例如,线卡)和/或耦合到输入和/或输出组件的分组处理和/或转发组件自配有生成测试分组的分组生成器设备,这减少或消除了对用于网络设备测试目的的外部测试设备的需要,从而降低了与测试网络设备和/或该网络设备的组件相关联的成本。此外,这允许对测试分组的定制(例如,通过在测试分组中包括或注入故意错误),这允许设计单元测试用例以在系统开发、设备制造和现场调试期间测试和/或诊断软件和硬件组件中的错误处理,这加速了开发和制造周期以及调试会话。此外,定制测试分组的能力允许对由网络设备支持的各种(例如,所有)媒体类型的测试,这减少或消除了开发和/或采购新测试设备的需要,因为更新的网络技术被包含在诸如线卡和分组转发组件的网络设备组件中。
前述公开内容提供了说明和描述,但并非旨在穷举或将实现限于所公开的精确形式。修改和变化鉴于以上公开内容是可能的,或者可以从实现的实践中获取。
如本文中使用的,术语“组件”旨在被广义地解释为硬件、固件、或硬件和软件的组合。
本文中已经描述了和/或在附图中示出了某些用户接口。用户接口可以包括图形用户接口、非图形用户接口、基于文本的用户接口等。用户接口可以提供信息以用于显示。在一些实现中,用户可以诸如通过经由设备的输入组件提供输入来与信息交互,该设备提供用户接口以用于显示。在一些实现中,用户接口可以由设备和/或用户可配置(例如,用户可以改变用户接口的大小、经由用户接口提供的信息、经由用户接口提供的信息的位置等)。附加地或替代地,用户接口可以被预先配置为标准配置、基于在其上显示用户接口的设备的类型的特定配置、和/或基于与在其上显示用户接口的设备相关联的能力和/或规范的一组配置。
明显的是,本文中描述的系统和/或方法可以用不同形式的硬件、固件、或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不限制实现。因此,本文中描述了系统和/或方法的操作和行为,而没有参考特定的软件代码——应当理解,可以设计软件和硬件以基于本文中的描述来实现系统和/或方法。
即使特定的特征组合在权利要求中被记载和/或在说明书中被公开,但是这些组合并不旨在限制可能的实现的公开。实际上,很多这些特征可以以未在权利要求中具体记载和/或在说明书中公开的方式被组合。尽管下面列出的每个从属权利要求可以直接依赖于仅一个权利要求,但是可能的实现的公开包括每个从属权利要求与权利要求集合中的每个其他权利要求相结合。
除非明确地如此描述,否则本文中使用的元件、动作或指令不应当被解释为是关键或必要的。此外,如本文中使用的,冠词“一个(a)”和“一个(an)”旨在包括一项或多项,并且可以与“一个或多个”可互换地使用。此外,如本文中使用的,术语“集合”旨在包括一项或多项(例如,相关项、不相关项、相关项和不相关项的组合等),并且可以与“一个或多个”可互换地使用。在仅有一项的情况下,术语“一个”或类似的语言被使用。此外,如本文中使用的,术语“具有(has)”、“具有(have)”、“具有(having)”等旨在是开放式术语。此外,除非另有明确说明,否则短语“基于”旨在表示“至少部分基于”。
Claims (20)
1.一种网络设备,包括:
用硬件实现的分组生成器设备,所述分组生成器设备包括:
控制组件,
负载生成组件,以及
接口元件,用于接收测试分组生成信息,
所述测试分组生成信息包括:
一个或多个控制输入,
要被包括在一个或多个测试分组中的报头数据,以及
关于要被包括在所述一个或多个测试分组的负载数据中的数据模式的信息,
其中所述一个或多个控制输入在被提供给所述控制组件时,引起所述控制组件控制所述负载生成组件,以基于所述报头数据和关于所述数据模式的所述信息来生成所述一个或多个测试分组。
2.根据权利要求1所述的网络设备,其中所述分组生成器设备还包括用于存储所述报头数据的报头缓冲器数据结构。
3.根据权利要求1所述的网络设备,其中所述测试分组生成信息还包括关于所述一个或多个测试分组要被提供的速率的信息。
4.根据权利要求3所述的网络设备,其中所述分组生成器设备还包括速率限制器组件,用于基于关于所述一个或多个测试分组要被提供的所述速率的所述信息来控制所述一个或多个测试分组的输出速率。
5.根据权利要求1所述的网络设备,其中所述一个或多个控制输入还包括关于要被生成的测试分组的数量的信息。
6.根据权利要求5所述的网络设备,其中所述一个或多个控制输入在被提供给所述控制组件时,还引起所述控制组件控制所述负载生成组件,以基于关于要被生成的测试分组的所述数量的所述信息来生成所述一个或多个测试分组。
7.根据权利要求1所述的网络设备,其中所述控制组件被实现为状态机。
8.一种分组处理设备,包括:
至少部分用硬件实现的分组生成器设备,
所述分组生成器设备包括:
控制组件,
负载生成组件,以及
接口元件,用于接收分组生成信息,
所述分组生成信息包括:
一个或多个控制输入,
报头数据,以及
关于数据模式的信息,
其中所述一个或多个控制输入在被提供给所述控制组件时,引起所述控制组件控制所述负载生成组件,以基于所述报头数据和/或关于所述数据模式的所述信息来生成多个测试分组。
9.根据权利要求8所述的分组处理设备,其中所述分组处理设备被包含在网络设备的分组转发组件中。
10.根据权利要求8所述的分组处理设备,还包括:
多个物理/链路层设备;以及
信号选择设备,所述信号选择设备包括第一输入、第二输入和输出。
11.根据权利要求10所述的分组处理设备,其中所述第一输入被通信地耦合到所述多个物理/链路层设备中的第一物理/链路层设备,其中所述第二输入被通信地耦合到所述分组生成器设备,并且其中所述输出被通信地耦合到一个或多个分组处理器。
12.根据权利要求11所述的分组处理设备,其中所述信号选择设备还包括选择线,并且其中所述信号选择设备基于被提供给所述选择线的控制信号的值,来通信地耦合所述一个或多个分组处理器和所述分组生成器设备、或者所述一个或多个分组处理器和所述第一物理/链路层设备。
13.根据权利要求10所述的分组处理设备,其中所述信号选择设备包括多路复用器。
14.根据权利要求10所述的分组处理设备,其中所述多个物理/链路层设备包括一个或多个以太网媒体访问控制(MAC)设备和/或一个或多个物理编码子层(PCS)设备。
15.一种方法,包括:
由分组生成器设备的接口元件接收测试分组生成信息,
所述分组生成器设备被包含在网络设备的分组转发组件中并且包括:
控制组件,以及
负载生成组件,
所述测试分组生成信息包括:
一个或多个控制输入,
报头数据,以及
关于数据模式的信息;
由所述控制组件从所述接口元件获取所述一个或多个控制输入;以及
由所述控制组件基于所述一个或多个控制输入,来引起所述负载生成组件基于所述报头数据或关于所述数据模式的所述信息来生成多个测试分组。
16.根据权利要求15所述的方法,其中所述分组生成器设备还包括错误检测码生成组件,
所述方法还包括:
由所述错误检测码生成组件将错误检测码包括在所述多个测试分组中。
17.根据权利要求15所述的方法,其中所述报头数据包括以太网报头数据和/或互联网协议(IP)报头数据。
18.根据权利要求15所述的方法,其中接收所述测试分组生成信息包括:基于一个或多个命令行接口命令来接收所述测试分组生成信息。
19.根据权利要求15所述的方法,其中接收所述测试分组生成信息包括:从所述分组转发组件的接口组件接收所述测试分组生成信息,所述接口组件经由总线被通信地耦合到线卡的控制设备。
20.根据权利要求19所述的方法,其中所述总线包括外围组件互连快速(PCIe)总线。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/893,304 US10742533B2 (en) | 2018-02-09 | 2018-02-09 | Built-in test traffic generator |
US15/893,304 | 2018-02-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110138630A true CN110138630A (zh) | 2019-08-16 |
CN110138630B CN110138630B (zh) | 2022-10-11 |
Family
ID=64564650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811443783.5A Active CN110138630B (zh) | 2018-02-09 | 2018-11-29 | 内置测试业务生成器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10742533B2 (zh) |
EP (1) | EP3525401B1 (zh) |
CN (1) | CN110138630B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10491460B2 (en) * | 2016-04-15 | 2019-11-26 | Arista Networks, Inc. | Method and system for detecting abnormalities in network element operation |
FR3105847B1 (fr) * | 2019-12-27 | 2023-01-06 | Bull Sas | Procede et systeme de gestion des flux de donnees pour la gouvernance unifiee d’une pluralite de solutions de calculs intensifs |
US11356333B2 (en) * | 2020-01-24 | 2022-06-07 | Arista Networks, Inc. | Predicting forwarding destinations for packets |
US11323354B1 (en) | 2020-10-09 | 2022-05-03 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for network testing using switch emulation |
US11483227B2 (en) | 2020-10-13 | 2022-10-25 | Keysight Technologies, Inc. | Methods, systems and computer readable media for active queue management |
US11483228B2 (en) | 2021-01-29 | 2022-10-25 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for network testing using an emulated data center environment |
US11405302B1 (en) * | 2021-03-11 | 2022-08-02 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for network testing using configurable test infrastructure |
US11388081B1 (en) | 2021-03-30 | 2022-07-12 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for impairment testing using an impairment device |
US11729087B2 (en) | 2021-12-03 | 2023-08-15 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for providing adaptive background test traffic in a test environment |
US11765068B2 (en) | 2021-12-22 | 2023-09-19 | Keysight Technologies, Inc. | Methods, systems, and computer readable media for programmable data plane processor based traffic impairment |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030179777A1 (en) * | 2001-07-31 | 2003-09-25 | Denton I. Claude | Method and apparatus for programmable generation of traffic streams |
CN1553632A (zh) * | 2003-05-29 | 2004-12-08 | 华为技术有限公司 | 一种在宽带网络中实现大业务量数据测试的装置 |
CN1720689A (zh) * | 2002-12-05 | 2006-01-11 | 思科技术公司 | 用于核实冗余备用分组转发器的功能的方法 |
US20130124911A1 (en) * | 2011-11-15 | 2013-05-16 | International Business Machines Corporation | Communication system with diagnostic capabilities |
US20130322285A1 (en) * | 2011-03-15 | 2013-12-05 | Mark W. Fidler | Network Switching Device for Quantifying Available Service-Level Capacity of a Network For Projected Network Traffic |
US20140016479A1 (en) * | 2012-03-05 | 2014-01-16 | David George Coomber | Network services testing with pluggable transceivers |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5313453A (en) * | 1991-03-20 | 1994-05-17 | Fujitsu Limited | Apparatus for testing ATM channels |
US20030172177A1 (en) * | 2001-12-06 | 2003-09-11 | Kersley Ian P. | System and method for verifying a device |
US9253062B2 (en) | 2011-12-23 | 2016-02-02 | Ixia | Byte by byte received data integrity check |
US20130305091A1 (en) | 2012-05-09 | 2013-11-14 | Ixia | Drag and drop network topology editor for generating network test configurations |
-
2018
- 2018-02-09 US US15/893,304 patent/US10742533B2/en active Active
- 2018-11-29 CN CN201811443783.5A patent/CN110138630B/zh active Active
- 2018-11-30 EP EP18209469.8A patent/EP3525401B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030179777A1 (en) * | 2001-07-31 | 2003-09-25 | Denton I. Claude | Method and apparatus for programmable generation of traffic streams |
CN1720689A (zh) * | 2002-12-05 | 2006-01-11 | 思科技术公司 | 用于核实冗余备用分组转发器的功能的方法 |
CN1553632A (zh) * | 2003-05-29 | 2004-12-08 | 华为技术有限公司 | 一种在宽带网络中实现大业务量数据测试的装置 |
US20130322285A1 (en) * | 2011-03-15 | 2013-12-05 | Mark W. Fidler | Network Switching Device for Quantifying Available Service-Level Capacity of a Network For Projected Network Traffic |
US20130124911A1 (en) * | 2011-11-15 | 2013-05-16 | International Business Machines Corporation | Communication system with diagnostic capabilities |
US20140016479A1 (en) * | 2012-03-05 | 2014-01-16 | David George Coomber | Network services testing with pluggable transceivers |
Also Published As
Publication number | Publication date |
---|---|
EP3525401A1 (en) | 2019-08-14 |
EP3525401B1 (en) | 2021-06-23 |
US20190253335A1 (en) | 2019-08-15 |
US10742533B2 (en) | 2020-08-11 |
CN110138630B (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110138630A (zh) | 内置测试业务生成器 | |
US11388081B1 (en) | Methods, systems, and computer readable media for impairment testing using an impairment device | |
Antichi et al. | OSNT: Open source network tester | |
CN107360092A (zh) | 用于数据网络中的平衡负载的系统和方法 | |
US20180097714A1 (en) | Diagnosis and throughput measurement of fibre channel ports in a storage area network environment | |
US8953584B1 (en) | Methods and apparatus for accessing route information in a distributed switch | |
US10528682B2 (en) | Automatic performance characterization of a network-on-chip (NOC) interconnect | |
Serpanos et al. | Architecture of network systems | |
EP2924934B1 (en) | Ethernet switch and method for establishing forwarding patterns in an ethernet switch | |
Guay et al. | vFtree-A fat-tree routing algorithm using virtual lanes to alleviate congestion | |
CN110324198A (zh) | 丢包处理方法和丢包处理装置 | |
US8654654B2 (en) | Traffic distribution control | |
CN109246159B (zh) | 一种验证安全策略的方法和装置 | |
CN106789652A (zh) | 业务分流方法及装置 | |
US9160644B1 (en) | Packet processor bandwidth verification methods and systems | |
CN107819596B (zh) | Sdn网络故障的诊断方法、装置及系统 | |
Tello et al. | SDN controllers scalability and performance study | |
CN109218230A (zh) | 用于平衡跨多级网络交换机的输入端口的吞吐量的技术 | |
CN102045256B (zh) | 一种基于cots的带宽预分配保证网络功能演示系统 | |
CN108459889A (zh) | 任务执行方法和装置、存储介质以及电子装置 | |
CN109495289A (zh) | 接收数据的电子设备和方法、通信系统和计算机存储介质 | |
Dethise et al. | Prelude: Ensuring inter-domain loop-freedom in SDN-enabled networks | |
Pérez et al. | Protocol-independent event building evaluator for the LHCb DAQ system | |
CN103765816A (zh) | 管理交换结构 | |
CN109088766A (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 |