CN109496410B - 一种用于在网络设备中处理分组的方法及网络设备 - Google Patents

一种用于在网络设备中处理分组的方法及网络设备 Download PDF

Info

Publication number
CN109496410B
CN109496410B CN201780044402.3A CN201780044402A CN109496410B CN 109496410 B CN109496410 B CN 109496410B CN 201780044402 A CN201780044402 A CN 201780044402A CN 109496410 B CN109496410 B CN 109496410B
Authority
CN
China
Prior art keywords
packet
egress
network device
processor
copy
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
CN201780044402.3A
Other languages
English (en)
Other versions
CN109496410A (zh
Inventor
D·梅尔曼
I·梅耶-沃尔夫
C·阿拉德
R·泽马赫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Marvell Israel MISL Ltd
Original Assignee
Marvell Israel MISL Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marvell Israel MISL Ltd filed Critical Marvell Israel MISL Ltd
Priority to CN202110825382.1A priority Critical patent/CN113572758B/zh
Publication of CN109496410A publication Critical patent/CN109496410A/zh
Application granted granted Critical
Publication of CN109496410B publication Critical patent/CN109496410B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

分组由网络设备接收。处理分组并且确定要经由其发送分组的至少一个传出端口。基于在处理分组期间针对分组确定的信息来修改分组的报头,以生成经修改的报头。至少部分地基于经修改的报头来执行出口分类。出口分类包括确定分组是否将被网络设备丢弃。在确定分组不会被网络设备丢弃时,生成分组的副本以用于将该分组镜像到除所确定的至少一个传出端口之外的目的地。然后,使该分组入队到出口队列中,出口队列与所确定的至少一个传出端口相对应。该分组随后被传送到所确定的至少一个传出端口。

Description

一种用于在网络设备中处理分组的方法及网络设备
本公开要求于2016年5月18日递交的、名称为“到分析器或 CPU的出口流镜像”的美国临时专利申请第62/338,067号的权益,在此通过引用将其整体并入本文。
技术领域
本公开总体上涉及诸如网络交换机、桥接器、路由器等的网络设备,并且更具体地涉及在网络设备中处理分组。
背景技术
诸如交换机、桥接器和路由器之类的网络设备基于分组中的地址通过网络转发分组。网络设备通常包括耦合到不同网络链路的多个端口。网络设备可以经由一个端口接收分组,并且处理该分组至少以确定网络交换机应当经由哪个或哪些其他端口来发送该分组。然后,网络设备向所确定的一个或多个其他端口转发该分组。网络设备经常将接收的分组存储在分组存储器中,并且使用与分组相关联的分组描述符来处理分组。在由网络设备确定用于发送分组的端口之后,网络设备将与分组相关联的分组描述符加入与该端口对应的出口队列中,以用于随后经由该端口调度和发送该分组。当该分组被调度用于发送时,网络设备将分组描述符从出口队列中出队,并且从分组存储器取回相关联的分组。在一些情况下,网络设备执行对取回的分组的修改 (例如,对取回的分组的报头的修改),并且然后从网络设备的端口发送该经修改的分组。在一些情况下,在发送该分组之前,网络设备基于经修改的分组来执行附加的分组的出口处理。附加的分组处理包括,例如,分组的出口流分类,分组的出口流量监管,分组的出口操作、管理和维护(OAM)处理等。
网络设备有时执行出口分组镜像来向处理器或分析器发送出口分组的副本,例如用于执行网络监控和分析。在典型的网络设备中,为了镜像分组,网络设备在使分组描述符入队到出口队列中以用于随后从网络设备发送分组之前生成与该分组相关联的分组描述符的副本。然而,在某些情况下,基于分组的出口处理,分组被丢掉或丢弃,并且因此实际上不从网络设备发送。在这种情况下,在典型的网络设备中,即使该分组随后基于出口分组处理而被丢掉并且因此实际上不从网络设备发送,出口分组也可以被镜像。此外,因为在从分组存储器取回分组之后执行典型网络设备中的分组的出口处理,所以在分组的出口处理之后不能容易地复制分组,因为分组不再存储在分组存储器中。
发明内容
一种用于在网络设备中处理分组的方法包括:在网络设备的分组处理器处,接收来自网络链路的分组。该方法还包括:利用分组处理器来处理分组以至少(i)确定至少一个传出端口,分组经由至少一个传出端口被发送,以及(ii)执行分组的出口处理,出口处理至少包括(a)至少部分地基于在由分组处理器处理分组期间针对分组确定的信息,修改分组的报头以生成经修改的报头,以及(b)至少部分地基于经修改的报头执行分组的出口分类,出口分类包括确定该分组是否将被网络设备丢弃。该方法另外包括:在确定该分组不会被网络设备丢弃时:利用分组处理器生成分组的副本,以用于将分组镜像到除所确定的至少一个传出端口之外的目的地;以及使分组入队到出口队列中,出口队列与所确定的至少一个传出端口相对应,以及将分组从出口队列传送到所确定的至少一个传出端口,以用于经由所确定的至少一个传出端口将分组发送到被设置在网络中的另一网络设备。
在另一实施例中,网络设备包括接收处理器,该接收处理器被配置为从网络接收分组。网络设备还包括分组处理器,该分组处理器被配置为处理分组以至少:确定至少一个传出端口,分组将经由至少一个传出端口被发送;至少部分地基于在由分组处理器处理分组期间针对分组确定的信息,修改分组的报头以生成经修改的报头;至少部分地基于经修改的报头执行分组的出口分类,出口分类包括确定该分组是否将被网络设备丢弃;以及在确定该分组不会被网络设备丢弃时,生成分组的副本以用于将分组镜像到除所确定的至少一个传出端口之外的目的地,以及使分组入队到出口队列中,出口队列与所确定的至少一个传出端口相对应。该网络设备另外包括发送处理器,该发送处理器被配置为将分组从出口队列传送到所确定的至少一个传出端口,以用于经由所确定的至少一个传出端口发送分组。
附图说明
图1是根据实施例的示例网络设备的框图。
图2是根据实施例的被包括在图1的网络设备中的示例处理管线的框图。
图3是根据实施例的用于镜像网络设备的出口分组的示例方法的流程图。
具体实施方式
在本文所描述的各种实施例中,分组由网络设备接收,并且生成分组的副本以用于将该分组镜像到处理器或分析器,以用于执行例如网络诊断或分析。在一个实施例中,在执行分组的出口处理之后并且在分组的副本被入队到出口队列中以用于从网络设备发送分组之前,生成分组的副本。另外,在一个实施例中,执行出口队列拥塞避免分析来确定分组是否应当被网络设备丢掉。在一些实施例中,在分组被提供用于由网络设备进行出口处理和镜像之前,执行出口队列拥塞分析。在至少一些实施例中,在镜像分组之前执行分组的出口处理允许网络设备基于出口处理的结果做出镜像决定。此外,如果在分组的出口处理期间做出不发送分组(例如,丢弃分组)的决定,则将不触发分组镜像,确保了仅在从网络设备实际发送分组的情况下才由网络设备镜像分组。此外,在至少一些实施例中,在提供分组用于出口处理和镜像之前执行出口队列拥塞避免分析允许网络设备仅在分组实际上将由网络设备发送的情况下才触发分组的出口分类和镜像。
在一个实施例中,在由网络设备接收分组时,分组的至少第一部分(例如,至少有效载荷)被存储在网络设备的分组存储器中,并且分组的第二部分(例如,至少报头部分)被提供给分组处理器用于由网络设备处理分组。在一个实施例中,分组的处理包括确定至少一个传出端口,分组将经由至少一个传出端口从网络设备被发送。在一个实施例中,在至少一些场景中,分组的处理还包括修改分组的报头以生成要被包括在出口分组中的经修改的报头。在一个实施例中,在分组的报头被修改之后,至少部分地基于分组的经修改的报头来执行出口分组处理操作,诸如,例如,出口流分类、出口流量监管、出口操作、管理和维护(OAM)处理等。此外,在一个实施例中,做出出口镜像决定以确定出口分组是否应当被镜像。在一个实施例中,至少部分地基于出口处理来做出出口镜像决定,出口处理基于分组的经修改的报头。此外,在一个实施例中,基于分组的出口处理丢弃分组,针对该分组不触发出口镜像。然后,在一个实施例中,分组的第二部分被存储在分组存储器中,其中第二部分包括经修改的报头。在一个实施例中,使与分组相关联的分组描述符入队到一个或多个出口队列中以用于随后经由所确定的至少一个端口发送该分组。另外,在要镜像出口分组时,生成分组描述符的副本,并且使分组描述符的副本入队到队列中,以便随后分组可以例如被提供给CPU和/或被发送到分析器。随后,在一个实施例中,首次从分组存储器取回分组(例如,分组的第一部分和分组的第二部分)以用于经由所确定的网络设备的至少一个端口来发送分组。在一个实施例中,另外从分组存储器第二次取回分组(例如,分组的第一部分和分组的第二部分),以便该分组可以被提供给CPU和/或被发送到网络分析器。
图1是根据实施例的示例网络设备100的框图,其中示例网络设备100被配置为实现本文所描述的出口分组镜像技术。网络设备100 包括通信地耦合到多个网络链路(未示出)的多个端口104。尽管图 1中示出了六个端口104,但是在各种实施例中,网络设备100包括任何合适数目的端口104。在一个实施例中,由网络设备经由端口104 接收的分组被提供给耦合到端口104的接收处理器108。尽管图1中仅示出了一个接收处理器108,并且一个接收处理器108被示为仅耦合到一个端口104,但是在各种实施例中,网络设备100包括多个接收处理器108,并且多个相应处理器108中的每一个耦合到相应的一个或多个端口104。
接收处理器108被配置为将接收的分组存储在分组存储器110 中。在一个实施例中,接收处理器108被配置为将分组或接收的分组的第一部分存储在分组存储器110中。在一个实施例中,分组的第一部分包括分组的尾部。例如,分组的第一部分至少包括分组的有效载荷。在一个实施例中,分组的第一部分不包括分组的第二部分。例如,在一个实施例中,分组的第一部分不包括分组的报头的至少一部分。因此,在该实施例中,分组的报头的至少一部分最初未被存储在分组存储器110中。在一个实施例中,接收处理器108将分组或分组的第一部分存储在分组存储器110中的第一存储位置处。在一些实施例中,接收处理器108确定分组存储器110中存储分组或分组的第一部分的第一存储位置。在一些实施例中,响应于来自接收处理器108的写入请求,接收处理器108从分组存储器110接收分组存储器110中存储分组或分组的第一部分的第一存储位置的指示符(例如,地址、指针等)。
分组被提供给分组处理器126以用于处理该分组。在一个实施例中,生成与分组相关联的分组描述符,并且将分组描述符而不是分组本身提供给分组处理器126以用于处理该分组。在一个实施例中,接收处理器108被配置为生成与分组相关联的分组描述符。在其他实施例中,网络设备100内的另一合适的设备或模块被配置为生成与分组相关联的分组描述符。在一个实施例中,分组描述符包含来自分组的报头的信息,分组处理器126利用该信息处理分组。在一些实施例中,分组描述符包括分组存储器110中存储分组或分组的第一部分的第一存储位置的指示符。在一些实施例中,分组描述符还包括以下中的一项或多项:(i)分组的第二部分,其最初未被存储在分组存储器110 中,(ii)分组的报头的至少一部分,以及(iii)分组处理器126用于处理分组的其他信息。为了便于解释,如本文所使用的术语“分组”用于指代分组本身或者指代与分组相关联的分组描述符。
在一个实施例中,分组处理器126被配置为基于以下中的一项或多项处理分组:(i)来自分组的报头的、被包括在分组描述符中的信息,(ii)分组的第二部分,以及(iii)被提供给分组处理器126的分组的报头的至少一部分。在一个实施例中,分组处理器126更新分组描述符以指示某些处理结果或者在分组处理期间针对分组做出的决定。在一个实施例中,分组的处理包括确定将向其转发分组的至少一个端口104。例如,分组处理器126包括转发引擎128,转发引擎 128被配置为基于报头信息确定将向其转发分组的一个或多个传出端口104。在一个实施例中,转发引擎128包括或者耦合到转发数据库 (未示出),该转发数据库存储与地址(例如,媒体访问控制(MAC) 地址、互联网协议(IP)地址等)相关联的转发信息(例如,端口信息)和/或其他合适的信息。在一个实施例中,转发引擎128被配置为利用报头信息来在转发数据库中查找指示将向其转发分组的一个或多个端口104的信息。
在一个实施例中,至少在某些情况下,分组的处理还包括基于分组的处理结果来修改分组的报头。在一些实施例中,分组处理器126 确定是否和/或如何修改分组的报头,并且如分组处理器126所确定的,如果需要的话,报头改变引擎(未示出)执行报头改变。在某些情况下,报头改变引擎在分组的报头中执行一个或多个修改以例如,改变下一跳地址、添加封装报头、移除封装报头等。在一些实施例中,在执行报头修改之后,分组的第二部分被存储在分组存储器110中,其中分组的第二部分包括经修改的分组报头。在一个实施例中,分组的第二部分被存储在分组存储器110中的第二存储位置处。在一个实施例中,第二存储位置与分组存储器110中存储分组的第一部分的第一存储位置分开并且独立于第一存储位置。在一个实施例中,与分组相关联的分组描述符被更新以包括分组存储器110中存储分组的第二部分的第二存储位置的指示符(例如,地址、指针等)。在一些实施例中,分组处理器126确定分组存储器110中存储分组的第二部分的第二存储位置。在一些实施例中,响应于来自分组处理器126的写入请求,分组处理器126从分组存储器110接收分组存储器110中存储分组的第二部分的第二存储位置的指示符(例如,地址、指针等)。
在已经确定将向其转发分组的至少一个端口104之后,分组被入队到多个出口队列138的与所确定的至少一个端口104相对应的出口队列138中,以等待随后经由所确定的至少一个端口104发送该分组。在一个实施例中,为了防止出口队列130中的溢出,例如,由于耦合到对应端口104的网络链路上的拥塞,拥塞避免引擎130实现合适的拥塞避免技术。在一个实施例中,拥塞避免引擎130从出口队列138 接收反馈,并且基于从出口队列138接收的反馈来控制到出口队列 136的分组流。在各种实施例中,拥塞避免引擎130从出口队列138 接收的反馈包括出口队列138的当前填充水平、出口队列138接近溢出的指示符、或允许拥塞避免引擎130适当地控制到出口队列138的分组流以避免出口队列138溢出的其他合适的信息。在一个实施例中,拥塞避免引擎130实现尾部丢弃技术或者另一种合适的技术,以减轻出口队列138中的拥塞。在一些实施例中,由拥塞避免引擎130实现的以减轻出口队列138中的拥塞的技术是诸如,加权尾部丢弃 (WTD)、随机早期检测(RED)技术、加权随机早期检测(WRED) 技术、或另一种合适的技术。在一个实施例中,如果要使分组入队到的出口队列138已满或者如果队列的填充水平超过预定阈值,则拥塞避免引擎130确定该分组应当被丢掉。在其他实施例中,拥塞避免引擎130根据确保避免要使分组入队到的出口队列138的溢出的其他合适的标准确定分组应当被丢掉。
由拥塞避免引擎130对其做出不被丢掉的确定的分组被提供给出口分类引擎132。在一个实施例中,出口分类引擎132被配置为执行分组的出口分类,例如以确定分组所属的出站流、将出口访问控制列表(ACL)规则应用于分组等。在一个实施例中,出口分类引擎132基于分组的出口分类来确定(i)分组实际上应当从网络设备100发送,还是(ii)分组不应当被发送而是应当例如被丢弃或被捕获等。在一个实施例中,出口分类引擎132至少部分地基于在由分组处理器126 处理分组期间所确定的信息来执行分组的出口分类。例如,在一个实施例中,出口分类引擎132基于分组的经修改的报头和/或基于被包括在与分组相关联的分组描述符中的处理结果来执行出口分类。在一个实施例中,出口分类引擎132利用一个或多个三元内容可寻址存储设备(TCAM)或其他合适的存储器,并且该一个或多个TCAM或者该其他合适的存储器存储各种报头信息和/或分组描述符信息与分组的出口流之间的关联或者要应用于分组的动作。在一个实施例中,出口分类引擎132使用报头信息和/或分组描述符信息来访问TCAM或者其他合适的存储器,以标识分组的出口流和/或确定关于分组要执行的一个或多个动作。在一个实施例中,在某些情况下,关于分组要执行的一动作是捕获或丢弃分组,例如由于应用于分组的出口ACL策略。
在一个实施例中,在出口分类引擎132确定分组实际上应当从网络设备100发送,并且不应当例如被网络设备100捕获或丢弃时,出口分类引擎132向出口镜像引擎134提供该分组。出口镜像引擎134 实现将被提供给出口镜像引擎134的一些或所有分组镜像到除了所确定的至少一个端口104之外的目的地以用于发送分组。在一个实施例中,例如,出口镜像引擎134实现分组的镜像以将分组的副本提供给网络设备100的CPU和/或直接地或间接低耦合到网络设备100的(除所确定的用于发送分组的至少一个端口104之外的)端口104的分析器。在一个实施例中,出口镜像引擎134基于分组报头中的信息和/ 或与分组相关联的分组描述符中的信息来确定是否镜像分组。在一个实施例中,出口镜像引擎134基于由出口分类引擎132针对分组确定的一个或多个分类结果来确定是否镜像分组。例如,在一个实施例中,出口镜像引擎134基于由出口分类引擎132针对分组确定的出口流来确定是否镜像分组。例如,在一个实施例中,出口镜像引擎被配置为镜像属于一个或多个出口流的分组,并且不镜像属于一个或多个出口流的分组。在一些实施例中,出口分类引擎132被配置为确定是否要镜像分组。例如,在一个实施例中,对于是否要镜像分组的确定是分组的出口分类的一部分。作为示例,在一个实施例中,出口分类引擎 132使用报头信息和/或分组描述符信息来访问TCAM或者其他合适的存储器以确定是否要镜像分组。在一个实施例中,出口分类引擎132 将是否要镜像分组的指示包括在与分组相关联的分组描述符中。在该实施例中,出口镜像引擎134基于被包括在与分组相关联的分组描述符中的指示来确定是否镜像分组。
在一个实施例中,为了镜像分组,出口镜像引擎134生成与分组相关联的分组描述符的副本。在另一实施例中,首先针对分组生成出口分组描述符,并且出口镜像引擎134生成出口描述符的副本。在一个实施例中,在分组的第二部分被存储在分组存储器110中之后生成出口分组描述符。在一个实施例中,出口分组描述符比分组处理器126 用于处理分组的分组描述符更小(例如,包括较少的比特数目)。例如,出口分组描述符仅包括从分组存储器110取回分组所需的信息,诸如分组存储器110中存储分组或分组的部分的(一个或多个)存储位置的一个或多个指示。在一个实施例中,出口分组描述符省略报头信息以及被包括在用于处理分组的分组描述符中的至少一些处理结果。在一个实施例中,分组描述符的副本或出口分组描述符的副本被提供给队列,以便随后该分组可以被提供给网络设备100的CPU和/ 或直接地或间接地耦合到网络设备100的端口104的分析器。
在一个实施例中,在将报头存储在分组存储器110中之前修改分组的报头允许分组处理器126在使分组入队到出口队列138之前以及在分组被调度以用于从网络设备100发送时从分组存储器110取回该分组之前,基于分组的经修改的报头来执行分组的出口分类。因此,在一个实施例中,出口镜像引擎134对分组的出口镜像是基于分组的出口处理的结果来执行的,并且随后从分组存储器110取回分组的副本,以便分组可以被提供给网络设备100的CPU和/或直接地或间接地耦合到网络设备100的端口104的分析器。此外,在一个实施例中,如果基于分组的出口分类(或作为其一部分)做出捕获或丢弃分组的确定,则针对该分组将不触发出口镜像。作为结果,在至少一些实施例中,仅针对从网络设备100实际发送的分组执行出口镜像。
在一个实施例中,由出口镜像引擎134处理的分组被提供给出口入队引擎136。在一个实施例中,出口入队引擎136将分组放置(例如,将与分组相关联的分组描述符或针对分组生成的出口分组描述符放置)在分组将被入队到的出口队列138中。随后,当该分组被调度以被转发到端口104以用于经由该端口104发送时,分组描述符或出口分组描述符从出口队列138中出队并且被提供给发送处理器140以用于随后经由端口104发送该分组。尽管图1中仅示出了一个发送处理器140,并且该一个发送处理器140被示为仅耦合到一个端口104,但是在各种实施例中,网络设备100包括多个发送处理器140,并且多个发送处理器140中的每一个耦合到相应的一个或多个端口104。在一个实施例中,发送处理器140使用被包括在分组描述符或出口分组描述符中的存储位置信息来从分组存储器110取回分组。然后,在一个实施例中,发送处理器140将分组转发到端口104以用于经由端口104发送分组。类似地,在一个实施例中,当分组描述符的副本或出口分组描述符的副本从该分组描述符或出口分组描述符的副本所入队到的出口队列138中出队时,从分组存储器110取回分组,并且分组被提供给CPU和/或经由耦合到分析器的端口104被发送。
图2是根据实施例的被包括在分组处理器(诸如,图1的网络设备100的分组处理器126)中的处理管线200的框图。为了便于解释,参考图1的网络设备100来描述处理管线200。然而,在一些实施例中,处理管线200被用于与图1的网络设备100不同的网络设备。类似地,在一些实施例中,网络设备100利用与管线200不同的处理管线,或者利用与处理管线不同的处理架构(例如,并行处理架构)。
在一个实施例中,分组由网络设备接收并且被提供给处理管线 200以用于处理。在一个实施例中,分组的至少一部分(例如,至少分组的有效载荷)被存储在分组存储器110中,并且分组描述符和/ 或分组的第二部分(例如,报头)被提供给处理管线200以用于处理分组。在一个实施例中,处理管线200基于报头信息来处理分组。例如,在一个实施例中,处理管线200基于被包括在与分组相关联的分组描述符中的报头信息来处理分组。
处理管线200包括隧道终止接口(TTI)分类引擎202。TTI分类引擎202通常执行用于隧道终止标识和/或用于根据L2或L3报头字段分类逻辑接口的查找功能(隧道终止接口(TTI)查找)。TTI查找指示分组应当与一个或多个TTI动作(诸如,向数据帧分配虚拟 LAN(VLAN)标识符、服务质量(QoS)参数等)相关联。在一个实施例中,如果TTI查找利用源端口指示符,则利用本地源端口指示符。
转发引擎204耦合到TTI分类引擎202。在一个实施例中,转发引擎204确定要向其转发分组的至少一个端口104。在一个实施例中,转发引擎204对应于图1的转发引擎128。在一个实施例中,转发引擎204包括或者耦合到转发数据库(未示出),该转发数据库存储与地址(例如,MAC地址、IP地址等)和/或其他合适的信息相关联的转发信息(例如,端口信息)。在一个实施例中,转发引擎204被配置为利用来自分组的报头的信息以在转发数据库中查找信息,该信息指示要向其转发分组的至少一个端口104。在一个实施例中,转发引擎204更新与分组相关联的分组描述符以包括要向其转发分组的一个或多个端口的一个或多个指示符。
报头改变引擎206耦合到转发引擎204。在一个实施例中,如果需要这种修改的话,则报头改变引擎206修改分组的第二部分(例如,报头)。例如,在一个实施例中,至少在某些情况下,报头修改引擎 206基于分组的处理结果来修改分组的报头。在一些实施例中,处理管线200确定是否和/或如何修改分组的报头,并且如由处理管线200 所确定的,如果需要的话,报头改变引擎206执行报头改变。在各种实施例和场景中,报头改变引擎206修改分组的报头以,例如,改变下一跳地址、添加封装报头、移除封装报头等。
出口分类引擎208耦合到报头改变引擎206。在一个实施例中,出口分类引擎208对应于图1的出口分类引擎132。出口分类引擎208 还基于分组的(经修改的或未经修改的)报头来处理分组。例如,在一个实施例中,出口分类引擎208确定分组所属的出口流。在一个实施例中,出口分类引擎208更新与分组相关联的分组描述符以包括分组的出口流的指示符。作为另一示例,在一个实施例中,出口分类引擎208基于被包括在分组的(经修改的或未经修改的)报头中的信息将一个或多个ACL规则应用于分组。
预排队引擎210耦合到出口分类引擎208。在一个实施例中,预排队处理器210对应于图1的拥塞避免引擎130。在一个实施例中,预排队处理器210实现拥塞避免,例如来控制到发送队列138的分组流,以避免发送队列138的溢出。
在一个实施例中,出口计量引擎212例如通过递增与由转发引擎 202确定的将发送分组的端口104相关联的一个或多个计数器来计入分组。出口OAM引擎214耦合到出口计量引擎212。在一个实施例中,出口OAM引擎214处理OAM分组,例如以监控或控制网络的健康。在一个实施例中,出口重新标记引擎216将备注应用于分组的第二部分(例如,报头)中的QoS字段。可编程报头改变引擎218 执行分组的第二部分(例如,报头)的附加修改。在一个实施例中,可编程报头改变引擎218在需要时允许报头改变的灵活性。出口镜像引擎220耦合到出口重新标记引擎218。在一个实施例中,出口镜像引擎220对应于图1的出口镜像引擎134。出口镜像引擎220生成分组的副本以用于将分组镜像到CPU和/或直接地或间接地耦合到网络设备的端口的分析器(例如,网络分析器)。在一个实施例中,出口镜像端口220生成与分组相关联的分组描述符的副本。在另一实施例中,生成与分组相关联的出口分组描述符,其中出口分组描述符比用于处理分组的分组描述符更短,出口镜像引擎220生成与分组相关联的出口分组描述符的副本。在一个实施例中,出口镜像引擎220将生成的分组的副本、生成的分组描述符的副本、或者生成的出口分组描述符的副本提供给CPU和/或与直接地或间接地耦合到分析器的端口向对应的队列以用于随后向该分析器发送分组。
在一个实施例中,出口入队引擎222使分组入队到与要向其转发分组的至少一个端口相对应的出口队列中。在一个实施例中,出口入队引擎222对应于出口入队引擎136。在一个实施例中,出口入队引擎222将分组、与分组相关联的分组描述符、或针对分组生成的出口分组描述符提供给与要向其转发分组的至少一个端口向对应的出口队列。
图3是根据实施例示出用于在网络设备中处理分组的示例方法 300的流程图。在一个实施例中,网络设备100实现方法300以处理由网络设备100接收的分组。在一个实施例中,网络设备100的分组处理器实现方法300的至少一部分以处理由网络设备100接收的分组。仅出于解释的目的,参考网络设备100来描述方法300。在其他实施例中,方法300由另一合适的网络设备实现。
在框302处,经由网络设备的端口接收的分组由网络设备的接收处理器接收。在一个实施例中,分组由图1的接收处理器108接收。在另一实施例中,分组由与图1的接收处理器108不同的合适的处理器接收。在一个实施例中,当分组被接收时,该分组的至少一部分被存储在分组存储器中。在一个实施例中,分组的至少一部分被存储在图1的分组存储器110中。在另一实施例中,分组的至少一部分被存储在与图1的分组存储器110不同的适合的分组存储器中。另外,在一些实施例中,在框302处生成与分组相关联的分组描述符。
在框304和306处,使用报头信息和/或被包括在与分组相关联的分组描述符中的信息来处理分组。更具体地,在框304处,确定要经由其发送分组的至少一个传出端口。在一个实施例中,基于被包括在分组的报头和/或与分组相关联的分组描述符中的一个或多个地址来确定至少一个传出端口。在框306处,执行分组的出口处理。在一个实施例中,在框306处的分组的出口处理包括基于在由网络设备处理分组期间针对分组确定的信息来修改分组的报头。在一个实施例中,分组的出口处理还包括至少部分地基于分组的经修改的报头来执行分组的出口分类。在各种实施例中,分组的出口分类包括,例如,标识分组所属的出口流、将访问控制策略应用于分组、将出口OAM分组策略应用于分组等。在一个实施例中,在框306处至少部分地基于在框304处针对分组确定的至少一个传出端口来执行出口分类。在一个实施例中,在框306处的分组的出口分类包括确定分组是否不应被网络设备发送,而是应当例如被网络设备捕获或丢弃。
在一个实施例中,框306之后是框308-312。在一个实施例中,仅当在框306处没有做出分组不应被发送的确定时,才执行框 308-312。在一个实施例中,例如,当确定分组应当被网络设备丢弃时,执行框308-312。在框308处,生成分组的副本以用于镜像分组。在一个实施例中,在框308处生成与分组相关联的分组描述符的副本,而不是分组本身的副本。在一个实施例中,针对分组生成发送分组描述符,其中出口分组描述符比用于处理分组的分组描述符更短。在该实施例中,在框308处生成出口分组描述符的副本,而不是分组本身的副本。
在框310处,分组被入队到与在框304处所确定的至少一个端口相对应的出口队列中。在一个实施例中,在框308处生成分组的副本之后,执行在框310处使分组入队到出口队列。在一个实施例中,使与分组相关联的分组描述符,而不是分组本身入队到出口队列中。在其中出口分组描述符比用于处理分组的分组描述符更短的另一实施例中,在框310处使出口分组描述符入队到出口队列中。
在框312处,分组被传送到在框304处所确定的至少一个端口。在一个实施例中,在被传送到至少一个端口之前,从分组存储器取回分组的至少一部分,并将该分组的至少一部分传送到至少一个端口。
一种用于在网络设备中处理分组的方法包括:在网络设备的分组处理器处接收来自网络链路的分组。该方法还包括利用分组处理器来处理分组以至少(i)确定至少一个传出端口,分组将经由至少一个传出端口被发送,以及(ii)执行分组的出口处理,出口处理至少包括 (a)至少部分地基于在由分组处理器处理分组期间针对分组确定的信息,修改分组的报头以生成经修改的报头,以及(b)至少部分地基于经修改的报头执行分组的出口分类,出口分类包括确定该分组是否将被网络设备丢弃。该方法另外包括:在确定该分组将被网络设备丢弃时:利用分组处理器生成分组的副本,以用于将分组镜像到除所确定的至少一个传出端口之外的目的地;以及使分组入队到出口队列中,出口队列与所确定的至少一个传出端口相对应,以及将分组从出口队列传送到所确定的至少一个传出端口,以用于经由所确定的至少一个传出端口将分组发送到被设置在网络中的另一网络设备。
在其他实施例中,该方法包括以下特征中的一个或更多个特征的任何合适的组合。
该方法还包括:利用分组处理器,基于分组的出口分类的结果来确定分组是否将被镜像,出口分类至少部分地基于经修改的报头被执行。
利用分组处理器生成分组的副本包括:仅在确定分组将被镜像的情况下生成副本。
该方法还包括:利用分组处理器确定分组是否因为出口队列中的拥塞而将被丢掉。
生成分组的副本包括:仅在确定分组不会因出口队列中的拥塞而被丢掉时,生成副本。
确定分组是否将被丢掉包括:如果出口队列的填充水平超过预定阈值,则确定该分组将被丢掉。
该方法还包括:将分组的副本提供给以下中的一项或多项:(i) 网络设备的中央处理单元(CPU)和(ii)网络设备的端口,该端口直接地或间接地耦合到分析器,以用于向分析器发送该分组的副本。
该方法还包括:在处理分组之前,利用接收处理器将分组的至少一部分存储在分组存储器中,并且其中:
处理分组包括:使用与分组相关联的分组描述符来处理分组。
生成分组的副本包括:在从分组存储器取回分组的至少一部分之前,生成与分组相关联的分组描述符的副本。
该方法还包括:使分组描述符的副本入队到附加出口队列中,该附加出口队列与网络设备的、直接地或间接地耦合到分析器的端口相对应。
该方法还包括:在分组从出口队列中出队时,利用发送处理器从分组存储器取回分组的至少一部分,以用于经由所确定的至少一个传出端口发送分组。
该方法还包括:在分组描述符的副本从附加出口队列中出队时,从分组存储器取回分组的至少一部分,以用于向分析器发送分组。
从分组存储器取回分组的至少一部分以用于向分析器发送分组包括:在分组的至少一部分从分组存储器中被取回以用于经由所确定的至少一个端口发送分组之后,从分组存储器取回分组的至少一部分。
在另一实施例中,一种网络设备包括接收处理器,该接收处理器被配置为从网络接收分组。网络设备还包括分组处理器,该分组处理器被配置为处理分组以至少:确定至少一个传出端口,分组将经由至少一个传出端口被发送;至少部分地基于在由分组处理器处理分组期间针对分组确定的信息,修改分组的报头以生成经修改的报头;至少部分地基于经修改的报头执行分组的出口分类,出口分类包括确定该分组是否将被网络设备丢弃;以及在确定该分组不会被网络设备丢弃时,生成分组的副本以用于将分组镜像到除所确定的至少一个传出端口之外的目的地,以及使分组入队到出口队列中,出口队列与所确定的至少一个传出端口相对应。该网络设备另外包括发送处理器,该发送处理器被配置为将分组从出口队列传送到所确定的至少一个传出端口,以用于经由所确定的至少一个传出端口发送分组。
在其他实施例中,网络设备还包括以下特征中的一个或更多个特征的任何合适的组合。
分组处理器还被配置为:基于分组的出口分类的结果,确定分组是否将被镜像,该出口分类(i)至少部分基于经修改的报头,并且(ii) 在使分组入队到出口队列之前被执行。
分组处理器被配置为:仅在确定分组将被镜像的情况下生成该分组的副本。
分组处理器还被配置为:在生成分组的副本之前,确定分组是否因为出口队列中的拥塞而将被丢掉。
分组处理器被配置为:仅在确定分组不会因出口队列中的拥塞而被丢掉时,生成该分组的副本。
分组处理器被配置为:如果出口队列的填充水平超过预定阈值,则确定分组将被丢掉。
分组处理器还被配置为执行以下中的一项或两项:(i)将分组的副本提供给网络设备的中央处理单元(CPU)以及(ii)使分组入队到附加出口队列中,该附加出口队列与网络设备的、直接地或间接地被耦合到分析器的端口相对应,以用于随后向分析器发送分组的副本。
接收处理器被配置为将分组的至少一部分存储在分组存储器中。
分组处理器被配置为:使用与分组相关联的分组描述符来处理该分组,以及在分组的至少一部分从分组存储器中被取回之前,至少通过生成与分组相关联的分组描述符的副本来生成该分组的副本。
分组处理器还被配置为:使分组描述符的副本入队到附加出口队列中,该附加出口队列与网络设备的、直接地或间接地耦合到分析器的端口相对应。
发送处理器被配置为:在分组从出口队列中出队时,从分组存储器取回该分组的至少一部分,以用于经由所确定的至少一个传出端口发送该分组。
发送处理器还被配置为:在分组描述符的副本从附加出口队列中出队时,从分组存储器取回分组的至少一部分,以用于向分析器发送该分组。
发送处理器被配置为:从分组存储器取回分组,以用于在分组从分组存储器中被取回以用于经由所确定的至少一个传出端口发送该分组之后向分析器发送该分组。
上面描述的各种框、操作和技术中的至少一些可以利用硬件、执行固件指令的处理器、执行软件指令的处理器及其任意组合来实现。
当以硬件实现时,硬件可以包括分立组件、集成电路、专用集成电路(ASIC)、可编程逻辑设备(PLD)等中的一个或多个。
当利用执行软件或固件指令的处理器来实现时,软件或固件指令可以被存储在任何计算机可读存储器中,诸如,磁盘、光盘或其他存储介质、RAM或ROM或闪速、处理器、硬盘驱动器、光盘驱动器、磁带驱动器等中。软件或固件指令可以包括机器可读指令,该机器可读指令当由一个或多个处理器执行时,使得一个或多个处理器执行各种动作。
尽管已经参照具体示例来描述本发明,但是这些具体示例仅用于说明而不是对本发明的限制,在不脱离本发明的范围的情况下,可以对所公开的实施例进行改变、增加和/或删除。例如,上面描述的方法或技术的一个或多个部分可以以不同的顺序(或同时)执行,并且仍然实现期望的结果。

Claims (20)

1.一种用于在网络设备中处理分组的方法,所述方法包括:
在所述网络设备的分组处理器处接收来自网络链路的分组;
利用所述分组处理器来处理所述分组以至少:(i)确定至少一个传出端口,所述分组将由所述网络设备经由所述至少一个传出端口被发送,以及(ii)执行所述分组的出口处理,出口处理至少包括(a)至少部分地基于在由所述分组处理器处理所述分组期间针对所述分组确定的信息,修改所述分组的报头以生成经修改的报头,以及(b)至少部分地基于所述经修改的报头执行所述分组的出口分类,包括确定所述分组是否将被所述网络设备丢弃;以及
响应于确定所述分组不会被所述网络设备丢弃:
由所述网络设备基于出口分类触发对所述分组的镜像,以避免对被丢弃的分组的镜像,所述镜像包括利用所述分组处理器生成所述分组的副本来生成镜像的分组,以用于将所述分组镜像到除所确定的所述至少一个传出端口之外的目的地,所述镜像的分组随后被用于以下至少一项:(i)网络监控、以及(ii)网络分析;以及
使所述分组入队到出口队列中,所述出口队列与所确定的所述至少一个传出端口相对应,以及
将所述分组从所述出口队列传送到所确定的所述至少一个传出端口,以用于经由所确定的所述至少一个传出端口将所述分组发送到被设置在网络中的另一网络设备。
2.根据权利要求1所述的方法,其中
所述方法还包括:利用所述分组处理器,基于所述分组的所述出口分类的结果来确定所述分组是否将被镜像,所述出口分类至少部分地基于所述经修改的报头被执行,以及
利用所述分组处理器生成所述分组的所述副本包括:仅在确定所述分组将被镜像的情况下生成所述副本。
3.根据权利要求1所述的方法,其中
所述方法还包括:利用所述分组处理器确定所述分组是否因为所述出口队列中的拥塞而将被丢掉;以及
生成所述分组的所述副本包括:仅在确定所述分组不会因所述出口队列中的拥塞而被丢掉时,生成所述副本。
4.根据权利要求3所述的方法,其中确定所述分组是否将被丢掉包括:如果所述出口队列的填充水平超过预定阈值,则确定所述分组将被丢掉。
5.根据权利要求1所述的方法,还包括:将所述分组的所述副本提供给以下中的一项或两项:(i)所述网络设备的中央处理单元(CPU)和(ii)所述网络设备的端口,所述端口直接地或间接地耦合到分析器,以用于向所述分析器发送所述分组的所述副本。
6.根据权利要求1所述的方法,还包括:在处理所述分组之前,利用接收处理器将所述分组的至少一部分存储在分组存储器中,并且其中:
处理所述分组包括:使用与所述分组相关联的分组描述符来处理所述分组,以及
生成所述分组的所述副本包括:在从所述分组存储器取回所述分组的所述至少一部分之前,生成与所述分组相关联的所述分组描述符的副本。
7.根据权利要求6所述的方法,还包括使所述分组描述符的所述副本入队到附加出口队列中,所述附加出口队列与所述网络设备的、直接地或间接地耦合到分析器的端口相对应。
8.根据权利要求7所述的方法,还包括:在所述分组从所述出口队列中出队时,利用发送处理器从所述分组存储器取回所述分组的所述至少一部分,以用于经由所确定的所述至少一个传出端口发送所述分组。
9.根据权利要求8所述的方法,还包括:在所述分组描述符的所述副本从所述附加出口队列中出队时,从所述分组存储器取回所述分组的所述至少一部分,以用于向所述分析器发送所述分组。
10.根据权利要求9所述的方法,其中从所述分组存储器取回所述分组的所述至少一部分以用于向所述分析器发送所述分组包括:在所述分组的所述至少一部分从所述分组存储器中被取回以用于经由所确定的所述至少一个端口发送所述分组之后,从所述分组存储器取回所述分组的所述至少一部分。
11.一种网络设备,包括:
接收处理器,所述接收处理器被配置为从网络接收分组;
分组处理器,所述分组处理器被配置为:
确定至少一个传出端口,所述分组将由所述网络设备经由所述至少一个传出端口被发送,
至少部分地基于在由所述分组处理器处理所述分组期间针对所述分组确定的信息,修改所述分组的报头以生成经修改的报头,以及
至少部分地基于所述经修改的报头执行所述分组的出口分类,所述出口分类包括确定所述分组是否将被所述网络设备丢弃,以及
响应于确定所述分组不会被所述网络设备丢弃:
由所述网络设备基于出口分类触发对所述分组的镜像,以避免对被丢弃的分组的镜像,所述镜像包括利用所述分组处理器来生成所述分组的副本,以用于将所述分组镜像到除所确定的所述至少一个传出端口之外的目的地,所述镜像的分组随后被用于以下至少一项:(i)网络监控、以及(ii)网络分析;以及
使所述分组入队到出口队列中,所述出口队列与所确定的所述至少一个传出端口相对应,以及
发送处理器,所述发送处理器被配置为将所述分组从所述出口队列传送到所确定的所述至少一个传出端口,以用于经由所确定的所述至少一个传出端口发送所述分组。
12.根据权利要求11所述的网络设备,其中所述分组处理器还被配置为:
基于所述分组的所述出口分类的结果来确定所述分组是否将被镜像,所述出口分类(i)至少部分地基于所述经修改的报头并且(ii)在使所述分组入队到所述出口队列之前被执行,以及
仅在确定所述分组将被镜像的情况下生成所述分组的所述副本。
13.根据权利要求11所述的网络设备,其中所述分组处理器还被配置为:
在生成所述分组的所述副本之前,确定所述分组是否因为所述出口队列中的拥塞而将被丢掉;以及
仅在确定所述分组不会因所述出口队列中的拥塞而被丢掉时,生成所述分组的所述副本。
14.根据权利要求13所述的网络设备,其中所述分组处理器被配置为:如果所述出口队列的填充水平超过预定阈值,则确定所述分组将被丢掉。
15.根据权利要求14所述的网络设备,其中所述分组处理器还被配置为执行以下中的一项或两项:(i)将所述分组的所述副本提供给所述网络设备的中央处理单元(CPU)以及(ii)使所述分组入队到附加出口队列中,所述附加出口队列与所述网络设备的、直接地或间接地耦合到分析器的端口相对应,以用于随后向所述分析器发送所述分组的所述副本。
16.根据权利要求11所述的网络设备,其中
所述接收处理器被配置为将所述分组的至少一部分存储在分组存储器中,以及
所述分组处理器被配置为:
使用与所述分组相关联的分组描述符来处理所述分组,以及
在所述分组的所述至少一部分从所述分组存储器中被取回之前,至少通过生成与所述分组相关联的所述分组描述符的副本来生成所述分组的所述副本。
17.根据权利要求16所述的网络设备,其中所述分组处理器还被配置为:使所述分组描述符的所述副本入队到附加出口队列中,所述附加出口队列与所述网络设备的、直接地或间接地耦合到分析器的端口相对应。
18.根据权利要求15所述的网络设备,其中所述发送处理器被配置为:在所述分组从所述出口队列中出队时,从所述分组存储器取回所述分组的所述至少一部分,以用于经由所确定的所述至少一个传出端口发送所述分组。
19.根据权利要求18所述的网络设备,其中所述发送处理器还被配置为:在所述分组描述符的所述副本从所述附加出口队列中出队时,从所述分组存储器取回所述分组的所述至少一部分,以用于向所述分析器发送所述分组。
20.根据权利要求19所述的网络设备,其中所述发送处理器被配置为:从所述分组存储器取回所述分组,以用于在所述分组从所述分组存储器中被取回以用于经由所确定的所述至少一个传出端口发送所述分组之后向所述分析器发送所述分组。
CN201780044402.3A 2016-05-18 2017-05-18 一种用于在网络设备中处理分组的方法及网络设备 Active CN109496410B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110825382.1A CN113572758B (zh) 2016-05-18 2017-05-18 一种用于处理通信网络中的分组的网络设备和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662338067P 2016-05-18 2016-05-18
US62/338,067 2016-05-18
PCT/IB2017/052919 WO2017199186A1 (en) 2016-05-18 2017-05-18 Egress flow mirroring in a network device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110825382.1A Division CN113572758B (zh) 2016-05-18 2017-05-18 一种用于处理通信网络中的分组的网络设备和方法

Publications (2)

Publication Number Publication Date
CN109496410A CN109496410A (zh) 2019-03-19
CN109496410B true CN109496410B (zh) 2021-08-03

Family

ID=60326462

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780044402.3A Active CN109496410B (zh) 2016-05-18 2017-05-18 一种用于在网络设备中处理分组的方法及网络设备
CN202110825382.1A Active CN113572758B (zh) 2016-05-18 2017-05-18 一种用于处理通信网络中的分组的网络设备和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110825382.1A Active CN113572758B (zh) 2016-05-18 2017-05-18 一种用于处理通信网络中的分组的网络设备和方法

Country Status (3)

Country Link
US (4) US10541947B2 (zh)
CN (2) CN109496410B (zh)
WO (1) WO2017199186A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109496410B (zh) * 2016-05-18 2021-08-03 马维尔以色列(M.I.S.L.)有限公司 一种用于在网络设备中处理分组的方法及网络设备
CN109479031B (zh) 2016-05-18 2021-06-25 马维尔以色列(M.I.S.L.)有限公司 用于在网络设备中处理分组的方法和装置
US10701002B1 (en) 2016-12-07 2020-06-30 Marvell International Ltd. System and method for memory deallocation
US10630596B1 (en) * 2016-12-20 2020-04-21 Amazon Technologies, Inc. Forwarding action redirection
US10735339B1 (en) * 2017-01-16 2020-08-04 Innovium, Inc. Intelligent packet queues with efficient delay tracking
CN110383777B (zh) 2017-03-28 2022-04-08 马维尔亚洲私人有限公司 端口扩展器设备的灵活处理器
US10999173B2 (en) * 2018-11-19 2021-05-04 Cisco Technology, Inc. Active targeted data plane traffic monitoring for wired networks
US11563830B2 (en) * 2018-12-19 2023-01-24 Nokia Technologies Oy Method and system for processing network packets
US10834006B2 (en) 2019-01-24 2020-11-10 Mellanox Technologies, Ltd. Network traffic disruptions
US11343358B2 (en) 2019-01-29 2022-05-24 Marvell Israel (M.I.S.L) Ltd. Flexible header alteration in network devices
US10999366B2 (en) * 2019-03-10 2021-05-04 Mellanox Technologies Tlv Ltd. Mirroring dropped packets
US11671483B2 (en) * 2019-10-30 2023-06-06 Telefonaktiebolaget Lm Ericsson (Publ) In-band protocol-based in-network computation offload framework
US20230075971A1 (en) * 2021-09-09 2023-03-09 Hewlett Packard Enterprise Development Lp Dropped traffic rerouting for analysis
CN114095513B (zh) * 2021-11-26 2024-03-29 苏州盛科科技有限公司 有限带宽场景下转发流量和镜像流量调度的方法及应用

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606927B2 (en) * 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
CN102884768A (zh) * 2010-06-08 2013-01-16 日本电气株式会社 通信***、控制装置、分组捕获方法和分组捕获程序
US9203711B2 (en) * 2013-09-24 2015-12-01 International Business Machines Corporation Port mirroring for sampling measurement of network flows

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6987732B2 (en) * 2000-12-15 2006-01-17 Tellabs San Jose, Inc. Apparatus and methods for scheduling packets in a broadband data stream
US7002980B1 (en) * 2000-12-19 2006-02-21 Chiaro Networks, Ltd. System and method for router queue and congestion management
US7710957B2 (en) * 2004-05-19 2010-05-04 Cisco Technology, Inc. System and method for implementing multiple spanning trees per network
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US8023419B2 (en) * 2007-05-14 2011-09-20 Cisco Technology, Inc. Remote monitoring of real-time internet protocol media streams
US8054744B1 (en) 2007-10-25 2011-11-08 Marvell International Ltd. Methods and apparatus for flow classification and flow measurement
US8279871B1 (en) 2007-10-29 2012-10-02 Marvell Israel (M.I.S.L.) Ltd. Methods and apparatus for processing multi-headed packets
US8565234B1 (en) 2009-01-08 2013-10-22 Marvell Israel (M.I.S.L) Ltd. Multicast queueing in a switch
US8553582B1 (en) 2009-01-08 2013-10-08 Marvell Israel (M.I.S.L) Ltd. Traffic spraying in a chassis-based network switch
US8711752B2 (en) * 2010-01-12 2014-04-29 Cisco Technology, Inc. Distributed multicast packet replication with centralized quality of service
US8611352B2 (en) 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline
US9344377B2 (en) * 2010-04-30 2016-05-17 Broadcom Corporation Packet processing architecture
US9584342B1 (en) 2010-05-26 2017-02-28 Marvell International Ltd. Enhanced audio video bridging (AVB) methods and apparatus
US9660940B2 (en) * 2010-12-01 2017-05-23 Juniper Networks, Inc. Methods and apparatus for flow control associated with a switch fabric
CN103004158B (zh) * 2011-01-06 2016-12-28 马维尔以色列(M.I.S.L)有限公司 具有可编程内核的网络设备
US9917779B2 (en) * 2011-08-23 2018-03-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Alleviating congestion in a cable modem
US9112708B1 (en) * 2012-01-27 2015-08-18 Marvell Israel (M.I.S.L) Ltd. Processing multicast packets in a network device
US8705365B1 (en) * 2012-02-21 2014-04-22 Cisco Technology, Inc. System and method for producing dynamic credit updates for time based packet sampling
US9571403B2 (en) 2013-02-07 2017-02-14 Broadcom Corporation Packet marking for flow management, including deadline aware flow management
US9794141B2 (en) * 2013-03-14 2017-10-17 Arista Networks, Inc. System and method for determining a cause of network congestion
US9705850B2 (en) * 2013-03-15 2017-07-11 Arizona Board Of Regents On Behalf Of Arizona State University Enabling comparable data access control for lightweight mobile devices in clouds
US9407460B2 (en) * 2013-03-20 2016-08-02 Marvell World Trade Ltd. Cut-through processing for slow and fast ports
US10742604B2 (en) * 2013-04-08 2020-08-11 Xilinx, Inc. Locked down network interface
US10462065B2 (en) * 2014-06-29 2019-10-29 Vmware, Inc. Path maximum transmission unit discovery
US20160099853A1 (en) * 2014-10-01 2016-04-07 Cisco Technology, Inc. Active and passive dataplane performance monitoring of service function chaining
US9804959B2 (en) * 2014-10-31 2017-10-31 Netronome Systems, Inc. In-flight packet processing
US10003544B2 (en) * 2014-12-11 2018-06-19 Futurewei Technologies, Inc. Method and apparatus for priority flow and congestion control in ethernet network
US9806985B2 (en) * 2015-03-02 2017-10-31 Cisco Technology, Inc. Symmetric routing enforcement
US9531556B2 (en) * 2015-03-25 2016-12-27 International Business Machines Corporation Supporting low latency applications at the edge of wireless communication networks
US10003466B1 (en) * 2015-09-15 2018-06-19 Amazon Technologies, Inc. Network traffic with credential signatures
US10084752B2 (en) * 2016-02-26 2018-09-25 Microsoft Technology Licensing, Llc Hybrid hardware-software distributed threat analysis
US10516626B1 (en) * 2016-03-16 2019-12-24 Barefoot Networks, Inc. Generating configuration data and API for programming a forwarding element
US10841214B2 (en) * 2016-05-13 2020-11-17 Telefonaktiebolaget Lm Ericsson (Publ) Reusing a tag
CN109479031B (zh) 2016-05-18 2021-06-25 马维尔以色列(M.I.S.L.)有限公司 用于在网络设备中处理分组的方法和装置
CN109496410B (zh) * 2016-05-18 2021-08-03 马维尔以色列(M.I.S.L.)有限公司 一种用于在网络设备中处理分组的方法及网络设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606927B2 (en) * 2003-08-27 2009-10-20 Bbn Technologies Corp Systems and methods for forwarding data units in a communications network
CN102884768A (zh) * 2010-06-08 2013-01-16 日本电气株式会社 通信***、控制装置、分组捕获方法和分组捕获程序
US9203711B2 (en) * 2013-09-24 2015-12-01 International Business Machines Corporation Port mirroring for sampling measurement of network flows

Also Published As

Publication number Publication date
US20170339074A1 (en) 2017-11-23
US11824799B2 (en) 2023-11-21
US20200153759A1 (en) 2020-05-14
US11075859B2 (en) 2021-07-27
US20210352024A1 (en) 2021-11-11
WO2017199186A1 (en) 2017-11-23
CN113572758B (zh) 2023-11-28
US10541947B2 (en) 2020-01-21
CN113572758A (zh) 2021-10-29
US20240098042A1 (en) 2024-03-21
CN109496410A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN109496410B (zh) 一种用于在网络设备中处理分组的方法及网络设备
US11005769B2 (en) Congestion avoidance in a network device
US8897315B1 (en) Fabric traffic management in a network device
US8605588B2 (en) Packet drop analysis for flows of data
US10574546B2 (en) Network monitoring using selective mirroring
US9571403B2 (en) Packet marking for flow management, including deadline aware flow management
US9674102B2 (en) Methods and network device for oversubscription handling
US8234401B2 (en) Adaptive policers responsive to utilization levels of a resource
US10764410B2 (en) Method and apparatus for processing packets in a network device
US10764209B2 (en) Providing a snapshot of buffer content in a network element using egress mirroring
US11784932B2 (en) Delay-based automatic queue management and tail drop
US8072887B1 (en) Methods, systems, and computer program products for controlling enqueuing of packets in an aggregated queue including a plurality of virtual queues using backpressure messages from downstream queues
US10320686B2 (en) Load balancing eligible packets in response to a policing drop decision
CN112104564A (zh) 一种负载分担方法及设备
US10608948B1 (en) Enhanced congestion avoidance in network devices
CN114095450A (zh) 有状态过滤***和方法
US8351341B1 (en) Filtering to protect class of service
US20230022037A1 (en) Flow-based management of shared buffer resources
JP4019027B2 (ja) パケット転送装置およびその方法

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