CN105763296B - 用于在处理资源之间调度网络帧的方法 - Google Patents

用于在处理资源之间调度网络帧的方法 Download PDF

Info

Publication number
CN105763296B
CN105763296B CN201510973985.0A CN201510973985A CN105763296B CN 105763296 B CN105763296 B CN 105763296B CN 201510973985 A CN201510973985 A CN 201510973985A CN 105763296 B CN105763296 B CN 105763296B
Authority
CN
China
Prior art keywords
register
frame
value
registers
parameter
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
CN201510973985.0A
Other languages
English (en)
Other versions
CN105763296A (zh
Inventor
P·库弗特
M·雷布津斯卡
S·马里琼
Y·卡莱姆卡里安
B·甘尼
A·布兰佩
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.)
Kalray SA
Original Assignee
Kalray SA
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 Kalray SA filed Critical Kalray SA
Publication of CN105763296A publication Critical patent/CN105763296A/zh
Application granted granted Critical
Publication of CN105763296B publication Critical patent/CN105763296B/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0072Error control for data other than payload data, e.g. control data
    • 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
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • 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/12Protocol engines
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields

Abstract

本发明涉及一种处理到达网络接口上的数据帧的方法,包括在所述网络接口中实现的以下步骤:存储一组目标位置(tgtPOS),所述位置是期望描述子帧(ETH_TYPE)的至少一个参数和描述客户端‑服务器会话的参数(SRC_IP,DST_IP)的帧中的位置;存储用于子帧参数的期望值(xpVAL);接收当前帧,并将在所述子帧参数的位置接收的值(xtVAL)和期望值相比较;如果相等,则根据在会话参数的位置接收的值计算索引(IDX);以及将当前帧路由到与所述索引关联的处理资源。

Description

用于在处理资源之间调度网络帧的方法
技术领域
本发明涉及网络处理设备,尤其用于以太网网络。
背景技术
图1A至图1C显示了示例性的以太网帧起始处的报头(header)序列。以太网帧通常包括分层嵌套的、对应于互联网协议组不同层的一系列子帧.
图1A示出了以太网帧的第一个报头。以太网协议为互联网协议组中的“数据链路层”,例如Token Ring、PPP、HDLC、ATM、Wi-Fi等。前6个字节B0至B5传递目的地MAC地址,接下来6个字节B6至B11传送源MAC地址,字节B12和B13(ETH TYPE)定义嵌套于所述以太网帧中字节B14的“网络层”或“互联网层”的协议,例如IP(IPv4、IPv6)、ICMP、IPX等。
图1B示出了可以始于字节B14的IPv4子帧的报头。IPv4帧的报头包括各种参数,尤其是用字节B24标识的“协议”,用8个字节B26至B33标识的源和目的地IP地址。所述“协议”字节从字节B37定义了IPv4帧中嵌套的“传输层”,例如TCP、UDP、或SCTP。
图1C示出了可以始于字节B37的TCP子帧的报头。B37至B40这4个字节标识源端口和目的地端口。
用以太网帧的字节B12至B13传递的ETH TYPE参数还可以规定所述以太网帧包含具有与所述以太网一样层级的数个子帧,例如多个以太网子帧。例如当ETH TYPE参数规定TRILL协议(“大量链路的透明互连”)时,情况就是如此。
图2示出了嵌套于图1A的以太网帧中字节B14的TRILL帧的起始。TRILL帧可以传递多个以太网子帧,各具有和图1A相同结构的报头。各以太网子帧之前有6个字节的前同步码,其中第三、四个字节传递参数ERBN(“Egress RBridge Name”)。
以太网帧可以在所谓的VLAN模式中定义虚拟本地网络。在此情况下,ETH TYPE参数之前有用于标识所述VLAN的一至三个4字节标记。
IEEE 802.3ba标准提供了一种以太网连接,其可以在4条双绞线电缆上达到40Gbits/s的数据速率,即每双绞线10Gbits/s。
能够充分利用这一数据速率的网络接口卡牵涉大量计算资源,尤其是解码所述报头、计算错误校验签名、提取数据包和将所述数据包导向其最终目的地。
发明内容
提供了一种用于处理在网络接口上到达的数据帧的方法,包括在所述网络接口中实现的以下步骤:存储一组目标位置,期望描述子帧的至少一个参数和描述客户端-服务器会话的参数在帧中的位置;存储用于子帧参数的期望值;接收当前帧,并将在所述子帧参数的位置接收的值与期望值比较;如果相等,根据在会话参数的位置接收的值计算索引;以及将当前帧路由至与所述索引关联的处理资源。
所述方法可以包括步骤:以固定大小的字生成当前帧的数据;当所述帧的当前字包括目标位置时,将所述字存储在提取值寄存器组的相应存储器内;配置所述提取值寄存器组上的索引掩码,以除了那些在所述会话参数的位置的值外,取消所有值;以及通过所述索引掩码,计算所述提取值寄存器组上的所述索引。
所述方法可以包括步骤:将用于数个子帧参数的期望值存储在对应于所述提取值寄存器的期望值寄存器组内;配置所述提取值寄存器组上的比较掩码,以除了那些在所述子帧参数的位置的值外,取消所有值;通过所述比较掩码,将所述提取值寄存器组的内容与所述期望值寄存器组的内容相比较。
所述方法可以包括步骤:将所述目标位置存储在目标位置寄存器组的、分别与所述提取值寄存器关联的相应寄存器中;同时将所有目标位置寄存器的内容与接收到的帧的当前位置计数相比较;在所述位置计数与目标位置寄存器的内容对应的情况下,将所述帧的当前字存储在与目标位置寄存器关联的提取值寄存器中。
所述方法可以包括步骤:提供多条独立的调度规则,各调度规则使用一组目标位置、提取值寄存器组、索引掩码、比较掩码和期望值寄存器组;设置所述调度规则之间的优先权;对当前帧并行评估所述调度规则;使用在同时满足的多条规则之间具有最高优先级的调度规则所生成的索引。
所述方法可以包括步骤:定义所述会话参数的目标位置,使得将在会话参数位置接收的各值存储在不同的提取值寄存器中;如果两个提取值寄存器设计为分别包含源参数和目的地参数,以相同顺序使用两个寄存器的内容的最大值和两个寄存器的内容的最小值来计算所述索引。
附图说明
根据以下对仅出于示例目的提供、并由附图表示的本发明特定实施例的描述,其它优点和特征将更清晰明显,其中:
图1A至图1C和图2,如之前描述的,表示以太网帧中可以存在的示例性报头;
图3为操作多核处理器用于处理以高数据速率到达的帧的网络接口卡的框图;
图4为示出一种向处理器内核调度到来的帧的方法的框图;
图5为实现图4原理的调度器的实施例的图;
图6A示出了提取值寄存器组的示例性内容,例如由图5的调度器生成的;
图6B示出了所述提取值寄存器组的其它示例性内容;
图7为可以生成图6B的寄存器组内容的调度器实施例的图;以及
图8示意性显示了可以根据数条规则调度帧的电路的实施例。
具体实施方式
当前的网络接口卡,其数据速率可以高达1Gbits/s,设计为转发原始帧给主处理器。所述主处理器然后有处理所述帧的负担,例如用于提取有效负载、差错管理、转发数据给目标服务,等等。
利用根据IEEE 802.3ba的网络接口卡,数据速率可以乘以40。如果对于1Gbit卡,所述主处理器设计为执行相同的任务,它可能受不了网络数据包处理,且不会有用于其主要任务的资源。出于这一原因,新的网络卡设计为用硬件实现用于分配给所述主处理器的某些任务。然而,当标准和协议发展时,此类卡变得过时了。因而需要可编程的网络卡,这样它能通过简单的固件更新适配变化的标准和协议。
图3为40Gbit网络接口卡(NIC)的框图,包括设计为卸载网络数据包的处理的主CPU的嵌入式多核处理器10。处理器10可以包括数百个内核,例如Kalray制造的MPPA型处理器。
所述卡进一步包括物理层控制电路12,可以集成常规网络卡的功能,即经串行-并行转换提供并接受原始以太网帧。本公开文件集中于要用处理器10处理的到来的以太网流量。这一配置的困难在于数百个处理器内核10上执行接收到的帧的优化的实时调度14。
多个处理器内核之间的帧调度不是小事。例如,以循环方式将内核分配给帧是不够的。实际上,数个不同的内核接着可能独立地终结处理属于同一客户端-服务器会话的数据,借以在分配给所述内核的不同存储区域内拆分这一会话的数据。那么重装所述会话的数据在资源方面是很难的,或者至少成本很高,因此它们成为可利用的。
图4为示出一种由调度器电路14实现的帧调度方法的框图。这一方法基于创建一组调度规则,确保同一客户端-服务器会话的帧总是导向同一处理器内核。标识会话的帧的参数取决于协议。例如,对于IPv4和TCP协议(图1B和图1C),会话可以由协议(B24)、源IP地址(B26-29)、目的地IP地址(B30-33)、源端口(B37-38)、目的地端口(B39-40)标识。
在图4中,举例来说,所述电路实现用于TCP/IPv4帧的调度规则。把到来的帧ETHin的连续字节从右至左写入一系列寄存器REG。在16中将位置12和13(ETH TYPE)的字节与期望值xpVAL比较,此处标识IPv4协议(0x0800)的码。对于TCP/IPv4帧,标识会话的5个参数始于字节24、26、30、37和39。这些参数提供给通过哈希(HASH)函数生成索引IDX的电路18。配置所述哈希函数,使得所述索引扫描处理器内核10的数目。索引IDX通过接收FIFO存储器22内排队的帧的分离器20,来选择所述帧的目的地内核。
当然,写入寄存器REG的当前帧不必是TCP/IPv4帧。将所有帧系统地写入寄存器REGS。所述帧的性质由比较器16检查,只有位置12和13(ETH TYPE)处的字节标识IPv4协议,才使能索引IDX的生成。
可以并行提供数个类似电路,以应用涵盖大多数用于以太网帧的配置的不同调度规则。为了进一步处理,可以将具有意外配置的帧路由至主处理器。
图5显示了调度器电路的实施例,其调度规则是可编程的,配置为限制用于存储帧报头的有用参数的寄存器组的大小。
物理层控制电路12执行到来帧的串行-并行转换,并生成例如64比特字。电路12还可以包括生成所述帧中当前字的位置POS的计数器。
寄存器组TgtPOS被配置为接收要提取的用于分析的帧位置,实际上此处是要提取的64比特字的位置。将提取的字存储在寄存器组xtVAL中,其包括用于组tgtPOS的各寄存器的64比特寄存器。
一组比较器24同时将电路12生成的当前位置POS与所有寄存器tgtPOS的内容比较。在相等的情况下,为写(WR)选择对应的寄存器xtVAL,以接收电路12生成的当前64比特字。
因此,寄存器tgtPOS被设计为标识包含要分析的用于实现调度规则参数的64比特字。因此,对于TCP/IPv4帧,寻找用于提取的在位置8、24、32和40的64比特字。
各寄存器xtVAL因此包含一系列字节,其中子集是有用的。例如,第一xtVAL寄存器包含8个字节,其间仅有字节B12和B13是有用的,假设包含ETH TYPE参数的那些。
为了从xtVAL寄存器提取有用的字节以将它们与期望值xpVAL相比较,可以提供寄存器组cmpMASK用于定义比较掩码。同样地,为了提取用于标识客户端-服务器会话的字节,并由此计算所述索引,可以提供寄存器组hashMASK用于定义索引计算掩码。
一对cmpMASK和hashMASK寄存器与各xtVAL寄存器关联。这些掩码寄存器各自编程以在xtVAL寄存器的有用字节的位置包含1,在其它位置包含0。接着可以由寄存器xtVAL和cmpMASK或hashMASK的内容之间的按位AND操作来执行掩码。
实际上,各cmpMASK和hashMASK寄存器可能具有用于对应的xtVAL寄存器的各字节的一个比特。接着,所述掩码寄存器的各比特可以是硬件连接的,以定义64比特掩码的对应字节的所有8个比特。换言之,所述掩码寄存器的比特k(k为范围从0至7的整数)定义了要与对应的xtVAL寄存器的比特比较的64比特掩码的比特8k至8k+7的值。
在TCP/IPv4帧的实例中,第一比较掩码的比特32至47对应于第一xtVAL寄存器中包含的字节B12和B13,处于1,而所有其它比特处于0。出于这一目的,第一cmpMASK寄存器的比特4和5设为1。
在第二哈希掩码中,比特0至7和16至63处于1。出于这一目的,第二hashMASK寄存器的比特0和2至7设为1。
在第三哈希掩码中,比特0至15和40至63处于1(第三hashMASK寄存器的比特0、1及5至7因此设为1)。最后,在第四哈希掩码中,比特0至7处于1,所有其它比特处于0(因此仅将第四hashMASK寄存器的比特0设为1)。
在16将xtVAL寄存器中包含的提取值按比特与寄存器组xpVAL的内容比较之前,通过比较掩码cmpMASK传递它们。xpVAL寄存器与各xtVAL寄存器关联,并包含对应的掩码的期望值。例如,第一xpVAL寄存器的比特32至47包含十六进制值0x0800,标识ETH TYPE参数中的IPv4协议的码,以及所有其它比特处于0。
如果相等,比较器16发出使能在电路18中计算索引IDX的MATCH(匹配)信号。电路18可以基于xtVAL寄存器的整体内容,执行索引计算,如hashMASK寄存器所掩码的。
如图4中,索引IDX为在FIFO22中等待的当前帧选择目的地内核。所述帧到对应内核的路由由受控于索引IDX的分离器20示出。实际上,可以在具有有限数目入口点的芯片上网络(NoC)中布置所述处理器内核。在此情况下,将包含定义目的地的报头的数据包内的数据从所述NoC中的任意入口点路由至所述内核。然后,所述路由操作可以包括基于NoC数据包中的索引值插入目的地。例如,所述目的地可以由所述索引IDX索引的间接表提供。
选择组xtVAL中的寄存器数目,以足以保存能够标识客户端-服务器会话的所有以太网帧报头参数。实际上,使用现有的协议,12个寄存器就够了。
在IPv4帧的实例中,仅使用一个xpVAL寄存器。这是因为一旦使用IPv4协议,用于标识会话的参数总是在同一位置中,不管使用的传输层(TCP、UDP或SCTP)。
其它帧类型可以包括在标识用于定义客户端-服务器会话的那些之前评估多个参数。例如,TRILL帧包括评估在不同位置(12,13,32,33)的两个ETH TYPE参数。
图6A更详细地示出了在TCP/IPv4帧的实例中,第一xtVAL寄存器的内容。阴影区域指示有用参数,还有在掩码寄存器cmpMASK(用于ETH TYPE参数)和掩码寄存器hashMASK(用于其它设置)中设为1的字节。显然,某些寄存器在任意位置包含多个参数,某些参数跨两个寄存器。这不会造成困难,因为这种参数布置是通过充分配置所述比较及索引计算掩码来无缝处理的。
还要注意,xtVAL寄存器的填充次序取决于写入tgtPOS寄存器的目标位置的次序。在所述实例中,按所述帧中参数的次序填充所述tgtPOS寄存器。能够使用不同的次序,这将改变用于所述参数的相同值的索引值。
图6B示出了xtVAL寄存器组的另一填充模式。使用这一填充模式,将各参数存储在相应xtVAL寄存器的起始。显示了TCP/IPv4帧的实例。以灰色显示的所述6个参数各存储在对应寄存器的起始。假定所述寄存器的大小能够涵盖数个参数,可以在所述寄存器的其它位置复制某些参数,如白色的参数所示的。掩码cmpMASK和hashMASK将被配置为仅考虑所述寄存器起始处的参数——阴影区域对应于所述掩码中设为1的位置。
图7部分显示了配置为实现图6B的xtVAL寄存器组的填充模式的示例性调度器电路。控制电路12以8比特字或字节生成帧。电路12生成的位置POS因而可以是所述帧中当前字节的位置。各xtVAL寄存器可以与状态机关联,比较器24一检测到当前位置POS与关联的tgtPOS寄存器的内容相等,所述状态机就导致存储到来的帧的8个连续字节。
图6B的填充模式在使用xtVAL寄存器的内容计算索引IDX之前,使能实现对它们的额外操作。尤其是,相同的计算资源处理客户端-服务器会话的两个方向,即客户端请求且服务器响应,这在计算资源方面是高效的。这两个方向的帧不同之处仅在于目的地及源地址反向、目的地及源端口反向(对于IPv4或IPv6帧)。对于两个方向都具有相同值的索引,从而确保将相同的计算资源分配给两个方向,在所述方向之一的帧中,可以交换所述地址及端口的源及目的地位置。
图7进一步显示了提供这一功能的电路。将一对运算符MIN、MAX分配给各对xtVAL寄存器。这些运算符被配置为对通过hsahMASK寄存器掩码的值运算。各MIN运算符生成两个关联的掩码值的最小值,各MAX运算符生成两个关联的掩码值的最大值。
由配置寄存器70中的比特使能每一对MIN、MAX运算符。当所述使能比特处于0时,对应的运算符MIN、MAX不活动,并传输不变的值。
利用这一配置,通过将目的地及源参数置于与同一对MIN、MAX运算符关联的寄存器,对于同一客户端-服务器会话的两个方向的帧,生成的索引都将相同。图7所示的值对应于TCP/IPv4帧的实例。使能第二、三对MIN、MAX运算符以处理IP地址及端口。
如果目的地/源参数对于xtVAL寄存器太大,例如不适于64bit寄存器(8字节)的16字节IPv6地址,可以给寄存器tgtPOS中的目标位置值排序,使得两部分目的地/源参数存储在具有相同奇偶校验的两个寄存器中,即对应于同一类型的运算符MIN、MAX。
如上所述的寄存器组tgtPOS、xtVAL、xpVAL、cmpMASK和hashMASK可能设计与单个帧范畴关联的调度规则。“帧范畴”指定根据能够使用同一客户端-服务器会话参数的不同协议的帧。例如,为TCP/IPv4帧设计的规则应用于所有IPv4协议,即TCP、UDP和SCTP。
图8示意性表示能够处理数种类型以太网帧的调度器电路。它包括寄存器组80的数个集合,其中各集合可以被编程为处理不同范畴的帧。这些集合的寄存器组可以并行操作,即各自从当前帧提取值,以在可应用的地方分析并生成相应索引(IDX0、IDX1...)。不同寄存器集合的索引可以被提供给多工器82,其选择索引IDX用于当前帧的目的地。
基于所述寄存器组的集合生成的相等信号MATCH,多工器82受控于优先权管理器84。一般来说,设计规则,使得一次仅满足一条规则。在此情况下,电路84选择所述寄存器组的集合生成触发MATCH信号的索引。
在某些情形下,可以创建由同一帧满足的两条不同规则,生成两个不同的索引。在此情况下,电路84可以被编程为同时满足这两条规则时按优先顺序把两者排好,因而在82选择具有最高优先级的规则生成的索引。
处理IP帧(IPv4或IPv6)时,利用迄今描述的规则,将ETH_TYPE参数与期望值xpVAL比较,并基于5个参数PROTOCOL、SRC_IP、DST_IP、SRC_PORT和DST_PORT创建索引。要注意这类规则{cmp(ETH_TYPE=IPv4,hash(PROTOCOL,SRC_IP,DST_IP,SRC_PORT,DST_PORT)}。
在某些情形下,可能想要根据帧的子范畴计算不同的索引,例如分配更多的计算资源给更常用的帧子范畴。因而,对于IP帧(IPv4或IPv6),可以创建以下三条并行规则:
1){cmp(ETH_TYPE=IPv4),hash(SRC_IP,DST_IP)},
2){cmp(ETH_TYPE=IPv4,PROTOCOL=UDP),hash(SRC_IP,DST_IP,SRC_PORT,DST_PORT)},
3){cmp(ETH_TYPE=IPv4,PROTOCOL=TCP),hash(SRC_IP,DST_IP,SRC_PORT,DST_PORT)}
利用这一规则集,任意UPD帧同时满足规则1和2,任意TCP帧同时满足规则1和3。然后,可以创建优先权以使用最高级规则,即根据规则2处理UDP帧,根据规则3处理TCP帧。规则1是用于处理除TCP或UDP之外的帧的“缺省”规则。
还能创建以下规则集:
1){cmp(ETH_TYPE=IPv4),hash(SRC_IP,DST_IP)},
2){cmp(ETH_TYPE=IPv4,PROTOCOL=UDP),hash(SRC_IP,DST_IP,SRC_PORT,DST_PORT)},
3){cmp(ETH_TYPE=IPv4,PROTOCOL=TCP),hash(SRC_IP,DST_IP,SRC_PORT,DST_PORT)},
4){cmp(ETH_TYPE=IPv4,PROTOCOL=TCP,SRC_PORT=80),hash(SRC_IP,DST_IP,SRC_PORT,DST_PORT)}
相较于之前的规则集,增加了规则4,其类似于规则3,但将原端口SRC_PORT与值80相比较,即用于HTTP协议的标准端口。
在此情况下,任意TCP/HTTP帧同时满足规则1、3和4。将根据具有最高等级的规则4处理所述帧。
实际上,以太网链路上的大多数流量能够通过提供寄存器组的5至8个集合处理。因而能够定义的可能规则的组合不会处理所有类型的帧。例外的或表示低流量的此类帧可以路由至缺省内核,或至所述主处理器。

Claims (6)

1.一种处理到达网络接口上的数据帧的方法,包括在所述网络接口中实现的以下步骤:
存储一组目标位置,所述位置是期望描述子帧的至少一个参数和描述客户端—服务器会话的参数的帧中的位置;
存储用于子帧参数的期望值;
接收当前帧;
启动帧位置计数器;
当由所述计数器指示的当前位置对应于子帧参数的目标位置时,比较接收的帧的当前值与所述期望值;
如果相等,根据在会话参数的目标位置接收的值计算索引;以及
将所述当前帧路由至与所述索引关联的处理资源。
2.权利要求1的所述方法,包括步骤:
以固定大小的字生成当前帧的数据;
当所述帧的当前字包括目标位置时,将所述字存储在提取值寄存器组的相应寄存器内;
配置所述提取值寄存器组上的索引掩码,以取消除了在所述会话参数的位置的值以外的所有值;以及
通过所述索引掩码计算所述提取值寄存器组上的索引。
3.权利要求2的所述方法,包括步骤:
在与所述提取值寄存器对应的期望值寄存器组中存储用于数个子帧参数的期望值;
配置所述提取值寄存器组上的比较掩码,以取消除了在所述子帧参数的位置的值以外的所有值;以及
通过所述比较掩码,将所述提取值寄存器组的内容与所述期望值寄存器组的内容相比较。
4.权利要求2的所述方法,包括步骤:
将所述目标位置存储在目标位置寄存器组的、分别与所述提取值寄存器关联的相应寄存器内;
同时将所有目标位置寄存器的内容与位置计数器相比较;以及
在所述位置计数和目标位置寄存器的内容对应的情况下,将所述帧的当前字存储在与所述目标位置寄存器关联的提取值寄存器中。
5.权利要求3的所述方法,包括步骤:
提供多条独立的调度规则,各规则使用目标位置、提取值寄存器组、索引掩码、比较掩码和期望值寄存体的集合;
设置所述调度规则之间的优先级;
对当前帧并行评估所述调度规则;以及
使用在同时满足的多条规则之间具有最高优先级的调度规则所生成的索引。
6.权利要求2的所述方法,包括步骤:
定义所述会话参数的目标位置,使得将在会话参数位置接收的每个值存储在不同的提取值寄存器内;以及
如果两个提取值寄存器被设计为分别包含源参数和目的地参数,则以相同顺序使用所述两个寄存器的内容的最大值和所述两个寄存器的内容的最小值,来计算所述索引。
CN201510973985.0A 2014-11-07 2015-11-06 用于在处理资源之间调度网络帧的方法 Active CN105763296B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1460773A FR3028372B1 (fr) 2014-11-07 2014-11-07 Procede de distribution de trames reseau vers des ressources de traitement
FR1460773 2014-11-07

Publications (2)

Publication Number Publication Date
CN105763296A CN105763296A (zh) 2016-07-13
CN105763296B true CN105763296B (zh) 2020-10-27

Family

ID=53039485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510973985.0A Active CN105763296B (zh) 2014-11-07 2015-11-06 用于在处理资源之间调度网络帧的方法

Country Status (4)

Country Link
US (1) US10484514B2 (zh)
EP (1) EP3018886B1 (zh)
CN (1) CN105763296B (zh)
FR (1) FR3028372B1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2884709Y (zh) * 2005-11-30 2007-03-28 中国科学院计算技术研究所 一种网络处理器上的差额权重排队调度部件
US7529245B1 (en) * 2005-04-04 2009-05-05 Sun Microsystems, Inc. Reorder mechanism for use in a relaxed order input/output system
CN101529813A (zh) * 2006-10-25 2009-09-09 汤姆逊许可公司 用于帧分类的方法和系统
CN103348637A (zh) * 2011-02-11 2013-10-09 高通股份有限公司 混合网络中的帧递送路径选择
CN103368853A (zh) * 2008-12-30 2013-10-23 英特尔公司 网络分组的simd处理

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US7254639B1 (en) * 2002-05-20 2007-08-07 Cisco Technology, Inc. Methods and apparatus for directing packets among a group of processors
US7502474B2 (en) * 2004-05-06 2009-03-10 Advanced Micro Devices, Inc. Network interface with security association data prefetch for high speed offloaded security processing
US7483996B2 (en) * 2004-11-29 2009-01-27 Cisco Technology, Inc. Techniques for migrating a point to point protocol to a protocol for an access network
US7627743B2 (en) * 2007-01-12 2009-12-01 Andes Technology Corporation Method and circuit implementation for multiple-word transfer into/from memory subsystems
JP4884402B2 (ja) * 2008-01-10 2012-02-29 アラクサラネットワークス株式会社 中継装置とその制御方法
US8243608B2 (en) * 2008-12-30 2012-08-14 Rockstar Bidco, LP Metro Ethernet connectivity fault management acceleration
US8014295B2 (en) * 2009-07-14 2011-09-06 Ixia Parallel packet processor with session active checker
US8629867B2 (en) * 2010-06-04 2014-01-14 International Business Machines Corporation Performing vector multiplication
US8312066B2 (en) * 2010-11-30 2012-11-13 Telefonaktiebolaget L M Ericsson (Publ) Hash collision resolution with key compression in a MAC forwarding data structure
US8625597B2 (en) * 2011-01-07 2014-01-07 Jeda Networks, Inc. Methods, systems and apparatus for the interconnection of fibre channel over ethernet devices
US8958294B2 (en) * 2012-08-09 2015-02-17 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Assigning identifiers to mobile devices according to their data service requirements
US10153972B2 (en) * 2015-02-13 2018-12-11 Nxp Usa, Inc. Method and apparatus for coding a user defined constant into a key composition rule using variable length command

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529245B1 (en) * 2005-04-04 2009-05-05 Sun Microsystems, Inc. Reorder mechanism for use in a relaxed order input/output system
CN2884709Y (zh) * 2005-11-30 2007-03-28 中国科学院计算技术研究所 一种网络处理器上的差额权重排队调度部件
CN101529813A (zh) * 2006-10-25 2009-09-09 汤姆逊许可公司 用于帧分类的方法和系统
CN103368853A (zh) * 2008-12-30 2013-10-23 英特尔公司 网络分组的simd处理
CN103348637A (zh) * 2011-02-11 2013-10-09 高通股份有限公司 混合网络中的帧递送路径选择

Also Published As

Publication number Publication date
US10484514B2 (en) 2019-11-19
FR3028372A1 (fr) 2016-05-13
FR3028372B1 (fr) 2018-01-12
CN105763296A (zh) 2016-07-13
EP3018886A1 (fr) 2016-05-11
US20160134725A1 (en) 2016-05-12
EP3018886B1 (fr) 2020-04-22

Similar Documents

Publication Publication Date Title
US10432527B1 (en) Packet header field extraction
US8867395B2 (en) Accelerating data packet parsing
US9826071B2 (en) Configuring a switch for extracting packet header fields
US9571405B2 (en) Metadata augmentation in a service function chain
US9397960B2 (en) Packet steering
EP2337274B1 (en) Method for processing a plurality of data and switching device for switching communication packets
US11425058B2 (en) Generation of descriptive data for packet fields
US11729300B2 (en) Generating programmatically defined fields of metadata for network packets
EP2768200B1 (en) Receiving data packets
WO2020172129A1 (en) Variable-length packet header vectors
EP2916516A1 (en) Packet processing method and apparatus
EP3718269B1 (en) Packet value based packet processing
US20150195387A1 (en) Methods and systems for flexible packet classification
US8365045B2 (en) Flow based data packet processing
CN106063228B (zh) 保持路由信息的方法及网络设备控制器
CN105282134A (zh) 从分组提取数据的方法及其装置
US9832072B1 (en) Self-configuring computer network router
CN105763296B (zh) 用于在处理资源之间调度网络帧的方法
EP3166273A1 (en) Method and apparatus for processing service node ability, service classifier and service controller
US20220182331A1 (en) Methods and systems for adaptive network quality of service for latency critical applications
USRE48131E1 (en) Metadata augmentation in a service function chain
CN109714259B (zh) 一种流量处理方法及装置

Legal Events

Date Code Title Description
C06 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