TWI551087B - Packet processing apparatus - Google Patents

Packet processing apparatus Download PDF

Info

Publication number
TWI551087B
TWI551087B TW103140094A TW103140094A TWI551087B TW I551087 B TWI551087 B TW I551087B TW 103140094 A TW103140094 A TW 103140094A TW 103140094 A TW103140094 A TW 103140094A TW I551087 B TWI551087 B TW I551087B
Authority
TW
Taiwan
Prior art keywords
packet processing
processing circuit
parameter
ingress
egress
Prior art date
Application number
TW103140094A
Other languages
Chinese (zh)
Other versions
TW201521390A (en
Inventor
呂國正
陳宜弘
楊昌隊
Original Assignee
聯發科技股份有限公司
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 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW201521390A publication Critical patent/TW201521390A/en
Application granted granted Critical
Publication of TWI551087B publication Critical patent/TWI551087B/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7452Multiple parallel or consecutive lookup operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]

Landscapes

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

Description

封包處理裝置 Packet processing device

本發明係有關於轉發封包(forwarding packets),更具體而言,有關於使用動作指令參數化(action command parameterization)的封包處理裝置。 The present invention relates to forwarding packets, and more particularly to packet processing devices that use action command parameterization.

網路交換器(network switch)通常係指連結不同電子裝置的電腦網路裝置。舉例而言,網路交換器可以接收從其所連接的一第一電子裝置所產生的一輸入封包,並可將自所接收到的封包導出的修正的封包僅發送給用於接收該接收到的封包的第二電子裝置。大體上,網路交換器包含入口封包(ingress packet)處理電路、出口封包(egress packet)處理電路和流量管理器(traffic manager),其中該流量管理器耦接於入口封包處理電路和出口封包處理電路之間。然而,傳統的流量管理器具有有限頻寬,且不能自入口封包處理電路至出口封包處理電路攜帶過多資訊(例如,動作指令)。此外,傳統的入口封包處理電路可產生並傳送用於一個封包修正(packet modification)的一個動作指令,其中該封包修正將應用於出口封包處理電路內之一封包。其結果為封包修正之不同組合將導致動作指令的不同組合。動作指令的複雜度可能很高,從而導致動作指令激增(explosion)問題。 A network switch usually refers to a computer network device that connects different electronic devices. For example, the network switch can receive an input packet generated from a first electronic device to which it is connected, and can send the modified packet derived from the received packet to only receive the received packet. The second electronic device of the packet. In general, the network switch includes an ingress packet processing circuit, an egress packet processing circuit, and a traffic manager, wherein the traffic manager is coupled to the ingress packet processing circuit and the egress packet processing. Between circuits. However, conventional traffic managers have limited bandwidth and cannot carry too much information (eg, motion instructions) from the ingress packet processing circuitry to the egress packet processing circuitry. In addition, conventional ingress packet processing circuitry can generate and transmit an action command for a packet modification that will be applied to a packet within the egress packet processing circuit. The result is that different combinations of packet corrections will result in different combinations of action instructions. The complexity of the motion instructions can be high, resulting in an issue of the motion instruction.

因此,存在對於創新的封包處理設計之需求,創新的封包處理設計可降低流量管理器之頻寬使用並避免動作指 令激增問題。 Therefore, there is a need for innovative packet processing design, and the innovative packet processing design can reduce the bandwidth usage of the traffic manager and avoid the action fingers. Let the problem increase.

有鑑於此,特提供以下技術方案: In view of this, the following technical solutions are provided:

本發明實施例提供一種封包處理裝置,包含入口封包處理電路、出口封包處理電路、流量管理器和處理器,入口封包處理電路處理自一入口埠接收之一入口封包,以產生至少一參數;出口封包處理電路包含至少一可程式化查詢表,其中出口封包處理電路參考至少一參數以決定至少一動作指令集以及執行至少一動作指令集以產生待通過一出口埠轉發之一出口封包;流量管理器耦接於入口封包處理電路和出口封包處理電路之間;處理器程式化至少一可程式化查詢表;其中至少一動作指令集中無動作指令被通過流量管理器自入口封包處理電路傳送至出口封包處理電路。 An embodiment of the present invention provides a packet processing apparatus, including an ingress packet processing circuit, an egress packet processing circuit, a traffic manager, and a processor. The ingress packet processing circuit processes one of the ingress packets from an ingress port to generate at least one parameter; The packet processing circuit includes at least one programmable lookup table, wherein the egress packet processing circuit refers to at least one parameter to determine at least one action instruction set and executes at least one action instruction set to generate an egress packet to be forwarded through an egress port; traffic management The processor is coupled between the ingress packet processing circuit and the egress packet processing circuit; the processor programs the at least one programmable query table; wherein the at least one action instruction set no action instruction is transmitted from the ingress packet processing circuit to the egress through the traffic manager Packet processing circuit.

本發明實施例另提供一種封包處理裝置,包含入口封包處理電路、出口封包處理電路、流量管理器和處理器,入口封包處理電路包含至少一可程式化查詢表,其中入口封包處理電路處理自一入口埠接收之一入口封包,以產生至少一參數;出口封包處理電路參考至少一參數以決定至少一動作指令集,以及執行至少一動作指令集以產生待通過一出口埠轉發之一出口封包;流量管理器耦接於入口封包處理電路和出口封包處理電路之間;處理器程式化至少一可程式化查詢表;其中至少一動作指令集中無動作指令被通過流量管理器自入口封包處理電路傳送至出口封包處理電路。 The embodiment of the present invention further provides a packet processing device, including an ingress packet processing circuit, an egress packet processing circuit, a traffic manager, and a processor. The ingress packet processing circuit includes at least one programmable query table, wherein the ingress packet processing circuit processes the The portal receives one of the ingress packets to generate at least one parameter; the egress packet processing circuit refers to the at least one parameter to determine the at least one action instruction set, and executes the at least one action instruction set to generate an egress packet to be forwarded through an egress port; The traffic manager is coupled between the ingress packet processing circuit and the egress packet processing circuit; the processor programs the at least one programmable query table; wherein the at least one action instruction set non-action command is transmitted by the traffic manager from the ingress packet processing circuit To the exit packet processing circuit.

本發明實施例另提供一種封包處理裝置,包含入口封包處理電路、出口封包處理電路和流量管理器,入口封包 處理電路處理自一入口埠接收之一入口封包,以產生至少一參數;出口封包處理電路參考至少一參數以設置至少一動作指令集,以及執行至少一動作指令集以產生待通過一出口埠轉發之一出口封包;流量管理器耦接於入口封包處理電路和出口封包處理電路之間;其中封包處理裝置係軟體定義網路交換器;且至少一動作指令集中無動作指令被通過流量管理器自入口封包處理電路傳送至出口封包處理電路。 An embodiment of the present invention further provides a packet processing apparatus, including an ingress packet processing circuit, an egress packet processing circuit, and a traffic manager, and an ingress packet Processing circuitry processes one of the ingress packets from an entry to generate at least one parameter; the egress packet processing circuit references at least one parameter to set at least one action instruction set, and executes at least one action instruction set to generate a to be forwarded through an egress One of the export packets; the traffic manager is coupled between the ingress packet processing circuit and the egress packet processing circuit; wherein the packet processing device is a software-defined network switch; and the at least one action instruction set non-action command is passed through the traffic manager. The ingress packet processing circuit is passed to the egress packet processing circuit.

利用本發明之封包處理裝置,動作指令激增問題可藉由使用本發明的動作指令參數化設計而被避免/減輕。 With the packet processing apparatus of the present invention, the motion command surge problem can be avoided/mitigated by using the motion command parametric design of the present invention.

100‧‧‧封包處理裝置 100‧‧‧Packing device

102‧‧‧入口封包處理電路 102‧‧‧Inlet packet processing circuit

104‧‧‧流量管理器 104‧‧‧Traffic Manager

106‧‧‧出口封包處理電路 106‧‧‧Export packet processing circuit

108‧‧‧處理器 108‧‧‧Processor

111‧‧‧第一查詢表 111‧‧‧First lookup table

112‧‧‧第二查詢表 112‧‧‧ second questionnaire

第1圖係依據本發明一實施例之一封包處理裝置之示意圖。 BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a schematic illustration of a packet processing apparatus in accordance with one embodiment of the present invention.

第2圖係依據本發明之一實施例基於一單一第一參數於出口封包處理電路決定第一動作指令集之示意圖,其中該單一第一參數包含於產生自入口封包處理電路之至少一參數內。 2 is a schematic diagram of determining a first action instruction set in an egress packet processing circuit based on a single first parameter according to an embodiment of the present invention, wherein the single first parameter is included in at least one parameter generated from an ingress packet processing circuit .

第3圖係依據本發明之一實施例基於兩個第二參數於出口封包處理電路決定第二動作指令集之示意圖,其中該兩個第二參數包含於產生自入口封包處理電路之至少一參數內。 3 is a schematic diagram of determining a second set of motion instructions in an egress packet processing circuit based on two second parameters, wherein the two second parameters are included in at least one parameter generated from an ingress packet processing circuit, in accordance with an embodiment of the present invention. Inside.

第4圖係依據本發明之一實施例基於兩個第三參數於出口封包處理電路決定第三動作指令集之示意圖,其中該兩個第三參數包含於產生自入口封包處理電路之至少一參數內。 4 is a schematic diagram of determining a third set of motion instructions based on two third parameters in an egress packet processing circuit according to an embodiment of the present invention, wherein the two third parameters are included in at least one parameter generated from an ingress packet processing circuit Inside.

第5圖為由動作指令集CMDSET_1、CMDSET_2和CMDSET_3所決定的動作指令之不同組合之示意圖。 Figure 5 is a schematic diagram of different combinations of motion commands determined by the motion instruction sets CMDSET_1, CMDSET_2, and CMDSET_3.

第6圖係依據本發明之一實施例基於產生自入口封包處理電路之單一參數於出口封包處理電路決定第一動作指令之示意圖。 Figure 6 is a schematic diagram of determining a first action command at an exit packet processing circuit based on a single parameter generated from an ingress packet processing circuit in accordance with an embodiment of the present invention.

第7圖為依據如第6圖中所示之動作指令參數化設計由不同出口埠號決定之動作指令之不同組合之示意圖。 Fig. 7 is a schematic diagram showing different combinations of action commands determined by different exit nicknames according to the action command as shown in Fig. 6.

第8圖係依據本發明之一實施例基於產生自入口封包處理電路之單一參數於出口封包處理電路決定之第二動作指令之示意圖。 Figure 8 is a schematic diagram of a second action command determined by an exit packet processing circuit based on a single parameter generated from an ingress packet processing circuit in accordance with one embodiment of the present invention.

第9圖為依據如第8圖中所示之動作指令參數化設計由不同出口埠號決定之動作指令之不同組合之示意圖。 Figure 9 is a schematic diagram showing the different combinations of action commands determined by different exit nicknames according to the action command as shown in Fig. 8.

在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的基準。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。另外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表第一裝置可直接電氣連接於第二裝置,或透過其他裝置或連接手段間接地電氣連接至第二裝置。 Certain terms are used throughout the description and following claims to refer to particular elements. It should be understood by those of ordinary skill in the art that manufacturers may refer to the same elements by different nouns. The scope of this specification and the subsequent patent application do not use the difference of the names as the means for distinguishing the elements, but the difference in function of the elements as the basis for the distinction. The term "including" as used throughout the specification and subsequent claims is an open term and should be interpreted as "including but not limited to". In addition, the term "coupled" is used herein to include any direct and indirect electrical connection. Therefore, if a first device is coupled to a second device, the first device can be directly electrically connected to the second device or indirectly electrically connected to the second device through other devices or connection means.

本發明之設想係將動作指令集轉換為參數化動作指令集(僅由代表動作指令集之參數組成),並通過流量管理器將參數化動作指令集由入口封包處理電路傳送至出口封包處理電路,即動作指令集中無動作指令被通過流量管理器自入口封包處理電路傳送至出口封包處理電路。因此,出口封包處理電路將經由多個參數化動作指令集攜帶之多個參數還原動作指令集,並隨後執行該些動作指令集用於出口封包之產生。由於動作指令集之運算元(operand)和運算子(operator)係參數化,與初始動作指令集相比,參數化動作指令集具有較小尺寸(亦即,較小位元計數(bit count))。因此,通過流量管理器傳送參數化動作指令集(亦即代表動作指令集之參數)之頻寬使用較低。 The idea of the invention is to convert the action instruction set into a parameterized action instruction set (only composed of parameters representing the action instruction set), and transmit the parameterized action instruction set from the ingress packet processing circuit to the exit packet processing circuit through the traffic manager. That is, the no-action instruction in the action instruction set is transmitted from the ingress packet processing circuit to the egress packet processing circuit by the traffic manager. Therefore, the egress packet processing circuit will restore the set of action instructions via a plurality of parameters carried by the plurality of parameterized action instruction sets, and then execute the set of action instructions for the generation of the egress packet. Since the operand and operator of the action instruction set are parameterized, the parameterized action instruction set has a smaller size (ie, a smaller bit count) than the initial action instruction set. ). Therefore, the bandwidth used by the traffic manager to transmit the parameterized action instruction set (ie, the parameter representing the action instruction set) is lower.

此外,由於將動作指令集轉換為參數,動作指令集中的每一動作指令可於出口封包處理電路被獨立決定。如此,可避免動作指令激增問題。本發明之封包處理架構之細節詳述如下。 Moreover, since the set of action instructions is converted to parameters, each action instruction in the set of action instructions can be independently determined at the exit packet processing circuit. In this way, the surge of motion commands can be avoided. The details of the packet processing architecture of the present invention are detailed below.

第1圖係依據本發明一實施例之一封包處理裝置之示意圖。於本實施例中,封包處理裝置100包含入口封包處理電路(例如,入口封包處理管道)102、流量管理器104、出口封包處理電路(例如,出口封包處理管道)106,以及處理器108。舉例而言,但並非本發明之限制,封包處理裝置100係軟體定義網路(software-defined networking,簡寫為SDN)交換器(switch)。因此,入口封包處理電路102和出口封包處理電路106之一或二者皆為可程式化。處理器108可執行軟體(例如,SDN交換器之韌體(firmware))以程式化(例如,設置或修正)至少一第一查詢表(look-up table)111和至少一第二查詢表112,其中至少一第一查詢表位於入口封包處理電路102內,至少一第二查詢表位於出口封包處理電路106內。然而,其僅用作說明之目的,並不能作為本發明之限制。 BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a schematic illustration of a packet processing apparatus in accordance with one embodiment of the present invention. In the present embodiment, the packet processing apparatus 100 includes an ingress packet processing circuit (eg, an ingress packet processing pipeline) 102, a traffic manager 104, an egress packet processing circuit (eg, an egress packet processing pipeline) 106, and a processor 108. For example, but not limiting of the present invention, the packet processing apparatus 100 is a software-defined networking (SDN) switch. Therefore, one or both of the ingress packet processing circuit 102 and the egress packet processing circuit 106 are programmable. The processor 108 can execute software (eg, firmware of the SDN switch) to program (eg, set or modify) at least one first look-up table 111 and at least one second look-up table 112. At least one first lookup table is located in the ingress packet processing circuit 102, and at least one second lookup table is located in the egress packet processing circuit 106. However, it is for illustrative purposes only and is not to be construed as limiting the invention.

通過流量管理器直接將特定指令自入口封包處理電路傳送至出口封包處理電路可能會很困難。為解決該問題,本發明提出參數化入口封包處理電路102處之指令,並隨後將參數化之指令(亦即代表指令之參數)通過流量管理器104自入口封包處理電路102傳送至出口封包處理電路106。 It may be difficult to directly transfer a particular instruction from the ingress packet processing circuit to the egress packet processing circuit through the traffic manager. To solve this problem, the present invention proposes an instruction at the parameterized ingress packet processing circuit 102, and then transmits the parameterized instruction (i.e., the parameter representing the instruction) from the ingress packet processing circuit 102 to the egress packet processing by the traffic manager 104. Circuit 106.

依照本發明的封包處理架構,封包處理裝置可具有具備可程式化查詢表之入口封包處理電路及/或具備可程式化查詢表之出口封包處理電路。如此,於入口封包處理電路產生參數之設計及/或於出口封包處理電路自參數還原動作指令之設計可被程式化以滿足不同應用需求。 According to the packet processing architecture of the present invention, the packet processing apparatus may have an entry packet processing circuit having a programmable lookup table and/or an export packet processing circuit having a programmable lookup table. Thus, the design of the parameters generated by the ingress packet processing circuit and/or the design of the self-parameter restoration action command in the egress packet processing circuit can be programmed to meet different application requirements.

由於封包處理裝置100配備有封包交換能力,封包處理裝置100因此具有多個外部埠,包括入口埠PIN_0-PIN_N和出口埠POUT_0-POUT_N,用於接收產生自外部源網路設備之入口封包以及將出口封包轉發至外部目標網路設備,其中N為可基於實際設計考量調整之正整數值。 Since the packet processing apparatus 100 is equipped with packet switching capability, the packet processing apparatus 100 thus has a plurality of external ports including an inlet port P IN_ 0-P IN_ N and an exit port OUT P OUT_ 0-P OUT_ N for receiving from an external source. The ingress packet of the network device and the forwarding of the egress packet to an external target network device, where N is a positive integer value that can be adjusted based on actual design considerations.

入口封包處理電路102處理接收自入口埠PIN_0-PIN_N之入口封包。出口封包處理電路106處理待通過出口埠POUT_0-POUT_N轉發之出口封包,其中出口封包可藉由對入口封包應用一個或多個封包修正而產生。舉例而言,入口封包處理電路102可執行封包標頭萃取和分類(例如,萃取入口封包之封包標頭並基於所萃取的封包標頭執行封包分類)。出口封包處理電路106可執行動作指令處理(例如,基於識別的封包標頭執行一個或多個動作指令)。 Inlet 102 processes the packet processing circuit receives the inlet port P IN_ 0-P IN_ N packets from the inlet. The egress packet processing circuit 106 processes the egress packets to be forwarded through the egress 埠P OUT_ 0-P OUT_ N, wherein the egress packet can be generated by applying one or more packet corrections to the ingress packet. For example, the ingress packet processing circuitry 102 can perform packet header extraction and classification (eg, extracting the packet header of the ingress packet and performing packet classification based on the extracted packet header). The exit packet processing circuit 106 can perform action instruction processing (eg, executing one or more action instructions based on the identified packet header).

此外,流量管理器104耦接於在前的入口封包處理電路102和隨後的出口封包處理電路106之間。流量管理器104可處理至少封包排隊和排程。此外,流量管理器104可更處理多重傳播(multicast)和相關封包複製。除典型的流量管理功能之外,本實施例之流量管理器104可更自入口封包處理電路102至出口封包處理電路106傳送至少一參數,其中該至少一參數代表至少一動作指令集(亦即,僅由參數組成之至少一參數化動作指令集)。更具體而言,入口封包處理電路102可更處理自入口埠接收之入口封包以產生至少一參數,其中該至少一參數可導出自入口封包之已識別的封包標頭。出口封包處理電路106可更參考至少一參數決定至少一動作指令集,並執行該至少一動作指令集以產生待通過出口埠轉發之出口封包。舉例而言,但並非本發明之限制,該至少一動作指令集可包含一個或多個用於修正入口封包之封包修正指令/指示(instruction)以產生出口封包。 In addition, the traffic manager 104 is coupled between the preceding ingress packet processing circuit 102 and the subsequent egress packet processing circuit 106. Traffic manager 104 can process at least packet queuing and scheduling. In addition, traffic manager 104 can handle multiple multicast and associated packet replication. In addition to the typical traffic management function, the traffic manager 104 of the present embodiment may further transmit at least one parameter from the ingress packet processing circuit 102 to the egress packet processing circuit 106, wherein the at least one parameter represents at least one action instruction set (ie, , at least one parameterized action instruction set consisting only of parameters). More specifically, the ingress packet processing circuit 102 can process the ingress packet received from the ingress port to generate at least one parameter, wherein the at least one parameter can be derived from the identified packet header of the ingress packet. The egress packet processing circuit 106 can further determine at least one action instruction set with reference to at least one parameter, and execute the at least one action instruction set to generate an egress packet to be forwarded through the egress port. For example, but not limiting of the invention, the at least one set of action instructions may include one or more packet correction instructions/instructions for modifying the ingress packet to generate an egress packet.

請注意,入口封包處理電路102所產生並傳送之至少一參數之大小小於出口封包處理電路106還原並執行之至少一動作指令集之大小。舉例而言,包含於至少一動作指令集之內之所有運算子和運算元被參數化。傳統網路交換器通過流量管理器將大尺寸動作指令集自入口封包處理電路傳送至出口封包處理電路,與傳統網路交換器設計相比,本發明之網路交換器設計通過流量管理器104將小尺寸參數自入口封包處理電路102傳送至出口封包處理電路106。換言之,本發明之網路交換器設計不通過流量管理器104將大尺寸動作指令集自入口封包處理電路102傳送至出口封包處理電路106, 從而節省了流量管理器104之頻寬使用。此外,流量管理器104之頻寬需求可被放鬆。 Please note that the size of at least one parameter generated and transmitted by the ingress packet processing circuit 102 is less than the size of at least one action instruction set that is restored and executed by the egress packet processing circuit 106. For example, all of the operators and operands contained within at least one set of action instructions are parameterized. The traditional network switch transmits the large-scale action instruction set from the ingress packet processing circuit to the egress packet processing circuit through the traffic manager. The network switch design of the present invention passes through the traffic manager 104 compared to the conventional network switch design. The small size parameters are transferred from the ingress packet processing circuit 102 to the egress packet processing circuit 106. In other words, the network switch design of the present invention does not pass the large size action instruction set from the ingress packet processing circuit 102 to the egress packet processing circuit 106 through the traffic manager 104. Thereby the bandwidth usage of the traffic manager 104 is saved. In addition, the bandwidth requirements of the traffic manager 104 can be relaxed.

如上所述,入口封包處理電路102配備有封包標頭萃取和分類能力。於一範例性設計中,入口封包處理電路102可識別入口封包之封包標頭,並隨後基於所識別的封包標頭查詢至少一第一查詢表111(可包含一個或多個可程式化表),以直接決定代表至少一動作指令集之至少一參數,其中該至少一動作指令集待被執行以對入口封包應用封包修正。於另一範例性設計中,入口封包處理電路102可識別入口封包之封包標頭,基於所識別的封包標頭查詢至少一第一查詢表111(可包含一個或多個可程式化表),以決定待執行以對入口封包應用封包修正之至少一動作指令集,並參數化該至少一動作指令集以產生代表該至少一動作指令集之至少一參數。簡言之,任一能夠將大尺寸動作指令集轉為用於傳輸之小尺寸參數之裝置可被入口封包處理電路102採用。 As noted above, the ingress packet processing circuit 102 is equipped with packet header extraction and classification capabilities. In an exemplary design, the ingress packet processing circuit 102 can identify a packet header of the ingress packet and then query the at least one first lookup table 111 (which can include one or more programmable tables) based on the identified packet header. Determining at least one parameter representing at least one action instruction set, wherein the at least one action instruction set is to be executed to apply a packet correction to the ingress packet. In another exemplary design, the ingress packet processing circuit 102 can identify a packet header of the ingress packet, and query the at least one first lookup table 111 (which can include one or more programmable tables) based on the identified packet header. Determining at least one action instruction set to be executed to apply a packet correction to the ingress packet, and parameterizing the at least one action instruction set to generate at least one parameter representing the at least one action instruction set. In short, any device capable of converting a large size action instruction set into a small size parameter for transmission can be employed by the ingress packet processing circuit 102.

此外,如上所述,出口封包處理電路106配備有動作指令執行能力。於一範例性設計中,出口封包處理電路106可接收通過流量管理器104自入口封包處理電路102傳送之至少一參數,並隨後基於所接收之至少一參數查詢至少一第二查詢表112(可包含一個或多個可程式化表),以決定該至少一動作指令集。隨後,出口封包處理電路106對入口封包執行用於封包修正之該至少一動作指令集以產生出口封包。 Further, as described above, the exit packet processing circuit 106 is equipped with an action instruction execution capability. In an exemplary design, the egress packet processing circuit 106 can receive at least one parameter transmitted by the traffic manager 104 from the ingress packet processing circuit 102, and then query the at least one second lookup table 112 based on the received at least one parameter. One or more programmable tables are included to determine the at least one action instruction set. Subsequently, the egress packet processing circuit 106 performs the at least one action instruction set for packet modification on the ingress packet to generate an egress packet.

舉例而言,但並非本發明之限制,上述參數可包含入口封包之埠號(port number),或出口封包之埠號,或虛擬區域網路(Virtual Local Area Network,簡寫為VLAN)標籤(或VLAN識別碼(identifier),簡寫為VID),或協定類型、通訊通道內之網路識別碼(例如,隧道標頭內之網路識別碼),或以上之組合。 For example, but not limited by the present invention, the above parameters may include a port number of an ingress packet, or an nickname of an egress packet, or a virtual local area network (VLAN) tag (or The VLAN identifier (abbreviated as VID), or the type of agreement, the network identifier in the communication channel (for example, the network identifier in the tunnel header), or a combination of the above.

於本實施例中,處理器108可適當程式化至少一第一查詢表111和至少一第二查詢表112,以使響應入口封包之已識別的封包標頭而產生之 至少一參數可被出口封包處理電路106辨識,並可由出口封包處理電路106使用以重建至少一動作指令集。 In this embodiment, the processor 108 can appropriately program the at least one first lookup table 111 and the at least one second lookup table 112 to generate the response packet header in response to the identified packet header. At least one parameter can be recognized by the egress packet processing circuit 106 and can be used by the egress packet processing circuit 106 to reconstruct at least one set of action instructions.

為更好理解本發明之技術特徵,以下將給出數個範例的動作指令參數化設計。 In order to better understand the technical features of the present invention, several exemplary motion instruction parametric designs will be given below.

請參考第2圖、第3圖和第4圖。第2圖係依據本發明之一實施例基於一單一第一參數於出口封包處理電路106決定第一動作指令集之示意圖,其中該單一第一參數包含於產生自入口封包處理電路102之至少一參數內。第3圖係依據本發明之一實施例基於兩個第二參數於出口封包處理電路106決定第二動作指令集之示意圖,其中該兩個第二參數包含於產生自入口封包處理電路102之至少一參數內。第4圖係依據本發明之一實施例基於兩個第三參數於出口封包處理電路106決定第三動作指令集之示意圖,其中該兩個第三參數包含於產生自入口封包處理電路102之至少一參數內。依據此範例性動作指令參數化設計,響應入口封包之已識別的封包標頭而產生的至少一參數包含多個參數,該多個參數用於於出口封包處理電路106控制多個不同動作指令集之執行。舉例而言,待應用於入口封包以產生出口封包之封包修正指示可分類為不同動作指令集,其中每一動作指令集可基於相關參數於出口封包處理電路106決定,其中相關參數由入口封包處理電路102通過流量管理器104產生並傳送。 Please refer to Figure 2, Figure 3 and Figure 4. 2 is a schematic diagram of determining a first set of action instructions in the egress packet processing circuit 106 based on a single first parameter, wherein the single first parameter is included in at least one generated from the ingress packet processing circuit 102, in accordance with an embodiment of the present invention. Within the parameters. 3 is a schematic diagram of determining a second set of motion instructions in the egress packet processing circuit 106 based on two second parameters, wherein the two second parameters are included in at least the auto-input packet processing circuit 102, in accordance with an embodiment of the present invention. Within one parameter. 4 is a schematic diagram of determining a third set of motion instructions in the egress packet processing circuit 106 based on two third parameters in accordance with an embodiment of the present invention, wherein the two third parameters are included in at least the auto-input packet processing circuit 102. Within one parameter. According to the parametric design of the exemplary action instruction, the at least one parameter generated in response to the identified packet header of the ingress packet includes a plurality of parameters for the egress packet processing circuit 106 to control the plurality of different action instruction sets. Execution. For example, the packet modification indication to be applied to the ingress packet to generate the egress packet can be classified into different action instruction sets, wherein each action instruction set can be determined in the egress packet processing circuit 106 based on the relevant parameters, wherein the relevant parameters are processed by the ingress packet Circuitry 102 is generated and transmitted by traffic manager 104.

如第2圖所示,第一動作指令集CMDSET_1控制包含於入口封包之封包標頭內之VLAN標籤(或VID)是否應被移除。第一動作指令集CMDSET_1之運算子可藉由Pop(“remove”)VLAN指示或NOP(不操作)指示設置,取決於由入口封包處理電路102所設置的第一參數is_pop_vlan的值。 As shown in FIG. 2, the first action instruction set CMDSET_1 controls whether the VLAN tag (or VID) included in the packet header of the ingress packet should be removed. The operator of the first action instruction set CMDSET_1 may be set by Pop ("remove") VLAN indication or NOP (no operation), depending on the value of the first parameter is_pop_vlan set by the ingress packet processing circuit 102.

舉例而言,當第一參數is_pop_vlan=1時,第一動作指令集CMDSET_1由Pop VLAN指示設置。因此,當第一動作指令集CMDSET_1被出口封包處理電路106執行以產生出口封包時,包含於入口封包之封包標頭中之VLAN標籤(或VID)被移除。當第一參數is_pop_vlan=0時,第一動作 指令集CMDSET_1由NOP指示設置。因此,當第一動作指令集CMDSET_1被出口封包處理電路106執行以產生出口封包時,包含於入口封包之封包標頭中之VLAN標籤(或VID)保持不變。 For example, when the first parameter is_pop_vlan=1, the first action instruction set CMDSET_1 is set by the Pop VLAN indication. Thus, when the first set of action instructions CMDSET_1 is executed by the egress packet processing circuit 106 to generate an egress packet, the VLAN tag (or VID) included in the packet header of the ingress packet is removed. When the first parameter is_pop_vlan=0, the first action The instruction set CMDSET_1 is set by the NOP indication. Thus, when the first set of action instructions CMDSET_1 is executed by the egress packet processing circuit 106 to generate an egress packet, the VLAN tag (or VID) contained in the packet header of the ingress packet remains unchanged.

如第3圖所示,第二動作指令集CMDSET_2控制VLAN標籤(或VID)在入口封包被轉發之前是否應被加入入口封包。當決定VLAN標籤(或VID)應當被加入時,第二動作指令集CMDSET_2更控制將VLAN標籤(或VID)加入至待被轉發之入口封包之操作。第二動作指令集CMDSET_2之運算子可藉由Push(“添加”)VLAN指示或NOP指示設置,取決於由入口封包處理電路102所設置的第二參數is_push_vlan的值。 As shown in FIG. 3, the second action instruction set CMDSET_2 controls whether the VLAN tag (or VID) should be added to the ingress packet before the ingress packet is forwarded. When it is determined that the VLAN tag (or VID) should be added, the second action instruction set CMDSET_2 further controls the operation of adding the VLAN tag (or VID) to the ingress packet to be forwarded. The operator of the second action instruction set CMDSET_2 may be set by Push ("Add") VLAN indication or NOP indication, depending on the value of the second parameter is_push_vlan set by the ingress packet processing circuit 102.

舉例而言,當第二參數is_push_vlan=1時,第二動作指令集CMDSET_2由Push VLAN指示設置。因此,當第二動作指令集CMDSET_2被出口封包處理電路106執行以產生出口封包時,額外的VLAN相關資訊被有意(intentionally)加入到待被轉發之入口封包,其中額外的VLAN相關資訊可係由Push VLAN指示使用之可變運算元,例如VLAN標籤(或VID),或可係由Push VLAN指示使用之常數運算元,例如標籤協議識別碼(tag protocol identifier,簡寫為TPID)、優先碼點(Priority Code Point,簡寫為PCP),或丟棄合格性指針(Drop Eligibility Indicator,簡寫為DEI)。關於可變運算元,其可基於另一第二參數vlan_idx藉由查詢VLAN ID表(可包含於至少一第二查詢表112內)被設定,其中另一第二參數vlan_idx由入口封包處理電路102設定。 For example, when the second parameter is_push_vlan=1, the second action instruction set CMDSET_2 is set by the Push VLAN indication. Therefore, when the second action instruction set CMDSET_2 is executed by the egress packet processing circuit 106 to generate an egress packet, additional VLAN related information is intentionally added to the ingress packet to be forwarded, wherein additional VLAN related information can be The Push VLAN indicates the variable operation element used, such as a VLAN tag (or VID), or a constant operation element that can be used by the Push VLAN indication, such as a tag protocol identifier (TPID) and a priority code point ( Priority Code Point (abbreviated as PCP), or Drop Eligibility Indicator (DEI). Regarding the variable operand, it may be set based on another second parameter vlan_idx by querying a VLAN ID table (which may be included in at least one second lookup table 112), wherein another second parameter vlan_idx is processed by the ingress packet processing circuit 102. set up.

關於第二參數is_push_vlan,其控制VLAN標籤(或VID)是否應被加入待被轉發之入口封包。關於另一第二參數vlan_idx,其控制將VLAN標籤(或VID)加入到待被轉發之入口封包中之操作。於本實施例中,待被加入至入口封包內之VLAN標籤(或VID)係可變運算元,而非常數運算元。因此,不同入口封包可具有不同VLAN標籤(或VID)加入其中。第二參數vlan_idx因而被用作自VLAN ID表中選擇VLAN標籤(或VID)。關於Push VLAN指 示之任一常數運算元,其為預定義常數。因此,當第二參數is_push_vlan=1時,預定義常數可被直接用作Push VLAN指示之一個運算元。 Regarding the second parameter is_push_vlan, it controls whether the VLAN tag (or VID) should be added to the ingress packet to be forwarded. Regarding another second parameter vlan_idx, it controls the operation of adding a VLAN tag (or VID) to the ingress packet to be forwarded. In this embodiment, the VLAN tag (or VID) to be added to the ingress packet is a variable operand, not a constant operand. Therefore, different ingress packets can have different VLAN tags (or VIDs) added to them. The second parameter vlan_idx is thus used to select a VLAN tag (or VID) from the VLAN ID table. About Push VLAN Any of the constant operands shown, which are predefined constants. Therefore, when the second parameter is_push_vlan=1, the predefined constant can be directly used as an operand of the Push VLAN indication.

然而,當第二參數is_push_vlan=0時,第二動作指令集CMDSET_2由NOP指示設置,而不使用任一運算元。因此,當出口封包處理電路106執行第二動作指令集CMDSET_2以產生出口封包時,無額外的VLAN相關資訊被有意加入到待被轉發之入口封包。 However, when the second parameter is_push_vlan=0, the second action instruction set CMDSET_2 is set by the NOP indication without using any of the operands. Therefore, when the egress packet processing circuit 106 executes the second action instruction set CMDSET_2 to generate an egress packet, no additional VLAN related information is intentionally added to the ingress packet to be forwarded.

如第4圖所示,第三動作指令集CMDSET_3控制自源網路設備產生之入口封包是否應被路由(routed)到至少一目標網路設備。當決定入口封包應被路由時,第三動作指令集CMDSET_3更控制封包指引操作。第三動作指令集CMDSET_3包含多個運算子。第三動作指令集CMDSET_3之第一運算子(圖中標示為運算子1)可藉由一設置目標位址(Set Destination Address,簡寫為Set DA)指示或NOP指示設置,取決於由入口封包處理電路102設置之第三參數is_route之值。 As shown in FIG. 4, the third action instruction set CMDSET_3 controls whether the ingress packet generated from the source network device should be routed to at least one target network device. When it is determined that the ingress packet should be routed, the third action instruction set CMDSET_3 further controls the packet steering operation. The third action instruction set CMDSET_3 contains a plurality of operators. The first operator of the third action instruction set CMDSET_3 (labeled as operator 1 in the figure) can be set by a set destination address (Set Destination Address, abbreviated as Set DA) or a NOP indication, depending on the processing by the ingress packet. The value of the third parameter is_route set by circuit 102.

舉例而言,當第三參數is_route=1時,第三動作指令集CMDSET_3之第一運算子由Set DA指示設置。因此,當第三動作指令集CMDSET_3被出口封包處理電路106執行以產生出口封包時,待被轉發之入口封包之封包標頭內之目標位址被修正,其中由Set DA指示設置之目標位址可係第一可變運算元(圖中標示為可變運算元1),其中第一可變運算元基於由入口封包處理電路102所設置之另一第三參數adj_idx藉由查詢DA表(可包含至少一個第二查詢表112)決定。當第三參數is_route=0時,第三動作指令集CMDSET_3之第一運算子由NOP指示設置。因此,當第三動作指令集CMDSET_3被出口封包處理電路106執行以產生出口封包時,待被轉發之入口封包之封包標頭內之目標位址未被修正。 For example, when the third parameter is_route=1, the first operator of the third action instruction set CMDSET_3 is set by the Set DA indication. Therefore, when the third action instruction set CMDSET_3 is executed by the egress packet processing circuit 106 to generate an egress packet, the target address in the packet header of the ingress packet to be forwarded is corrected, wherein the set target address is indicated by Set DA The first variable operation element (labeled as variable operation element 1 in the figure), wherein the first variable operation element is based on another third parameter adj_idx set by the entry packet processing circuit 102 by querying the DA table (may be Contains at least one second lookup table 112) decision. When the third parameter is_route=0, the first operator of the third action instruction set CMDSET_3 is set by the NOP indication. Therefore, when the third action instruction set CMDSET_3 is executed by the egress packet processing circuit 106 to generate an egress packet, the target address in the packet header of the ingress packet to be forwarded is not corrected.

第三動作指令集CMDSET_3之第二運算子(圖中標示為運算子2)可由設置源位址(Set Source Address,簡寫為Set SA)指示或NOP指示設置,取決於上述相同第三參數is_route之值。舉例而言,當第三參數is_route=1 時,第三動作指令集CMDSET_3之第二運算子由Set SA指示設置。因此,當第三動作指令集CMDSET_3被出口封包處理電路106執行以產生出口封包時,待轉發之入口封包之封包標頭內之源位址被修正,其中由Set SA指示設置之源位址可係第二可變運算元(圖中標示為可變運算元2),其中第二可變運算元基於上述第三參數adj_idx藉由查詢SA表(可包含至少一個第二查詢表112)決定。當第三參數is_route=0時,第三動作指令集CMDSET_3之第二運算子由NOP指示設置。因此,當第三動作指令集CMDSET_3被出口封包處理電路106執行以產生出口封包時,待轉發之入口封包之封包標頭內之源位址未被修正。 The second operator of the third action instruction set CMDSET_3 (labeled as operator 2 in the figure) may be set by a set source address (Set Source Address, abbreviated as Set SA) or a NOP indication, depending on the same third parameter is_route described above. value. For example, when the third parameter is_route=1 At the time, the second operator of the third action instruction set CMDSET_3 is set by the Set SA indication. Therefore, when the third action instruction set CMDSET_3 is executed by the egress packet processing circuit 106 to generate an egress packet, the source address in the packet header of the ingress packet to be forwarded is corrected, wherein the set source address is indicated by Set SA. A second variable operand (labeled as variable operand 2 in the figure), wherein the second variable operand is determined based on the third parameter adj_idx by querying the SA table (which may include at least one second lookup table 112). When the third parameter is_route=0, the second operator of the third action instruction set CMDSET_3 is set by the NOP indication. Therefore, when the third action instruction set CMDSET_3 is executed by the egress packet processing circuit 106 to generate an egress packet, the source address in the packet header of the ingress packet to be forwarded is not corrected.

第三動作指令集CMDSET_3之第三運算子(圖中標示為運算子3)可由存活時間(time to live,簡寫為TTL--)指示或NOP指示設置,取決於上述相同第三參數is_route之值。舉例而言,當第三參數is_route=1時,第三動作指令集CMDSET_3之第三運算子由TTL--指示設置。因此,當第三動作指令集CMDSET_3被出口封包處理電路106執行以產生出口封包時,TTL--值減一。當第三參數is_route=0時,第三動作指令集CMDSET_3之第三運算子由NOP指示設置。因此,當第三動作指令集CMDSET_3被出口封包處理電路106執行以產生出口封包時,TTL--值保持不變。 The third operator of the third action instruction set CMDSET_3 (labeled as operator 3 in the figure) may be set by a time to live (TTL--) indication or a NOP indication, depending on the value of the same third parameter is_route described above. . For example, when the third parameter is_route=1, the third operator of the third action instruction set CMDSET_3 is set by the TTL-- indication. Therefore, when the third action instruction set CMDSET_3 is executed by the exit packet processing circuit 106 to generate an exit packet, the TTL-value is decremented by one. When the third parameter is_route=0, the third operator of the third action instruction set CMDSET_3 is set by the NOP indication. Therefore, when the third action instruction set CMDSET_3 is executed by the exit packet processing circuit 106 to generate an exit packet, the TTL-value remains unchanged.

基於與動作指令集CMDSET_1、CMDSET_2和CMDSET_3關聯之參數,出口封包處理電路106決定並執行參與產生出口封包至出口埠之動作指令。換言之,參數之不同設置將導致不同動作指令被出口封包處理電路106執行。請參考第5圖,其為由動作指令集CMDSET_1、CMDSET_2和CMDSET_3所決定的動作指令之不同組合之示意圖。因此,基於入口封包之已識別的封包標頭,入口封包處理電路102適當設置該些參數,包含is_pop_vlan、is_push_vlan、vlan_idx、is_route和adj_idx。如此,依據通過流量管理器104自入口封包處理電路102傳輸之參數,用於出口封包產生之動作指令之期望組合於出口封包處理電路106被決定。如第5圖所示,五個參 數可以決定至少十二個封包流(圖中標示為流1~流12),其中每一封包流具有不同動作指令集合。 Based on the parameters associated with the set of action instructions CMDSET_1, CMDSET_2, and CMDSET_3, the exit packet processing circuit 106 determines and executes the action instructions that participate in generating the exit packet to the exit port. In other words, different settings of the parameters will cause different action instructions to be executed by the exit packet processing circuit 106. Please refer to FIG. 5, which is a schematic diagram of different combinations of action commands determined by the action instruction sets CMDSET_1, CMDSET_2, and CMDSET_3. Therefore, based on the identified packet header of the ingress packet, the ingress packet processing circuit 102 appropriately sets the parameters, including is_pop_vlan, is_push_vlan, vlan_idx, is_route, and adj_idx. Thus, depending on the parameters transmitted by the traffic manager 104 from the ingress packet processing circuit 102, the desired combination of action instructions for the egress packet generation is determined by the egress packet processing circuit 106. As shown in Figure 5, five parameters The number can determine at least twelve packet streams (labeled as stream 1 through stream 12), each of which has a different set of action instructions.

與通過流量管理器自入口封包處理電路傳輸十二個動作指令集合至出口封包處理電路之傳統設計相比,本發明僅傳輸用於每一動作指令集合之五個參數,其中參數is_pop_vlan決定第一指令,參數is_push_vlan和vlan_idx決定第二指令、第三指令和第四指令,而參數is_route和adj_idx決定第五指令。因此,動作指令激增問題可藉由使用本發明的動作指令參數化設計而被避免/減輕。如第5圖所示,第一指令為Pop VLAN指示,第二指令為Set DA指示(在不同的封包流中分別被標示為Set DA 11、Set DA 12和Set DA 22),第三指令為Set SA指示(在不同的封包流中分別被標示為Set SA 1和Set SA 2),第四指令為TTL--指示;第五指令為Push VLAN指示(在不同的封包流中分別被標示為Push VLAN 1~Push VLAN 6)。 Compared to the conventional design of transmitting twelve sets of action instructions from the ingress packet processing circuit to the egress packet processing circuit by the traffic manager, the present invention transmits only five parameters for each set of action instructions, wherein the parameter is_pop_vlan determines the first The instructions, parameters is_push_vlan and vlan_idx determine the second instruction, the third instruction and the fourth instruction, while the parameters is_route and adj_idx determine the fifth instruction. Therefore, the motion command surge problem can be avoided/mitigated by using the motion command parametric design of the present invention. As shown in FIG. 5, the first instruction is a Pop VLAN indication, and the second instruction is a Set DA indication (labeled as Set DA 11, Set DA 12, and Set DA 22 in different packet streams, respectively), and the third instruction is Set SA indicates (set to Set SA 1 and Set SA 2 in different packet flows, respectively, the fourth command is TTL--indication; the fifth command is Push VLAN indication (marked as different in different packet flows) Push VLAN 1~Push VLAN 6).

舉例而言,考慮以下狀況:第一動作指令可由M個動作指令之一設置,其中M個動作指令之每一者具有第一動作指令之一個指令設置(each having one command setting of the first action command),第二動作指令可由N個動作指令之一設置,其中N個動作指令之每一者具有第二動作指令之一個指令設置,則第一動作指令和第二動作指令可能有(MxN)種組合。當接收一個入口封包時,傳統設計通過流量管理器自入口封包處理電路向出口封包處理電路傳送第一動作指令和第二動作指令之(MxN)種組合之一。作為結果,傳統設計需要記錄第一動作指令和第二動作指令之(MxN)種組合,並隨後自第一動作指令和第二動作指令之(MxN)種組合中選擇一個指令組合,從而導致動作指令激增問題。 For example, consider the following situation: the first action instruction may be set by one of the M action instructions, wherein each of the M action instructions has one command setting of the first action command The second action instruction may be set by one of the N action commands, wherein each of the N action commands has one of the second action instructions, and the first action command and the second action command may have (MxN) combination. When receiving an ingress packet, the conventional design transmits one of the first action command and the second action command (MxN) combination from the ingress packet processing circuit to the egress packet processing circuit through the traffic manager. As a result, the conventional design needs to record a combination of the first action instruction and the second action instruction (MxN), and then select one combination of instructions from the (MxN) combination of the first action instruction and the second action instruction, thereby causing an action The command surges.

根據本發明的動作指令參數化設計,第一動作指令可被參數化為一個或多個第一參數,第二動作指令可被參數化為一個或多個第二參數,且一個或多個第一參數及一個或多個第二參數通過流量管理器104自入口封包處理電路102被傳送至出口封包處理電路106。出口封包處理電路106可參 考一個或多個第一參數識別第一動作指令以選擇M個動作指令之一,其中M個動作指令之每一者具有第一動作指令之一個指令設置,且M個動作指令之每一者記錄於第二查詢表112中,並可參考一個或多個第二參數識別第二動作指令以選擇N個動作指令之一,其中N個動作指令之每一者具有第二動作指令之一個指令設置,且N個動作指令之每一者記錄於第二查詢表112中。換言之,出口封包處理電路106記錄(M+N)個動作指令,並使用(M+N)個動作指令重建第一動作指令和第二動作指令之(MxN)種組合之任一者。因此,藉由使用本發明的動作指令參數化設計,自(MxN)個指令集中決定一個指令集可被轉移為自(M+N)個指令集中決定一個指令集,從而避免動作指令激增問題。 According to the motion instruction parametric design of the present invention, the first action instruction can be parameterized into one or more first parameters, and the second action instruction can be parameterized into one or more second parameters, and one or more A parameter and one or more second parameters are transmitted from the ingress packet processing circuit 102 to the egress packet processing circuit 106 by the traffic manager 104. The exit packet processing circuit 106 can participate Testing the one or more first parameters to identify the first action instruction to select one of the M action instructions, wherein each of the M action instructions has an instruction set of the first action instruction, and each of the M action instructions Recorded in the second lookup table 112, and can identify the second action instruction with reference to one or more second parameters to select one of the N action instructions, wherein each of the N action instructions has one of the second action instructions Set, and each of the N action commands is recorded in the second lookup table 112. In other words, the exit packet processing circuit 106 records (M+N) motion commands and reconstructs (MxN) combinations of the first motion command and the second motion command using (M+N) motion commands. Therefore, by using the action instruction parametric design of the present invention, it is determined from (MxN) instruction sets that an instruction set can be transferred to determine an instruction set from (M+N) instruction sets, thereby avoiding the surge of action instructions.

第6圖係依據本發明之一實施例基於產生自入口封包處理電路102之單一參數於出口封包處理電路106決定第一動作指令之示意圖。依據本範例的動作指令參數化設計,響應入口封包之已識別的封包標頭而產生之至少一參數僅包含單一參數,用於於出口封包處理電路106控制多個不同動作指令之執行。舉例而言,待應用於入口封包以產生出口封包之封包修正指示可只基於自入口封包處理電路102產生並通過流量管理器104傳送之單一參數,於出口封包處理電路106決定。於一範例性設計中,單一參數可係出口埠之埠號。然而,其並非為本發明之限制。可選的,單一參數可係入口埠之埠號,或單一參數可藉由出口封包處理電路106可辨識之控制值設置,用於指示期望動作指令集之選擇。 Figure 6 is a schematic diagram of determining a first action command at the egress packet processing circuit 106 based on a single parameter generated from the ingress packet processing circuit 102, in accordance with an embodiment of the present invention. According to the action instruction parametric design of the present example, at least one parameter generated in response to the identified packet header of the ingress packet contains only a single parameter for the egress packet processing circuit 106 to control the execution of a plurality of different action instructions. For example, the packet correction indication to be applied to the ingress packet to generate the egress packet may be determined at the egress packet processing circuit 106 based only on a single parameter generated from the ingress packet processing circuit 102 and transmitted by the traffic manager 104. In an exemplary design, a single parameter can be the nickname of the exit. However, it is not a limitation of the invention. Alternatively, a single parameter may be an nickname of the port, or a single parameter may be set by a control value identifiable by the egress packet processing circuit 106 for indicating the selection of the desired set of action instructions.

考慮以下狀況:單一參數係出口埠之埠號,其中自入口封包導出之出口封包自出口埠輸出。如第6圖所示,兩表LUT1和LUT2可包含於至少一第二查詢表112中。出口封包處理電路106首先基於單一參數(例如出口埠號k,圖中標示為0~N)通過查詢表LUT1決定動作指令集之選定類型(圖中標示為類型)以及動作指令集之選定類型之運算子使用之可变運算元(圖中分別標示為data_s和data_c),並隨後基於動作指令集之選定類型藉由查詢另一 表LUT2決定一個或多個動作指令。於本範例性實施例中,可變運算元可係服務VID(service VID,簡寫為SVID)或客戶VID(customer VID,簡寫為CVID)。在表LUT1中,對應於出口埠的可變運算元具有與埠號相同的編號,若出口埠沒有可變運算元,則對應的可變運算元(data_s或data_c)為0。例如,出口埠0對應的data_s為SVID0,data_c為0;出口埠1對應的data_s為SVID1,data_c為CVID1;出口埠2對應的data_s為SVID2,data_c為0;出口埠3對應的data_s為0,data_c為0...出口埠N對應的data_s為SVIDn,data_c為CVIDn。在表LUT1中,類型指示對應的出口埠具有幾個對應的可變運算元。例如,出口埠0和出口埠2具有一個可變運算元,類型為1;出口埠1和出口埠N具有兩個可變運算元,類型為2;出口埠3沒有可變運算元,類型為0等。表LUT2存在cmd 0~cmd 2,分別指示Set SA、Push data_s和Push data_c是否存在。此外,表LUT2存在四類動作指令集(圖中標示為類型),其中類型為0之動作指令集包含一個Set SA指示和三個NOP指示;類型為1之動作指令集包含一個Set SA指示,一個Push SVID指示和兩個NOP指示;類型為2之動作指令集包含一個Set SA指示、一個Push SVID指示、一個Push CVID指示和一個NOP指示;而類型為3之動作指令集包含四個NOP指示。舉例而言,當k=N時,Set SA指示、具有相應可變運算元組SVIDn之Push SVID指示、具有相應可變運算元組CVIDn之Push CVID指示以及NOP指示被執行以產生出口封包至出口埠POUT_N。 Consider the following situation: A single parameter is the nickname of the exit port, where the exit packet derived from the ingress packet is output from the exit port. As shown in FIG. 6, the two tables LUT1 and LUT2 may be included in at least one second lookup table 112. The exit packet processing circuit 106 first determines the selected type of the action instruction set (labeled as type) and the selected type of the action instruction set by the lookup table LUT1 based on a single parameter (eg, exit nickname k, labeled 0 to N in the figure). The variable operands used by the operator (labeled as data_s and data_c, respectively), and then one or more action instructions are determined by querying another table LUT2 based on the selected type of action instruction set. In the present exemplary embodiment, the variable operand may be a service VID (service VID, abbreviated as SVID) or a customer VID (customer VID (abbreviated as CVID). In the table LUT1, the variable operand corresponding to the exit 具有 has the same number as the apostrophe, and if the exit 埠 has no variable operand, the corresponding variable operand (data_s or data_c) is 0. For example, the data_s corresponding to the exit 埠0 is SVID0, the data_c is 0; the data_s corresponding to the exit 埠1 is SVID1, the data_c is CVID1; the data_s corresponding to the exit 埠2 is SVID2, the data_c is 0; the data_s corresponding to the exit 埠3 is 0, Data_c is 0... The data_s corresponding to the exit 埠N is SVIDn, and the data_c is CVIDn. In table LUT1, the type indicates that the corresponding exit 埠 has several corresponding variable operands. For example, the exit 埠0 and the exit 埠2 have a variable operand of type 1; the exit 埠1 and the exit 埠N have two variable operands of type 2; the exit 埠3 has no variable operand, and the type is 0 and so on. Table LUT2 has cmd 0~cmd 2, indicating whether Set SA, Push data_s, and Push data_c exist respectively. In addition, there are four types of action instruction sets (labeled as types) in the table LUT2, wherein the action instruction set of type 0 contains a Set SA indication and three NOP indications; the action instruction set of type 1 contains a Set SA indication. A Push SVID indication and two NOP indications; an action instruction set of type 2 includes a Set SA indication, a Push SVID indication, a Push CVID indication, and a NOP indication; and an action instruction set of type 3 contains four NOP indications . For example, when k=N, Set SA indicates, a Push SVID indication with a corresponding variable operation tuple SVID n , a Push CVID indication with a corresponding variable operation tuple CVID n , and a NOP indication are executed to generate an exit packet. To the exit 埠P OUT _N.

基於與動作指令集相關之單一參數,參與產生出口封包至出口埠之動作指令被出口封包處理電路106決定並被隨後執行,其中出口埠具有由該單一參數指定之埠號。換言之,單一參數之不同設置將導致不同動作指令被出口封包處理電路106執行。請參考第7圖,其為依據如第6圖中所示之動作指令參數化設計由不同出口埠號決定之動作指令之不同組合之示意圖。第7圖中連結於網路交換器(圖中標示為交換器)的出口埠分別標示為POUT_0~POUT_N。根據第6圖所示之動作指令參數化設計,出口埠POUT_0決 定動作指令之組合為Set SA指示、Push SVID 0指示;出口埠POUT_1決定動作指令之組合為Set SA指示、Push SVID 1指示和Push CVID 1指示;出口埠POUT_2決定動作指令之組合為Set SA指示、Push SVID 2指示;出口埠POUT_3決定動作指令之組合為Set SA指示;...出口埠POUT_N決定動作指令之組合為Set SA指示、Push SVID n指示和Push CVID n指示。因此,基於入口封包之已識別之封包標頭,入口封包處理電路102知悉自入口封包導出之出口封包應被輸出之出口埠,並藉由該出口埠號適當設置該單一參數。如此,依據通過流量管理器104傳送之該單一參數,用於入口封包之動作指令之期望組合於出口封包處理電路106處被決定。如第6圖和第7圖所示,四類動作指令集可被用於為不同出口埠決定(N+1)個封包流。因此,動作指令激增問題可藉由使用本發明的動作指令參數化設計而被避免/減輕。 Based on a single parameter associated with the set of action instructions, the action instructions participating in generating the exit packet to the exit port are determined by the exit packet processing circuit 106 and subsequently executed, wherein the exit port has an apostrophe specified by the single parameter. In other words, different settings of a single parameter will cause different action instructions to be executed by the exit packet processing circuit 106. Please refer to FIG. 7 , which is a schematic diagram of different combinations of action commands determined by different exit nicknames according to the action instructions as shown in FIG. 6 . The exit ports connected to the network switch (labeled as switches in Figure 7) are labeled P OUT _0~P OUT _N, respectively. According to the parameterized design of the action command shown in Fig. 6, the exit 埠P OUT _0 determines the combination of the action command as the Set SA indication and the Push SVID 0 indication; the exit 埠 P OUT _1 determines the combination of the action command as the Set SA indication, Push SVID 1 indication and Push CVID 1 indication; exit 埠 P OUT _2 determines the combination of action instructions as Set SA indication, Push SVID 2 indication; exit 埠 P OUT _3 determines the combination of action instructions as Set SA indication; ... exit 埠 P OUT The combination of _N decision action instructions is a Set SA indication, a Push SVID n indication, and a Push CVID n indication. Therefore, based on the identified packet header of the ingress packet, the ingress packet processing circuit 102 knows the egress port from which the egress packet derived from the ingress packet should be output, and sets the single parameter appropriately by the egress apostrophe. Thus, depending on the single parameter transmitted by the traffic manager 104, the desired combination of action instructions for the ingress packet is determined at the egress packet processing circuit 106. As shown in Figures 6 and 7, four sets of action instruction sets can be used to determine (N + 1) packet streams for different exits. Therefore, the motion command surge problem can be avoided/mitigated by using the motion command parametric design of the present invention.

如上所述,兩表LUT1和LUT2可被包含於至少一第二查詢表112中。因此,表LUT1和表LUT2之每一者可被處理器108程式化以滿足不同應用需求。舉例而言,可增加新動作指令,及/或移除已存在之動作指令。 As described above, the two tables LUT1 and LUT2 can be included in at least one second lookup table 112. Thus, each of table LUT1 and table LUT2 can be programmed by processor 108 to meet different application needs. For example, new action instructions can be added, and/or existing action instructions can be removed.

第8圖係依據本發明之一實施例基於產生自入口封包處理電路102之單一參數於出口封包處理電路106決定之第二動作指令之示意圖。依據本範例的動作指令參數化設計,響應入口封包之已識別的封包標頭而產生之至少一參數僅包含單一參數,用於於出口封包處理電路106控制多個不同動作指令之執行。第6圖和第8圖之實施例之主要不同係第8圖中之表LUT2被程式化以包含用於動作指令集之類型0-2之Push網路服務標頭(Push network service header,簡寫為Push NSH)指示(圖中標示為cmd 3)。更具體而言,如第8圖所示,類型為0之動作指令集包含一個Set SA指示、兩個NOP指示和一個Push NSH指示;類型為1之動作指令集包含一個Set SA指示,一個Push SVID指示、一個NOP指示和一個Push NSH指示;類型為2之動作指令集包含一個Set SA指示、一個Push SVID指示、一個Push CVID指示和一個Push NSH指示。於本實施例中,類型為3之動作指令集仍保持四個 NOP指示。為簡潔起見,不再詳述第8圖之細節。 8 is a schematic diagram of a second action command determined by the egress packet processing circuit 106 based on a single parameter generated from the ingress packet processing circuit 102, in accordance with an embodiment of the present invention. According to the action instruction parametric design of the present example, at least one parameter generated in response to the identified packet header of the ingress packet contains only a single parameter for the egress packet processing circuit 106 to control the execution of a plurality of different action instructions. The main difference between the embodiments of Figures 6 and 8 is that the table LUT2 in Figure 8 is programmed to include the Push network service header (Push network service header) for type 0-2 of the action instruction set. Indicated for Push NSH) (marked as cmd 3 in the figure). More specifically, as shown in FIG. 8, the action instruction set of type 0 includes a Set SA indication, two NOP indications, and a Push NSH indication; the action instruction set of type 1 includes a Set SA indication, a Push. The SVID indication, a NOP indication, and a Push NSH indication; the action instruction set of type 2 includes a Set SA indication, a Push SVID indication, a Push CVID indication, and a Push NSH indication. In this embodiment, the action instruction set of type 3 remains four. NOP indication. For the sake of brevity, the details of Figure 8 will not be detailed.

如上所述,基於與動作指令集相關之單一參數,參與產生出口封包至出口埠之動作指令被出口封包處理電路106決定並被隨後執行,其中出口埠具有由該單一參數指定之埠號。因此,單一參數之不同設置將導致不同動作指令被出口封包處理電路106執行。請參考第9圖,其為依據如第8圖中所示之動作指令參數化設計由不同出口埠號決定之動作指令之不同組合之示意圖。因此,基於入口封包之已識別之封包標頭,入口封包處理電路102知悉自入口封包導出之出口封包應被輸出之出口埠,並藉由該出口埠號適當設置該單一參數。如此,依據通過流量管理器104傳送之該單一參數,用於入口封包之動作指令之期望組合於出口封包處理電路106處被決定。第9圖和第7圖之實施例之主要不同係第9圖中各出口埠決定之動作指令之組合更包含Push NSH指示。此外,如第8圖和第9圖所示,四類動作指令集可被用於為不同出口埠決定(N+1)個封包流。因此,動作指令激增問題可藉由使用本發明的動作指令參數化設計而被避免/減輕。 As described above, based on a single parameter associated with the set of action instructions, the action instructions participating in generating the exit packet to the exit port are determined by the exit packet processing circuit 106 and subsequently executed, wherein the exit port has an apostrophe specified by the single parameter. Thus, different settings of a single parameter will result in different action instructions being executed by the exit packet processing circuit 106. Please refer to FIG. 9 , which is a schematic diagram of different combinations of action instructions determined by different exit nicknames according to the action instructions as shown in FIG. 8 . Therefore, based on the identified packet header of the ingress packet, the ingress packet processing circuit 102 knows the egress port from which the egress packet derived from the ingress packet should be output, and sets the single parameter appropriately by the egress apostrophe. Thus, depending on the single parameter transmitted by the traffic manager 104, the desired combination of action instructions for the ingress packet is determined at the egress packet processing circuit 106. The main difference between the embodiments of Figures 9 and 7 is that the combination of the action instructions determined by each of the exits in Fig. 9 further includes a Push NSH indication. Furthermore, as shown in Figures 8 and 9, four sets of action instruction sets can be used to determine (N + 1) packet streams for different exits. Therefore, the motion command surge problem can be avoided/mitigated by using the motion command parametric design of the present invention.

以上所述僅為本發明之較佳實施例,舉凡熟悉本案之人士援依本發明之精神所做之等效變化與修飾,皆應涵蓋於後附之申請專利範圍內。 The above are only the preferred embodiments of the present invention, and equivalent changes and modifications made by those skilled in the art to the spirit of the present invention are intended to be included in the scope of the appended claims.

100‧‧‧封包處理裝置 100‧‧‧Packing device

102‧‧‧入口封包處理電路 102‧‧‧Inlet packet processing circuit

104‧‧‧流量管理器 104‧‧‧Traffic Manager

106‧‧‧出口封包處理電路 106‧‧‧Export packet processing circuit

108‧‧‧處理器 108‧‧‧Processor

111‧‧‧第一查詢表 111‧‧‧First lookup table

112‧‧‧第二查詢表 112‧‧‧ second questionnaire

Claims (20)

一種封包處理裝置,包含:一入口封包處理電路,處理自一入口埠接收之一入口封包,以產生至少一參數;一出口封包處理電路,包含至少一可程式化查詢表,其中該出口封包處理電路參考該至少一參數以決定至少一動作指令集,以及執行該至少一動作指令集以產生待通過一出口埠轉發之一出口封包;一流量管理器,耦接於該入口封包處理電路和該出口封包處理電路之間,將該至少一參數自該入口封包處理電路傳送至該出口封包處理電路;以及一處理器,程式化該至少一可程式化查詢表;其中該至少一動作指令集中無動作指令通過該流量管理器自該入口封包處理電路傳送至該出口封包處理電路。 A packet processing apparatus includes: an ingress packet processing circuit that processes an ingress packet from an ingress to generate at least one parameter; and an egress packet processing circuit that includes at least one programmable query table, wherein the egress packet processing The circuit refers to the at least one parameter to determine at least one action instruction set, and executes the at least one action instruction set to generate an exit packet to be forwarded through an exit port; a traffic manager coupled to the ingress packet processing circuit and the Between the egress packet processing circuits, the at least one parameter is transmitted from the ingress packet processing circuit to the egress packet processing circuit; and a processor to program the at least one programmable query table; wherein the at least one action instruction set is absent The action command is transmitted from the ingress packet processing circuit to the egress packet processing circuit by the traffic manager. 如申請專利範圍第1項所述之封包處理裝置,其中自該入口封包處理電路傳送之該至少一參數之一大小小於該出口封包處理電路執行之該至少一動作指令集之一大小。 The packet processing device of claim 1, wherein one of the at least one parameter transmitted from the ingress packet processing circuit is smaller than a size of the at least one action instruction set executed by the egress packet processing circuit. 如申請專利範圍第1項所述之封包處理裝置,其中該至少一參數包含用於控制多個不同動作指令集之執行之多個參數。 The packet processing device of claim 1, wherein the at least one parameter comprises a plurality of parameters for controlling execution of the plurality of different sets of action instructions. 如申請專利範圍第1項所述之封包處理裝置,其中該至少一參數僅包含單一參數,且該單一參數用於控制多個不同動作指令之執行。 The packet processing device of claim 1, wherein the at least one parameter includes only a single parameter, and the single parameter is used to control execution of a plurality of different action instructions. 如申請專利範圍第1項所述之封包處理裝置,其中該至少一參數包含該出口埠和該入口埠之至少一者之一埠號。 The packet processing device of claim 1, wherein the at least one parameter comprises an apostrophe of at least one of the exit port and the port port. 如申請專利範圍第1項所述之封包處理裝置,其中該至少一參數包含一虛擬區域網路標籤、一協定類型和一通訊通道內之一網路識別碼之至少一者。 The packet processing device of claim 1, wherein the at least one parameter comprises at least one of a virtual area network tag, a protocol type, and a network identification code in a communication channel. 如申請專利範圍第1項所述之封包處理裝置,其中該出口封包處理電路通過查詢該至少一可程式化查詢表決定該至少一動作指令集。 The packet processing device of claim 1, wherein the egress packet processing circuit determines the at least one action instruction set by querying the at least one programmable query table. 一種封包處理裝置,包含:一入口封包處理電路,包含至少一可程式化查詢表,其中該入口封包處理電路處理自一入口埠接收之一入口封包,以產生至少一參數;一出口封包處理電路,參考該至少一參數以決定至少一動作指令集,以及執行該至少一動作指令集以產生待通過一出口埠轉發之一出口封包;一流量管理器,耦接於該入口封包處理電路和該出口封包處理電路之間,將該至少一參數自該入口封包處理電路傳送至該出口封包處理電路;以及一處理器,程式化該至少一可程式化查詢表;其中該至少一動作指令集中無動作指令通過該流量管理器自該入口封包處理電路傳送至該出口封包處理電路。 A packet processing apparatus includes: an ingress packet processing circuit, including at least one programmable lookup table, wherein the ingress packet processing circuit processes one of the ingress packets from an ingress port to generate at least one parameter; and an egress packet processing circuit Referring to the at least one parameter to determine at least one action instruction set, and executing the at least one action instruction set to generate an exit packet to be forwarded through an exit port; a traffic manager coupled to the ingress packet processing circuit and the Between the egress packet processing circuits, the at least one parameter is transmitted from the ingress packet processing circuit to the egress packet processing circuit; and a processor to program the at least one programmable query table; wherein the at least one action instruction set is absent The action command is transmitted from the ingress packet processing circuit to the egress packet processing circuit by the traffic manager. 如申請專利範圍第8項所述之封包處理裝置,其中自該入口封包處理電路傳送之該至少一參數之一大小小於該出口封包處理電路執行之至少一動作指令集之一大小。 The packet processing device of claim 8, wherein one of the at least one parameter transmitted from the ingress packet processing circuit is smaller than a size of one of the at least one action instruction set executed by the egress packet processing circuit. 如申請專利範圍第8項所述之封包處理裝置,其中該至少一參數包含用於控制多個不同動作指令集之執行之多個參數。 The packet processing device of claim 8, wherein the at least one parameter comprises a plurality of parameters for controlling execution of the plurality of different sets of action instructions. 如申請專利範圍第8項所述之封包處理裝置,其中該至少 一參數僅包含單一參數,且該單一參數用於控制多個不同動作指令之執行。 The packet processing device of claim 8, wherein the at least A parameter contains only a single parameter, and this single parameter is used to control the execution of multiple different action instructions. 如申請專利範圍第8項所述之封包處理裝置,其中該至少一參數包含該出口埠和該入口埠之至少一者之一埠號。 The packet processing device of claim 8, wherein the at least one parameter comprises an apostrophe of at least one of the exit port and the port port. 如申請專利範圍第8項所述之封包處理裝置,其中該至少一參數包含一虛擬區域網路標籤、一協定類型和一通訊通道內之一網路識別碼之至少一者。 The packet processing device of claim 8, wherein the at least one parameter comprises at least one of a virtual area network tag, a protocol type, and a network identification code in a communication channel. 如申請專利範圍第8項所述之封包處理裝置,其中該入口封包處理電路通過查詢該至少一可程式化查詢表決定該至少一參數。 The packet processing device of claim 8, wherein the ingress packet processing circuit determines the at least one parameter by querying the at least one programmable lookup table. 一種封包處理裝置,包含:一入口封包處理電路,處理自一入口埠接收之一入口封包,以產生至少一參數;一出口封包處理電路,參考該至少一參數以設置至少一動作指令集,以及執行該至少一動作指令集以產生待通過一出口埠轉發之一出口封包;以及一流量管理器,耦接於該入口封包處理電路和該出口封包處理電路之間,將該至少一參數自該入口封包處理電路傳送至該出口封包處理電路;其中該封包處理裝置係軟體定義網路交換器;且該至少一動作指令集中無動作指令通過該流量管理器自該入口封包處理電路傳送至該出口封包處理電路。 A packet processing apparatus includes: an ingress packet processing circuit that processes an ingress packet from an ingress port to generate at least one parameter; an egress packet processing circuit that refers to the at least one parameter to set at least one action instruction set, and Executing the at least one action instruction set to generate an egress packet to be forwarded through an egress port; and a traffic manager coupled between the ingress packet processing circuit and the egress packet processing circuit, the at least one parameter is from the The ingress packet processing circuit is coupled to the egress packet processing circuit; wherein the packet processing device is a software-defined network switch; and the at least one action command set non-action command is transmitted from the ingress packet processing circuit to the egress through the traffic manager Packet processing circuit. 如申請專利範圍第15項所述之封包處理裝置,其中自該入口封包處理電路傳送之該至少一參數之一大小小於該出口封包處理電路執行之至少一動作指令集之一大小。 The packet processing device of claim 15, wherein one of the at least one parameter transmitted from the ingress packet processing circuit is smaller than a size of one of the at least one action instruction set executed by the egress packet processing circuit. 如申請專利範圍第15項所述之封包處理裝置,其中該至少 一參數包含用於控制多個不同動作指令集之執行之多個參數。 The packet processing device of claim 15, wherein the at least A parameter includes a plurality of parameters for controlling the execution of a plurality of different sets of action instructions. 如申請專利範圍第15項所述之封包處理裝置,其中該至少一參數僅包含單一參數,且該單一參數用於控制多個不同動作指令之執行。 The packet processing apparatus of claim 15, wherein the at least one parameter includes only a single parameter, and the single parameter is used to control execution of a plurality of different action instructions. 如申請專利範圍第15項所述之封包處理裝置,其中該至少一參數包含該出口埠和該入口埠之至少一者之一埠號。 The packet processing apparatus of claim 15, wherein the at least one parameter comprises an apostrophe of at least one of the exit port and the port port. 如申請專利範圍第15項所述之封包處理裝置,其中該至少一參數包含一虛擬區域網路標籤、一協定類型和一通訊通道內之一網路識別碼之至少一者。 The packet processing device of claim 15, wherein the at least one parameter comprises at least one of a virtual area network tag, a protocol type, and a network identification code in a communication channel.
TW103140094A 2013-11-21 2014-11-19 Packet processing apparatus TWI551087B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361907378P 2013-11-21 2013-11-21
US14/469,607 US20150139235A1 (en) 2013-11-21 2014-08-27 Packet processing apparatus using action command parameterization

Publications (2)

Publication Number Publication Date
TW201521390A TW201521390A (en) 2015-06-01
TWI551087B true TWI551087B (en) 2016-09-21

Family

ID=53173263

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103140094A TWI551087B (en) 2013-11-21 2014-11-19 Packet processing apparatus

Country Status (3)

Country Link
US (1) US20150139235A1 (en)
CN (1) CN104660520B (en)
TW (1) TWI551087B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI743860B (en) * 2020-06-30 2021-10-21 瑞昱半導體股份有限公司 Communication device and network management method

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10230810B1 (en) 2016-03-18 2019-03-12 Barefoot Networks, Inc. Storing packet data in mirror buffer
US10735331B1 (en) 2016-12-09 2020-08-04 Barefoot Networks, Inc. Buffer space availability for different packet classes
US10708189B1 (en) 2016-12-09 2020-07-07 Barefoot Networks, Inc. Priority-based flow control
US10848429B1 (en) * 2017-03-21 2020-11-24 Barefoot Networks, Inc. Queue scheduler control via packet data
US10949199B1 (en) 2017-09-14 2021-03-16 Barefoot Networks, Inc. Copying packet data to mirror buffer
US10608939B1 (en) 2018-02-13 2020-03-31 Barefoot Networks, Inc. Identifying congestion in a network
US11159455B1 (en) * 2018-12-28 2021-10-26 Innovium, Inc. Reducing power consumption in an electronic device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110022732A1 (en) * 2006-12-22 2011-01-27 Marvell International Ltd. Method for flexible modifications to a packet

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000003516A1 (en) * 1998-07-08 2000-01-20 Broadcom Corporation Network switching architecture with multiple table synchronization, and forwarding of both ip and ipx packets
US6665495B1 (en) * 2000-10-27 2003-12-16 Yotta Networks, Inc. Non-blocking, scalable optical router architecture and method for routing optical traffic
US6996102B2 (en) * 2000-12-21 2006-02-07 Nortel Networks Limited Method and apparatus for routing data traffic across a multicast-capable fabric
US7289429B2 (en) * 2001-06-01 2007-10-30 Fujitsu Network Communications, Inc. System and method to perform non-service effecting bandwidth reservation using a reservation signaling protocol
US20030202510A1 (en) * 2002-04-26 2003-10-30 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US8161270B1 (en) * 2004-03-30 2012-04-17 Extreme Networks, Inc. Packet data modification processor
US7738385B2 (en) * 2004-11-30 2010-06-15 Broadcom Corporation Mirroring of data in a network device
US8014390B2 (en) * 2004-11-30 2011-09-06 Broadcom Corporation Policy based routing using a fast filter processor
US20070005248A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Data reconstruction in link-based interconnects
US8611352B2 (en) * 2010-04-20 2013-12-17 Marvell World Trade Ltd. System and method for adapting a packet processing pipeline
US8817625B1 (en) * 2013-09-13 2014-08-26 Telefonaktiebolaget L M Ericsson (Publ) Service placement for inline services chaining with multiple instances

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110022732A1 (en) * 2006-12-22 2011-01-27 Marvell International Ltd. Method for flexible modifications to a packet

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI743860B (en) * 2020-06-30 2021-10-21 瑞昱半導體股份有限公司 Communication device and network management method

Also Published As

Publication number Publication date
CN104660520B (en) 2018-03-13
TW201521390A (en) 2015-06-01
CN104660520A (en) 2015-05-27
US20150139235A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
TWI551087B (en) Packet processing apparatus
US10200235B2 (en) Distributed database structure for logical and physical network data
EP3662644B1 (en) Service operation chaining methods and computer programs
US20200334069A1 (en) Learning of tunnel endpoint selections
KR101703088B1 (en) Aggregated routing method based on sdn and system thereof
US10158563B2 (en) Flow based overlay network
US8750106B2 (en) Interface control system and interface control method
US8201168B2 (en) Virtual input-output connections for machine virtualization
CN114342336A (en) Performing slice-based operations in a data plane circuit
JP4883160B2 (en) Communication apparatus and frame transmission method
WO2018149338A1 (en) Sdn-based remote stream mirroring control method, implementation method, and related device
CN106919242A (en) Server system and its management method and computer-readable storage multimedia
EP3378201B1 (en) Load balancing over multiple tunnel endpoints
EP3065350B1 (en) Link discovery method, system and device
EP3300301A1 (en) Service fault location method and device
KR20180058592A (en) Software Defined Network Controller
Jeuk et al. Tenant-id: Tagging tenant assets in cloud environments
KR101629089B1 (en) Hybrid openFlow method for combining legacy switch protocol function and SDN function
CN106961412B (en) Message conversion method, device and system
WO2015184703A1 (en) Metadata processing method, switch, controller and storage medium
CN106936720B (en) A kind of SDN switch operation method, controller and interchanger
KR101867881B1 (en) Method, apparatus and computer program for service function chaining
CA3064541C (en) Virtual network monitoring system, virtual network monitoring apparatus, virtual network monitoring method, and non-transitory computer-readable recording medium
EP3701686B1 (en) Optimized datapath troubleshooting
US20210176149A1 (en) Virtual network monitoring system, virtual network monitoring apparatus, virtual network monitoring method, and non-transitory computer-readable recording medium

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees