WO2015030503A1 - Packet output controlling method and network device using same - Google Patents

Packet output controlling method and network device using same Download PDF

Info

Publication number
WO2015030503A1
WO2015030503A1 PCT/KR2014/008030 KR2014008030W WO2015030503A1 WO 2015030503 A1 WO2015030503 A1 WO 2015030503A1 KR 2014008030 W KR2014008030 W KR 2014008030W WO 2015030503 A1 WO2015030503 A1 WO 2015030503A1
Authority
WO
WIPO (PCT)
Prior art keywords
output
flow
packet
processing
output port
Prior art date
Application number
PCT/KR2014/008030
Other languages
French (fr)
Korean (ko)
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
Priority claimed from KR1020130162390A external-priority patent/KR101569588B1/en
Application filed by 주식회사 케이티 filed Critical 주식회사 케이티
Priority to CN201480047512.1A priority Critical patent/CN105493029B/en
Priority to US14/914,696 priority patent/US10103987B2/en
Publication of WO2015030503A1 publication Critical patent/WO2015030503A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements

Definitions

  • the present invention relates to a Software Defined Networking (SDN) technology, and more particularly, to a pipeline processing technology of a flow table for processing packet forwarding in a network device. It relates to a method and a network device using the same.
  • SDN Software Defined Networking
  • SDN Software defined network refers to a user-oriented network in which a user has control authority regardless of basic network equipment such as a router or a switch, and a separate software controller controls traffic flow.
  • OpenFlow is one of the standard standards for SDN technology. It defines the interface between hardware (switch) and controller (network OS) and controls the control of how data packets are delivered through the network. Protocol to separate data from physical network and interact with data plane.
  • the flow table is composed of a plurality of tables, which are connected to each other by pipelines to provide flexible parallel processing, providing efficiency and flexibility to OpenFlow switches.
  • each table When packets are processed through the pipeline, the action fields formed in each table are stored in an action list in the form of a list, consisting of an action set at the end of the pipeline. In this case, messages are delivered by providing metadata between each table.
  • match fields and action sets are updated by flow-specific instructions.
  • Actions for each flow can be executed immediately by directives or can be accumulated in a set of actions, which are last executed after passing through all flow tables.
  • the output port command executed in the pipeline processing is an action of finally forwarding a packet. Once the output port command is executed, no other command can be executed for the flow. In other words, there is no way to connect to other actions by using output port information.
  • the group table is used for multicasting a plurality of ports and the like, and is terminated by finally forwarding a packet through an output port command action. That is, there is no way to link to other actions by using the execution result of the group table.
  • An object of the present invention for solving the above problems is to provide a flow processing method that can control the flow based on the output port.
  • Another object of the present invention for solving the above problems is to provide a network apparatus for performing a flow processing method to control the flow based on the output port.
  • the present invention provides a flow processing method in a plurality of flow tables (N; N is a natural number of two or more) connected by a pipeline, wherein packets flowed in the flow table are selected from among the plurality of tables. Passing through table N-1 to table N-1, and after the packet passes through the N-1 th table, an output-only N th table indicated by the N-1 th table for the packet. performing a processing of a table) and outputting the packet after processing of the N-th table.
  • N is a natural number of two or more
  • the flow processing method may be performed in a network device that supports software defined networking.
  • an output port of a corresponding flow is indicated, and an operation to be processed in the N-th table may be determined by the indicated output port.
  • the processing of the output-only N-th table may include attaching a virtual local area network (VLAN) tag to a packet of a flow to be output to the indicated output port.
  • VLAN virtual local area network
  • the processing of the output-only N-th table may include counting for the flow to be output to the indicated output port, and if the counting for the flow is equal to or exceeds a predetermined threshold, the change of the output port is Can be performed.
  • the processing of the output-only N-th table compares the packet size of the flow to be output to the indicated output port with a predetermined threshold value, and if the packet size is equal to or exceeds the predetermined threshold value, It may be configured to perform fragmentation.
  • a packet input unit for receiving a packet of flows from the outside, a flow table storage unit for storing a plurality of flow tables (N; N is a natural number of two or more), and input from the packet input unit.
  • N is a natural number of two or more
  • the output-only N-th table indicated by the N-th table after passing through the N-th table from the first table among the plurality of tables stored in the flow table storage unit ( Provided is a network device including a flow table processing unit for performing an operation of an egress table and a packet output unit for outputting packets of the flow to the outside after the processing of the output-only N-th table by the flow table processing unit.
  • the network device may be a network device supporting software defined networking.
  • an output port of the corresponding packet is indicated, and an operation to be processed in the N-th table may be determined by the indicated output port.
  • the processing of the output-only N-th table may include attaching a Virtual Local Area Network (VLAN) tag to a packet to be output to the indicated output port.
  • VLAN Virtual Local Area Network
  • the processing of the output-only N-th table may include counting for the flow to be output to the indicated output port, and if the counting for the flow is equal to or exceeds a predetermined threshold, the change of the output port is Can be performed.
  • the processing of the output-only N-th table compares the packet size of the flow to be output to the indicated output port with a predetermined threshold value, and if the packet size is equal to or exceeds the predetermined threshold value, It may be configured to perform fragmentation.
  • an output port determined using an output table dedicated to output Can be performed in the processing of the pipeline using the flow table. Therefore, the final output can be flexibly controlled through various operations using the output port information.
  • 1 and 2 are conceptual diagrams for explaining a processing method of a pipelined flow table.
  • FIG. 3 is a conceptual diagram illustrating a flow processing method according to the present invention.
  • FIG. 4 is a conceptual diagram illustrating an embodiment of tagging a VLAN ID using a flow processing method according to the present invention.
  • FIG. 5 is another conceptual diagram for explaining an embodiment of tagging a VLAN ID using the flow processing method according to the present invention.
  • FIG. 6 is a conceptual diagram illustrating an embodiment of an output port change through flow counting using the flow processing method according to the present invention.
  • FIG. 7 is a conceptual diagram illustrating an embodiment of packet fragmentation using a flow processing method according to the present invention.
  • FIG. 8 is a conceptual diagram illustrating a field configuration of an output table according to the present invention.
  • FIG. 9 is a conceptual diagram illustrating a match field structure of an output table.
  • FIG. 10 illustrates an example of using a match field using a wild card in an output table according to the present invention.
  • FIG. 11 illustrates an example of using a match field for size comparison in an output table according to the present invention.
  • FIG. 12 illustrates an example of using a match field for flow counting in an output table according to the present invention.
  • FIG. 13 is a block diagram for explaining an embodiment of a network apparatus for performing a flow processing method according to the present invention.
  • first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • the method of processing a flow table in a pipelined manner in a network device includes a method of immediately executing an operation by a flow-specific instruction of each table while passing through each table constituting the flow table, and using a flow-specific directive as an operation set. There is a way to accumulate and execute the accumulated action set after passing through all the flow tables.
  • 1 and 2 are conceptual diagrams for explaining a processing method of a pipelined flow table.
  • FIG. 1 illustrates an output action 102 for a specific flow in the last nth table 101-n of a flow table composed of n tables 101-1, ..., 101-n. The case where the group output action 103 is executed is illustrated.
  • FIG. 2 illustrates instructions accumulated in the operation set 104 after passing through the last n th table 101-n of a flow table composed of n tables 101-1,..., 101-n. The case where the output operation 105 or the group output operation 106 is performed is illustrated. Even within an operation set, the output operation or group output operation is executed last in priority.
  • an output port is specified by an output operation or a group output operation, the packet is forwarded to the designated output port.
  • an output port is specified, no other commands can be executed for that flow. In other words, there is no way to connect to other actions by using output port information.
  • the flow processing method in order to solve the above-mentioned problem, in the flow processing method in the flow table consisting of a plurality of tables (n; n is a natural number of two or more) connected by a pipeline, the last table An egress table is introduced as (nth table).
  • FIG. 3 is a conceptual diagram illustrating a flow processing method according to the present invention.
  • the switch according to the present invention includes n-1 flow tables 301-1, 301-2,... And an output table 302 all connected by pipelines.
  • the packet flowing into the switch passes from the first table 301-1 to the (n-1) th table 301- (n-1), and then processes the accumulated operation set 302, and then operates.
  • the group output 303 or output operation 304 is executed last, and then via an egress table 305 before the final output.
  • the output table may be reached by immediately executing the output operation or the group output operation as described above with reference to FIG. 1 without going through the operation set.
  • the packet is finally output.
  • VLAN ID tagging embodiment is first described as the most representative embodiment using an output-only table.
  • FIG. 4 is a conceptual diagram illustrating an embodiment of tagging a VLAN ID using a flow processing method according to the present invention, and is an example of a method of processing an output table after an output operation of a flow table.
  • the packet entering the switch 400 passes through the first flow table 410 and the second flow table 420, and finds a corresponding flow in a match field of each table to perform a corresponding action. Done.
  • the switch after performing an output port action in the second flow table 420, the switch does not exit and passes through the output table 430.
  • a corresponding 'push VLAN' operation is additionally performed according to the output port indicated in the second flow table, and then the packet is output. That is, 'Push VLAN1' operation is performed in the output table for packets designated to output port1, and 'Push VLAN2' operation is performed in the output table for packets designated to output port2. do.
  • FIG. 5 is another conceptual diagram illustrating an embodiment of tagging a VLAN ID using a flow processing method according to the present invention, and is an example of a method of processing an output table after a group output operation of a group table.
  • the packet entering the switch 500 passes through the first flow table 510 and the second flow table 520, and finds a corresponding flow in a match field of each table to perform a corresponding action.
  • the second flow table 520 After performing a plurality of output port operations (ie, multicasting) defined in the group table 530 by the group command, the second flow table 520 passes through the output table 540.
  • the port is additionally executed by the Push VLAN command, after which the packet is output from the switch 500.
  • FIG. 6 is a conceptual diagram illustrating an embodiment of an output port change through flow counting using the flow processing method according to the present invention.
  • the output port 1 operation is executed as it is and is transmitted to the output queues 630 without changing the output port (S640). ). However, if the counting for the flow exceeds a predetermined threshold, the output port for the packet is changed to the output port 2 (Output port 2) and transferred to the output queue 630 (S650).
  • FIG. 7 is a conceptual diagram illustrating an embodiment of packet fragmentation using a flow processing method according to the present invention.
  • the operation of the output port 1 is performed as it is and transferred to the output queue 730 without changing the packet size (S740). However, if the packet is larger than the MTU size, the packet is delivered to the output queue 730 after packet fragmentation (S750).
  • FIG. 8 is a conceptual diagram illustrating a field configuration of an output table according to the present invention
  • FIG. 9 is a conceptual diagram illustrating a match field structure of an output table.
  • the output table may include match fields, priorities, counters, instructions, timeouts, and cookies. .
  • the match field of the output table is configured in a format of repeated type-length-value (TLV) format.
  • the type field includes a class (oxm_class), a field (oxm_field), and masking. It consists of whether (oxm_hasmask), the Length field is composed of the length (oxm_length), the Value field is composed of the actual matching value of the match field.
  • the class (oxm_class) of the Type field is distinguished from the general match field classification by a separate division value, and accordingly, the operator (oxm_operator) is used in addition to simple matching by assigning an operator division (oxm_operator) to the Value field.
  • the size comparison is possible.
  • the size comparison method using the operator may be used in the flow counting embodiment illustrated in FIG. 6 or the packet segmentation embodiment illustrated in FIG. 7.
  • FIG. 10 illustrates an example of using a match field using a wild card in an output table according to the present invention.
  • 11 is an example for explaining an example of using a match field for size comparison in an output table according to the present invention.
  • a comparison operator 'greater than (>)' is used to compare '1400> MTU size' to compare the packet size with the MTU size of output port 1. This is an example of using an expression. Instead of using oxm_bitmask, set oxm_operator to '>' and set the comparison value to oxm_value.
  • flow counting in an output table may be enabled by defining and managing a counter 1210 for an egress table and a counter 1220 for an egress flow entry.
  • FIG. 13 is a block diagram for explaining an embodiment of a network apparatus for performing a flow processing method according to the present invention.
  • a network apparatus for performing a flow processing method may include a packet input unit 1310, a flow table storage unit 1320, a flow table processing unit 1330, and a packet output unit 1340. It can be configured to include.
  • the packet input unit 1310 is a component that receives a packet of a flow from the outside.
  • the flow table storage unit 1320 is a component that stores a plurality of (N; N is two or more natural numbers) flow tables.
  • the last flow table of the plurality of flow tables necessarily includes an egress table described so far.
  • the flow table storage unit 1320 may be implemented using various nonvolatile memory devices.
  • the flow table processing unit 1330 is a component that performs processing based on the flow table stored in the flow table storage unit 1320 with respect to the packet introduced through the packet input unit 1310. At this time, the flow table processing unit 1330 outputs the N-only table indicated by the N-th table after passing through the N-th table from the first table to the packet input from the packet input unit 1310. The operation of the egress table is performed.
  • an operation to be processed in the N th output dedicated table may be determined by the indicated output port.
  • the packet output unit 1340 is a component for outputting the packet output from the flow table processing unit 1330 to the outside of the switch 1300.

Abstract

Disclosed are a packet output controlling method and a network device using the same. A packet output controlling method according to the present invention, as a method for processing flow in a plurality (N, where N is a natural number of 2 or greater) of flow tables connected by a pipeline, may comprise the steps of: passing a packet input into a flow from a first table to an N-1st table from among a plurality of tables; processing an output-dedicated Nth table (egress table) guided by the N-1st table with respect to the packet after the packet passes the N-1st table; and outputting the packet after processing the Nth table. Accordingly, the flexible control of a final output is made possible through various operations using output port information.

Description

패킷 출력 제어 방법 및 이를 이용한 네트워크 장치Packet output control method and network device using same
본 발명은 소프트웨어 정의 네트워킹(SDN; Software Defined Networking) 기술에 관한 것으로, 더욱 상세하게는 네트워크 장치에서 패킷 포워딩을 처리하기 위한 플로우 테이블의 파이프라인(pipeline) 처리 기술에 관한 것으로, 패킷의 출력을 제어하기 위한 방법 및 이를 이용한 네트워크 장치에 관한 것이다.TECHNICAL FIELD The present invention relates to a Software Defined Networking (SDN) technology, and more particularly, to a pipeline processing technology of a flow table for processing packet forwarding in a network device. It relates to a method and a network device using the same.
SDN(Software Defined Network)은 라우터나 스위치 등의 기본 네트워크 장비에 관계없이 사용자가 통제 권한을 가지며, 별도의 소프트웨어 컨트롤러가 트래픽 흐름을 제어하는 사용자 중심의 네트워크를 의미한다.Software defined network (SDN) refers to a user-oriented network in which a user has control authority regardless of basic network equipment such as a router or a switch, and a separate software controller controls traffic flow.
오픈플로우(OpenFlow)는 SDN 기술의 대표적 표준의 하나로, 하드웨어(스위치)와 컨트롤러(network OS) 사이를 연결하는 인터페이스를 정의하며, 네트워크를 통해 데이터 패킷을 어떻게 전달할 것인지 제어하기 위한 기능(control plane)을 물리적 네트워크와 분리하여 데이터 전달 기능(data plane)과 상호작용 하기 위한 프로토콜이다.OpenFlow is one of the standard standards for SDN technology. It defines the interface between hardware (switch) and controller (network OS) and controls the control of how data packets are delivered through the network. Protocol to separate data from physical network and interact with data plane.
플로우 테이블(flow table)은 복수개의 테이블로 구성되어 있으며, 테이블간에 파이프라인(pipeline)으로 연결되어 유연한 병렬 프로세싱이 가능해짐으로써 OpenFlow 스위치에 효율성과 유연성을 제공한다.The flow table is composed of a plurality of tables, which are connected to each other by pipelines to provide flexible parallel processing, providing efficiency and flexibility to OpenFlow switches.
파이프라인(pipeline)을 통해 패킷들이 프로세싱 될 때, 각 테이블에서 형성된 동작(action) 필드는 리스트의 형태로 동작 리스트(action list)에 저장이 되어 파이프라인 마지막에 동작 집합(action set)으로 이루어지고, 각 테이블 간에는 메타데이터(metadata) 제공으로 메시지를 전달한다.When packets are processed through the pipeline, the action fields formed in each table are stored in an action list in the form of a list, consisting of an action set at the end of the pipeline. In this case, messages are delivered by providing metadata between each table.
스위치에 패킷이 유입되어 파이프라인의 각 플로우 테이블을 통과할 때, 플로우 별 지시어(instruction)에 의해 매치 필드(match fields)와 동작 집합이 업데이트 된다. As packets enter the switch and pass through each flow table in the pipeline, match fields and action sets are updated by flow-specific instructions.
각 플로우에 대한 동작은 지시어에 의해 즉시 실행 되거나, 동작 집합에 누적이 될 수 있는데, 누적된 동작 집합은 최종적으로 모든 플로우 테이블을 통과 후 마지막에 실행된다.Actions for each flow can be executed immediately by directives or can be accumulated in a set of actions, which are last executed after passing through all flow tables.
파이프라인 처리 과정에서 실행되는 출력포트(output port) 명령어는 패킷을 최종 포워딩하는 액션으로서, 일단 출력포트 명령어가 수행이 되면 해당 플로우에 대하여 더 이상 다른 명령어를 수행할 수 없다. 즉, 출력포트 정보를 활용하여 다른 액션에 연결할 수 있는 방법이 없다.The output port command executed in the pipeline processing is an action of finally forwarding a packet. Once the output port command is executed, no other command can be executed for the flow. In other words, there is no way to connect to other actions by using output port information.
또한, 그룹 테이블(group table)은 다수 개의 포트에 대한 멀티 캐스트 등에 활용되는데, 출력포트 명령어 액션을 통해 최종적으로 패킷을 포워딩함으로써 종료된다. 즉, 그룹 테이블의 실행결과를 이용하여 다른 액션에 연결할 수 있는 방법이 없다.In addition, the group table is used for multicasting a plurality of ports and the like, and is terminated by finally forwarding a packet through an output port command action. That is, there is no way to link to other actions by using the execution result of the group table.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 출력포트에 기초하여 플로우를 제어할 수 있도록 하는 플로우 처리 방법을 제공하는데 있다.An object of the present invention for solving the above problems is to provide a flow processing method that can control the flow based on the output port.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 출력포트에 기초하여 플로우를 제어할 수 있도록 하는 플로우 처리 방법을 수행하는 네트워크 장치를 제공하는데 있다.Another object of the present invention for solving the above problems is to provide a network apparatus for performing a flow processing method to control the flow based on the output port.
상기 목적을 달성하기 위한 본 발명은, 파이프라인으로 연결된 복수 개(N개; N은 2이상의 자연수)의 플로우 테이블에서 플로우 처리 방법에 있어서, 상기 플로우의 유입된 패킷이 상기 복수 개의 테이블 중, 제1 테이블부터 제N-1번 테이블을 경유하는 단계, 상기 패킷이 상기 N-1번째 테이블을 경유한 이후에, 상기 패킷에 대해 상기 N-1번째 테이블에 의해 지시되는 출력 전용 N번째 테이블(egress table)의 처리를 수행하는 단계 및 상기 N번째 테이블의 처리 이후에 상기 패킷을 출력하는 단계를 포함한, 플로우 처리 방법을 제공한다.In order to achieve the above object, the present invention provides a flow processing method in a plurality of flow tables (N; N is a natural number of two or more) connected by a pipeline, wherein packets flowed in the flow table are selected from among the plurality of tables. Passing through table N-1 to table N-1, and after the packet passes through the N-1 th table, an output-only N th table indicated by the N-1 th table for the packet. performing a processing of a table) and outputting the packet after processing of the N-th table.
여기에서, 상기 플로우 처리 방법은 소프트웨어 정의 네트워킹(Software Defined Networking)을 지원하는 네트워크 장비에서 수행될 수 있다.Here, the flow processing method may be performed in a network device that supports software defined networking.
여기에서, 상기 N-1번째 테이블을 경유한 이후에, 해당 플로우의 출력 포트(output port)가 지시되며, 상기 지시된 출력 포트에 의해서 상기 N번째 테이블에서 처리될 동작이 결정될 수 있다.Here, after passing through the N-th table, an output port of a corresponding flow is indicated, and an operation to be processed in the N-th table may be determined by the indicated output port.
이때, 상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우의 패킷에 대한 가상 로컬 에어리어 네트워크(VLAN; Virtual LAN) 태그(tag)의 부착을 포함할 수 있다.In this case, the processing of the output-only N-th table may include attaching a virtual local area network (VLAN) tag to a packet of a flow to be output to the indicated output port.
이때, 상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우에 대한 카운팅을 포함할 수 있고, 상기 플로우에 대한 카운팅이 소정의 임계값과 동일하거나 초과하는 경우, 출력 포트의 변경이 수행될 수 있다.At this time, the processing of the output-only N-th table may include counting for the flow to be output to the indicated output port, and if the counting for the flow is equal to or exceeds a predetermined threshold, the change of the output port is Can be performed.
이때, 상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우의 패킷 사이즈를 소정의 임계값과 비교하여, 상기 패킷 사이즈가 소정의 임계값과 동일하거나 초과하는 경우, 상기 패킷에 대한 분할(fragmentation)을 수행하도록 구성될 수 있다.At this time, the processing of the output-only N-th table compares the packet size of the flow to be output to the indicated output port with a predetermined threshold value, and if the packet size is equal to or exceeds the predetermined threshold value, It may be configured to perform fragmentation.
상기 다른 목적을 달성하기 위한 본 발명은, 외부로부터 플로우의 패킷을 입력받는 패킷 입력부, 복수 개(N개; N은 2이상의 자연수)의 플로우 테이블을 저장하는 플로우 테이블 저장부, 상기 패킷 입력부로부터 입력된 패킷에 대하여, 상기 플로우 테이블 저장부에 저장된 상기 복수 개의 테이블 중, 제1 테이블부터 제N-1번 테이블을 경유한 이후에, 상기 N-1번째 테이블에 의해 지시되는 출력 전용 N번째 테이블(egress table)의 동작을 수행하는 플로우 테이블 처리부 및 상기 플로우 테이블 처리부에서 상기 출력 전용 N번째 테이블의 처리를 완료한 이후에 상기 플로우의 패킷을 외부로 출력하는 패킷 출력부를 포함한 네트워크 장치를 제공한다.According to another aspect of the present invention, there is provided a packet input unit for receiving a packet of flows from the outside, a flow table storage unit for storing a plurality of flow tables (N; N is a natural number of two or more), and input from the packet input unit. For the packet, the output-only N-th table indicated by the N-th table after passing through the N-th table from the first table among the plurality of tables stored in the flow table storage unit ( Provided is a network device including a flow table processing unit for performing an operation of an egress table and a packet output unit for outputting packets of the flow to the outside after the processing of the output-only N-th table by the flow table processing unit.
여기에서, 상기 네트워크 장치는 소프트웨어 정의 네트워킹(Software Defined Networking)을 지원하는 네트워크 장치일 수 있다.Herein, the network device may be a network device supporting software defined networking.
여기에서, 상기 N-1번째 테이블을 경유한 이후에, 해당 패킷의 출력 포트(output port)가 지시되며, 상기 지시된 출력 포트에 의해서 상기 N번째 테이블에서 처리될 동작이 결정될 수 있다.Here, after passing through the N-th table, an output port of the corresponding packet is indicated, and an operation to be processed in the N-th table may be determined by the indicated output port.
이때, 상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 패킷에 대한 가상 로컬 에어리어 네트워크(VLAN; Virtual LAN) 태그(tag)의 부착을 포함할 수 있다.At this time, the processing of the output-only N-th table may include attaching a Virtual Local Area Network (VLAN) tag to a packet to be output to the indicated output port.
이때, 상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우에 대한 카운팅을 포함할 수 있고, 상기 플로우에 대한 카운팅이 소정의 임계값과 동일하거나 초과하는 경우, 출력 포트의 변경이 수행될 수 있다.At this time, the processing of the output-only N-th table may include counting for the flow to be output to the indicated output port, and if the counting for the flow is equal to or exceeds a predetermined threshold, the change of the output port is Can be performed.
이때, 상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우의 패킷 사이즈를 소정의 임계값과 비교하여, 상기 패킷 사이즈가 소정의 임계값과 동일하거나 초과하는 경우, 상기 패킷에 대한 분할(fragmentation)을 수행하도록 구성될 수 있다.At this time, the processing of the output-only N-th table compares the packet size of the flow to be output to the indicated output port with a predetermined threshold value, and if the packet size is equal to or exceeds the predetermined threshold value, It may be configured to perform fragmentation.
본 발명에 따른 플로우 처리 방법과, 플로우 처리 방법을 수행하는 네트워크 장치를 이용하면, 플로우 테이블을 이용한 파이프라인의 처리에 있어서, 출력 전용의 출력 테이블(egress table)을 이용하여 결정된 출력 포트(output port)에 매칭되는 동작을 수행 가능하다. 따라서, 출력 포트 정보를 이용한 다양한 동작을 통해 최종 출력을 유연하게 제어할 수 있게 된다.Using the flow processing method and the network apparatus which performs the flow processing method according to the present invention, in the processing of the pipeline using the flow table, an output port determined using an output table dedicated to output ) Can be performed. Therefore, the final output can be flexibly controlled through various operations using the output port information.
도 1과 도 2는 파이프라인 방식 플로우 테이블의 처리 방법을 설명하기 위한 개념도들이다.1 and 2 are conceptual diagrams for explaining a processing method of a pipelined flow table.
도 3은 본 발명에 따른 플로우 처리 방법을 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a flow processing method according to the present invention.
도 4는 본 발명에 따른 플로우 처리 방법을 이용하여 VLAN ID를 태깅하는 실시예를 설명하기 위한 개념도이다.4 is a conceptual diagram illustrating an embodiment of tagging a VLAN ID using a flow processing method according to the present invention.
도 5는 본 발명에 따른 플로우 처리 방법을 이용하여 VLAN ID를 태깅하는 실시예를 설명하기 위한 다른 개념도이다.5 is another conceptual diagram for explaining an embodiment of tagging a VLAN ID using the flow processing method according to the present invention.
도 6은 본 발명에 따른 플로우 처리 방법을 이용한 플로우 카운팅을 통한 출력 포트 변경 실시예를 설명하기 위한 개념도이다.6 is a conceptual diagram illustrating an embodiment of an output port change through flow counting using the flow processing method according to the present invention.
도 7은 본 발명에 따른 플로우 처리 방법을 이용한 패킷 분할(fragmentation) 실시예를 설명하기 위한 개념도이다.7 is a conceptual diagram illustrating an embodiment of packet fragmentation using a flow processing method according to the present invention.
도 8은 본 발명에 따른 출력 테이블의 필드 구성을 보여주는 개념도이다. 8 is a conceptual diagram illustrating a field configuration of an output table according to the present invention.
도 9는 출력 테이블의 매치 필드 구조를 보여주는 개념도이다.9 is a conceptual diagram illustrating a match field structure of an output table.
도 10은 본 발명에 따른 출력 테이블에서 와일드 카드를 이용한 매치 필드의 활용 예를 설명하기 위한 예시이다.10 illustrates an example of using a match field using a wild card in an output table according to the present invention.
도 11은 본 발명에 따른 출력 테이블에서 크기 비교를 위한 매치 필드의 활용 예를 설명하기 위한 예시이다.11 illustrates an example of using a match field for size comparison in an output table according to the present invention.
도 12는 본 발명에 따른 출력 테이블에서 플로우 카운팅을 위한 매치 필드의 활용 예를 설명하기 위한 예시이다.12 illustrates an example of using a match field for flow counting in an output table according to the present invention.
도 13은 본 발명에 따른 플로우 처리 방법을 수행하기 위한 네트워크 장치의 일 실시예를 설명하기 위한 블록도이다.13 is a block diagram for explaining an embodiment of a network apparatus for performing a flow processing method according to the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
네트워크 장치에서 파이프라인 방식으로 플로우 테이블을 처리하는 방법은, 플로우 테이블을 구성하는 각 테이블을 통과하면서 각 테이블의 플로우 별 지시어(instruction)에 의한 동작을 즉시 실행하는 방법과, 플로우 별 지시어를 동작 집합에 누적시키고 누적된 동작 집합을 모든 플로우 테이블을 통과 후에 실행하는 방법이 있다.The method of processing a flow table in a pipelined manner in a network device includes a method of immediately executing an operation by a flow-specific instruction of each table while passing through each table constituting the flow table, and using a flow-specific directive as an operation set. There is a way to accumulate and execute the accumulated action set after passing through all the flow tables.
도 1과 도 2는 파이프라인 방식 플로우 테이블의 처리 방법을 설명하기 위한 개념도들이다.1 and 2 are conceptual diagrams for explaining a processing method of a pipelined flow table.
먼저, 도 1은 n개의 테이블들(101-1, ..., 101-n)로 구성된 플로우 테이블의 마지막 n번째 테이블(101-n)에서 특정 플로우에 대해서 출력 동작(102; output action)이나 그룹 출력 동작(103; group output action)이 실행되는 경우를 예시하고 있다.First, FIG. 1 illustrates an output action 102 for a specific flow in the last nth table 101-n of a flow table composed of n tables 101-1, ..., 101-n. The case where the group output action 103 is executed is illustrated.
반면, 도 2는 n개의 테이블들(101-1, ..., 101-n)로 구성된 플로우 테이블의 마지막 n번째 테이블(101-n)를 거친 이후에 동작집합(104)에 누적된 명령어들 중 출력 동작(105) 또는 그룹 출력 동작(106)이 실행되는 경우를 예시하고 있다. 동작집합 내에서도, 출력 동작 또는 그룹 출력 동작은 우선순위에 있어서 제일 마지막에 실행된다.In contrast, FIG. 2 illustrates instructions accumulated in the operation set 104 after passing through the last n th table 101-n of a flow table composed of n tables 101-1,..., 101-n. The case where the output operation 105 or the group output operation 106 is performed is illustrated. Even within an operation set, the output operation or group output operation is executed last in priority.
어느 경우이든, 출력 동작 또는 그룹 출력 동작에 의해서 출력 포트(output port)가 지정되면, 지정된 출력 포트로 패킷이 포워딩된다. 그리고, 일단 출력포트 가 지정이 되면 해당 플로우에 대하여 더 이상 다른 명령어를 수행할 수 없다. 즉, 출력포트 정보를 활용하여 다른 액션에 연결할 수 있는 방법이 없다.In either case, if an output port is specified by an output operation or a group output operation, the packet is forwarded to the designated output port. Once an output port is specified, no other commands can be executed for that flow. In other words, there is no way to connect to other actions by using output port information.
또한, 플로우 테이블 간 흐름은 파이프라인 처리방식으로 연결되는데, Goto Table 지시어를 이용해서 다른 플로우 테이블로 이동시 순차적인 전진방향으로만 이동할 수 있으며, 따라서 마지막 플로우 테이블에서는 Goto 지시어를 사용할 수 없다.In addition, the flow between the flow tables is connected by pipeline processing. When moving to another flow table using the Goto Table directive, the flow can only be moved in the sequential forward direction. Therefore, the Goto directive cannot be used in the last flow table.
본 발명에 따른 플로우 처리 방법Flow processing method according to the present invention
본 발명에 따른 플로우 처리 방법에서는, 상술된 문제점을 해결하기 위해서, 파이프라인으로 연결된 복수 개(n개; n은 2이상의 자연수)의 테이블로 구성된 플로우 테이블에서의 플로우 처리 방법에 있어서, 가장 마지막 테이블(n번째 테이블)로서 출력 테이블(egress table)을 도입하는 것을 특징으로 한다.In the flow processing method according to the present invention, in order to solve the above-mentioned problem, in the flow processing method in the flow table consisting of a plurality of tables (n; n is a natural number of two or more) connected by a pipeline, the last table An egress table is introduced as (nth table).
도 3은 본 발명에 따른 플로우 처리 방법을 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a flow processing method according to the present invention.
도 3을 참조하면, 본 발명에 따른 스위치는 모두 파이프라인으로 연결된 n-1개의 플로우 테이블(301-1,301-2, ...)과 출력 테이블(302)을 포함한다.Referring to FIG. 3, the switch according to the present invention includes n-1 flow tables 301-1, 301-2,... And an output table 302 all connected by pipelines.
스위치에 유입된 패킷은 제1 테이블(301-1) 부터 제(n-1) 테이블(301-(n-1))까지 통과한 후, 누적된 동작 집합(302)을 처리하게 되며, 동작 집합(302)에 정의된 액션 중, 맨 마지막에 그룹 출력(303) 또는 출력 동작(304)을 실행한 후, 최종 출력 전에 출력 테이블(Egress Table; 305)을 경유한다. 또는, 동작 집합을 거치지 않고, 앞서 도 1을 통하여 설명된 바와 같이, 출력 동작이나 그룹 출력 동작의 즉시 실행에 의해서 출력 테이블에 도달할 수도 있다. The packet flowing into the switch passes from the first table 301-1 to the (n-1) th table 301- (n-1), and then processes the accumulated operation set 302, and then operates. Of the actions defined at 302, the group output 303 or output operation 304 is executed last, and then via an egress table 305 before the final output. Alternatively, the output table may be reached by immediately executing the output operation or the group output operation as described above with reference to FIG. 1 without going through the operation set.
출력 테이블(305)에서는, 그룹 출력(303) 또는 출력 동작(304)에 의하여 지시된 출력 포트(output port)에 대해 정해진 동작을 수행한 후, 최종적으로 패킷이 출력된다.In the output table 305, after performing a predetermined operation on the output port indicated by the group output 303 or the output operation 304, the packet is finally output.
이하에서는, 상술된 본 발명에 따른 플로우 처리 방법을 보다 더 자세히 설명하기 위해서, 출력전용 테이블을 이용하는 가장 대표적인 실시예로서 VLAN ID 태깅(tagging) 실시예를 먼저 설명한다.In the following, in order to explain in more detail the flow processing method according to the present invention described above, a VLAN ID tagging embodiment is first described as the most representative embodiment using an output-only table.
도 4는 본 발명에 따른 플로우 처리 방법을 이용하여 VLAN ID를 태킹하는 실시예를 설명하기 위한 개념도로서, 플로우 테이블의 출력 동작 이후의 출력 테이블의 처리 방법에 대한 예시이다.4 is a conceptual diagram illustrating an embodiment of tagging a VLAN ID using a flow processing method according to the present invention, and is an example of a method of processing an output table after an output operation of a flow table.
스위치(400)에 들어온 패킷은 제1 플로우 테이블(410)과 제2 플로우 테이블(420)를 거치게 되며, 각 테이블의 매치 필드(match field)에서 해당하는 플로우를 찾아 대응된 동작(action)을 수행하게 된다. The packet entering the switch 400 passes through the first flow table 410 and the second flow table 420, and finds a corresponding flow in a match field of each table to perform a corresponding action. Done.
도 4에 예시된 본 발명에 따른 실시예에서는, 제2 플로우 테이블(420)에서 출력 포트 동작(output port action)을 수행 후, 스위치를 빠져나가지 않고, 출력 테이블(430)을 경유한다. 출력 테이블(430)에서는, 앞서 제2 플로우 테이블에서 지시된 출력 포트에 따라 대응되는 'Push VLAN' 동작이 추가적으로 실행되며, 이후에 패킷은 출력된다. 즉, 출력 포트1(output port1)이 지정된 패킷들에 대해서는 출력 테이블에서 'Push VLAN1' 동작이 수행되며, 출력 포트2(output port2)가 지정된 패킷들에 대해서는 출력 테이블에서 'Push VLAN2' 동작이 수행된다.In the embodiment according to the present invention illustrated in FIG. 4, after performing an output port action in the second flow table 420, the switch does not exit and passes through the output table 430. In the output table 430, a corresponding 'push VLAN' operation is additionally performed according to the output port indicated in the second flow table, and then the packet is output. That is, 'Push VLAN1' operation is performed in the output table for packets designated to output port1, and 'Push VLAN2' operation is performed in the output table for packets designated to output port2. do.
상술된 예시에서, 만약 출력 테이블이 사용되지 않는 다면, 제2 플로우 테이블에서 출력 포트1로 출력되는 모든 플로우 항목에 대해서 출력포트1로 출력하는 동작("Output port1") 이전에 "Push VLAN1"을 동작집합에 일일이 추가해야 하므로, 제2 플로우 테이블에 플로우 항목이 많아지면 비효율성이 증가한다.In the above example, if the output table is not used, "Push VLAN1" is output before the operation of outputting to output port 1 for all flow items output to output port 1 in the second flow table. Since it is necessary to add to the operation set individually, increasing the number of flow items in the second flow table increases inefficiency.
도 5는 본 발명에 따른 플로우 처리 방법을 이용하여 VLAN ID를 태깅하는 실시예를 설명하기 위한 다른 개념도로서, 그룹 테이블의 그룹 출력 동작 이후의 출력 테이블의 처리 방법에 대한 예시이다.5 is another conceptual diagram illustrating an embodiment of tagging a VLAN ID using a flow processing method according to the present invention, and is an example of a method of processing an output table after a group output operation of a group table.
스위치(500)에 들어온 패킷은 제1 플로우 테이블(510)과 제2 플로우 테이블(520)을 거치게 되며, 각 테이블의 매치 필드(match field)에서 해당하는 플로우를 찾아 대응된 동작(action)을 수행하게 된다The packet entering the switch 500 passes through the first flow table 510 and the second flow table 520, and finds a corresponding flow in a match field of each table to perform a corresponding action. Will be
제2 플로우 테이블(520)에서, 그룹 명령어에 의해서 그룹 테이블(530)에 정의된 다수의 출력 포트 동작(즉, 멀티 캐스팅)을 수행 후, 출력 테이블(540)을 경유하게 된다.In the second flow table 520, after performing a plurality of output port operations (ie, multicasting) defined in the group table 530 by the group command, the second flow table 520 passes through the output table 540.
출력 테이블(540)에서는 그룹 테이블에 의해 지시된 출력 포트에 따라, 포트별로 Push VLAN 명령어로 추가 실행되며, 이후에 패킷은 스위치(500)로부터 출력된다. In the output table 540, according to the output port indicated by the group table, the port is additionally executed by the Push VLAN command, after which the packet is output from the switch 500.
따라서, 출력 테이블을 사용하여 출력 포트 필드를 매칭하고 포트별 Push VLAN 동작에 대한 지정을 통해, 해당 출력 포트로 출력되는 모든 플로우 항목에 대한 제어가 가능하다. 이를 통하여, 파이프라인 처리에서 플로우 테이블 간 독립성 및 병렬처리의 특성을 최대한 활용 가능하다.Therefore, by using the output table to match the output port field and specifying the push VLAN operation for each port, it is possible to control all flow items output to the corresponding output port. Through this, it is possible to make full use of the characteristics of independence and parallel processing between flow tables in pipeline processing.
이하에서는, 상술된 본 발명에 따른 플로우 처리 방법을 보다 더 자세히 설명하기 위해서, 출력전용 테이블을 이용하는 추가 실시예들로서 플로우 카운팅(flow counting)을 이용한 출력 포트 변경과, 패킷 분할(packet fragmentation) 실시예들을 설명한다.In the following, in order to further explain the above-described flow processing method according to the present invention, as an additional embodiment using an output-only table, an output port change using flow counting and a packet fragmentation embodiment are described. Explain them.
도 6은 본 발명에 따른 플로우 처리 방법을 이용한 플로우 카운팅을 통한 출력 포트 변경 실시예를 설명하기 위한 개념도이다. 6 is a conceptual diagram illustrating an embodiment of an output port change through flow counting using the flow processing method according to the present invention.
스위치(600)에 유입된 패킷은 마지막 플로우 테이블(610)에 도달하면, 이에 따라 출력 포트1을 지정하는 동작이 실행되고(S610), 이 패킷은 출력 테이블(620)을 경유한다(S620). 스위치에서는 출력 포트1에 대응된 출력 테이블의 동작으로서 출력 포트1에 해당되는 플로우들에 대한 카운팅을 수행하여, 소정의 임계값을 초과하였는지 여부를 체크한다(S630).When the packet flowing into the switch 600 reaches the last flow table 610, an operation for specifying the output port 1 is performed accordingly (S610), and the packet passes through the output table 620 (S620). The switch performs counting on flows corresponding to the output port 1 as an operation of the output table corresponding to the output port 1, and checks whether the predetermined threshold value is exceeded (S630).
임계값 초과 여부를 체크한 결과, 플로우에 대한 카운팅이 임계값을 초과하지 않았다면 출력 포트1(output port 1) 동작을 그대로 실행하여 출력 포트 변경없이 출력 큐(Output Queues; 630)에 전달한다(S640). 하지만, 플로우에 대한 카운팅이 소정의 임계값을 초과하는 경우, 패킷에 대한 출력 포트를 출력 포트2(Output port 2)로 변경하여 출력 큐(630)에 전달한다(S650).As a result of checking whether the threshold is exceeded, if the counting for the flow does not exceed the threshold, the output port 1 operation is executed as it is and is transmitted to the output queues 630 without changing the output port (S640). ). However, if the counting for the flow exceeds a predetermined threshold, the output port for the packet is changed to the output port 2 (Output port 2) and transferred to the output queue 630 (S650).
도 7은 본 발명에 따른 플로우 처리 방법을 이용한 패킷 분할(fragmentation) 실시예를 설명하기 위한 개념도이다.7 is a conceptual diagram illustrating an embodiment of packet fragmentation using a flow processing method according to the present invention.
스위치(700)에 유입된 패킷은 마지막 플로우 테이블(710)에 도달하면, 이에 따라 출력 포트 1을 지정하는 동작이 실행되고(S710), 이 패킷이 출력 테이블(720)을 경유한다(S720). 스위치에서는 출력 포트1을 통하여 패킷을 출력 큐(730)로 내보내기 전에, 해당 출력포트(즉, 출력 포트1)의 MTU(Maximum Transmission Unit) 크기와 현재 유입된 패킷의 크기를 비교한다(S730). When the packet flowing into the switch 700 reaches the last flow table 710, an operation for designating the output port 1 is performed accordingly (S710), and the packet passes through the output table 720 (S720). The switch compares the size of the MTU (Maximum Transmission Unit) of the corresponding output port (ie, output port 1) with the size of the current incoming packet before sending the packet to the output queue 730 through the output port 1 (S730).
패킷이 MTU 사이즈보다 크지 않은 경우, 출력 포트1의 동작을 그대로 실행하여 패킷 크기의 변경 없이 출력 큐(730)에 전달한다(S740). 하지만, 패킷이 MTU 사이즈보다 큰 경우, 패킷 분할(fragmentation)을 수행한 후 출력 큐(730)에 전달한다(S750).If the packet is not larger than the MTU size, the operation of the output port 1 is performed as it is and transferred to the output queue 730 without changing the packet size (S740). However, if the packet is larger than the MTU size, the packet is delivered to the output queue 730 after packet fragmentation (S750).
출력 테이블의 필드 구성 및 매치 필드 구성 Field and match field configuration in the output table
도 8은 본 발명에 따른 출력 테이블의 필드 구성을 보여주는 개념도이며, 도 9는 출력 테이블의 매치 필드 구조를 보여주는 개념도이다.8 is a conceptual diagram illustrating a field configuration of an output table according to the present invention, and FIG. 9 is a conceptual diagram illustrating a match field structure of an output table.
먼저, 도 8을 참조하면, 출력 테이블은 매치 필드(Match Fields), 우선순위(Priority), 카운터(Counters), 지시어(Instructions), 타임아웃(Timeouts), 및 쿠키(Cookie)로 구성될 수 있다.First, referring to FIG. 8, the output table may include match fields, priorities, counters, instructions, timeouts, and cookies. .
또한, 도 9를 참조하면, 출력 테이블의 매치 필드는 TLV(Type-Length-Value) 포맷이 반복된 형태로 구성되는데, 보다 상세하게는, Type 필드는 클래스(oxm_class), 필드(oxm_field), 마스킹여부(oxm_hasmask)로 구성되며, Length 필드는 길이(oxm_length)로 구성되고, Value 필드는 매치필드의 실제 매칭값으로 구성된다.In addition, referring to FIG. 9, the match field of the output table is configured in a format of repeated type-length-value (TLV) format. More specifically, the type field includes a class (oxm_class), a field (oxm_field), and masking. It consists of whether (oxm_hasmask), the Length field is composed of the length (oxm_length), the Value field is composed of the actual matching value of the match field.
 이러한 구성에서, Type 필드의 클래스(oxm_class)를 별도의 구분값으로 일반 매치필드의 분류와 구별하고, 이에 따라 Value 필드를 연산자 구분(oxm_operator)를 지정하여, 단순 매칭 외에 연산자(oxm_operator)를 활용하여 크기 비교가 가능한 것이 특징이다. In this configuration, the class (oxm_class) of the Type field is distinguished from the general match field classification by a separate division value, and accordingly, the operator (oxm_operator) is used in addition to simple matching by assigning an operator division (oxm_operator) to the Value field. The size comparison is possible.
연산자를 이용한 크기 비교 방법은 도 6에서 예시된 플로우 카운팅 실시예나, 도 7에서 예시된 패킷 분할 실시예의 경우에서 활용될 수 있다.The size comparison method using the operator may be used in the flow counting embodiment illustrated in FIG. 6 or the packet segmentation embodiment illustrated in FIG. 7.
도 10은 본 발명에 따른 출력 테이블에서 와일드 카드를 이용한 매치 필드의 활용 예를 설명하기 위한 예시이다.10 illustrates an example of using a match field using a wild card in an output table according to the present invention.
도 10을 참조하면, DST_IP에 대하여 10.1.1.1~10.1.1.255를 매칭하기 위해 bitmask 인 255.255.255.0 을 사용하여 매칭하는 경우가 예시된다.Referring to FIG. 10, a case of matching DST_IP using a bitmask of 255.255.255.0 to match 10.1.1.1 to 10.1.1.255 is illustrated.
또한, 도 11은 본 발명에 따른 출력 테이블에서 크기 비교를 위한 매치 필드의 활용 예를 설명하기 위한 예시이다.11 is an example for explaining an example of using a match field for size comparison in an output table according to the present invention.
도 11을 참조하면, 앞서 설명된 도 7의 실시예에서 출력 포트1의 MTU 사이즈와 패킷 사이즈를 비교하기 위해 비교연산자인 '~보다 크다 (>)'를 사용하여 '1400 > MTU size'에 대한 표현식을 이용하는 예시이다. oxm_bitmask를 사용하지 않고, oxm_operator를 '>'로 지정하며, oxm_value에 비교값을 세팅한다.Referring to FIG. 11, in the above-described embodiment of FIG. 7, a comparison operator 'greater than (>)' is used to compare '1400> MTU size' to compare the packet size with the MTU size of output port 1. This is an example of using an expression. Instead of using oxm_bitmask, set oxm_operator to '>' and set the comparison value to oxm_value.
또한, 도 12는 본 발명에 따른 출력 테이블에서 플로우 카운팅을 위한 매치 필드의 활용 예를 설명하기 위한 예시이다.12 is an example for explaining an example of using a match field for flow counting in an output table according to the present invention.
도 12를 참조하면, Egress Table를 위한 카운터(1210)와 Egress Flow Entry를 위한 카운터(1220)를 정의하고 관리함으로써 출력 테이블에서의 플로우 카운팅이 가능해질 수 있다.Referring to FIG. 12, flow counting in an output table may be enabled by defining and managing a counter 1210 for an egress table and a counter 1220 for an egress flow entry.
본 발명에 따른 네트워크 장치Network device according to the invention
도 13은 본 발명에 따른 플로우 처리 방법을 수행하기 위한 네트워크 장치의 일 실시예를 설명하기 위한 블록도이다.13 is a block diagram for explaining an embodiment of a network apparatus for performing a flow processing method according to the present invention.
도 13을 참조하면, 본 발명에 따른 플로우 처리 방법을 수행하기 위한 네트워크 장치는, 패킷 입력부(1310), 플로우 테이블 저장부(1320), 플로우 테이블 처리부(1330), 및 패킷 출력부(1340)를 포함하여 구성될 수 있다.Referring to FIG. 13, a network apparatus for performing a flow processing method according to the present invention may include a packet input unit 1310, a flow table storage unit 1320, a flow table processing unit 1330, and a packet output unit 1340. It can be configured to include.
먼저, 패킷 입력부(1310)는 외부로부터 플로우의 패킷을 입력받는 구성요소이다.First, the packet input unit 1310 is a component that receives a packet of a flow from the outside.
다음으로, 플로우 테이블 저장부(1320)는 복수 개(N개; N은 2이상의 자연수)의 플로우 테이블을 저장하는 구성요소이다. 이때, 복수개의 플로우 테이블 중에서 가장 마지막 플로우 테이블은 반드시 지금까지 설명된 출력 테이블(egress table)을 포함하게 된다. 플로우 테이블 저장부(1320)는 다양한 비휘발성 메모리 장치를 이용하여 구현될 수 있다.Next, the flow table storage unit 1320 is a component that stores a plurality of (N; N is two or more natural numbers) flow tables. In this case, the last flow table of the plurality of flow tables necessarily includes an egress table described so far. The flow table storage unit 1320 may be implemented using various nonvolatile memory devices.
다음으로, 플로우 테이블 처리부(1330)는 패킷 입력부(1310)를 통하여 유입된 패킷에 대하여, 상기 플로우 테이블 저장부(1320)에 저장된 플로우 테이블에 기초한 처리를 수행하는 구성요소이다. 이때, 플로우 테이블 처리부(1330)는 패킷 입력부(1310)로부터 입력된 패킷에 대하여, 제1 테이블부터 제N-1번 테이블을 경유한 이후에, 상기 N-1번째 테이블에 의해 지시되는 출력 전용 N번째 테이블(egress table)의 동작을 수행하게 된다.Next, the flow table processing unit 1330 is a component that performs processing based on the flow table stored in the flow table storage unit 1320 with respect to the packet introduced through the packet input unit 1310. At this time, the flow table processing unit 1330 outputs the N-only table indicated by the N-th table after passing through the N-th table from the first table to the packet input from the packet input unit 1310. The operation of the egress table is performed.
즉, 상기 N-1번째 테이블을 경유한 이후에, 해당 패킷의 출력 포트(output port)가 지시되면, 상기 지시된 출력 포트에 의해서 상기 N번째 출력 전용 테이블에서 처리될 동작이 결정될 수 있다.That is, after an output port of the corresponding packet is indicated after passing through the N−1 th table, an operation to be processed in the N th output dedicated table may be determined by the indicated output port.
마지막으로, 상기 패킷 출력부(1340)는 플로우 테이블 처리부(1330)로부터 출력된 패킷을 스위치(1300) 외부로 출력하기 위한 구성요소이다.Finally, the packet output unit 1340 is a component for outputting the packet output from the flow table processing unit 1330 to the outside of the switch 1300.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although described above with reference to a preferred embodiment of the present invention, those skilled in the art will be variously modified and changed within the scope of the invention without departing from the spirit and scope of the invention described in the claims below I can understand that you can.

Claims (14)

  1. 파이프라인으로 연결된 복수 개(N개; N은 2이상의 자연수)의 플로우 테이블에서 플로우 처리 방법에 있어서,In the flow processing method in a plurality (N; N is a natural number of two or more) flow table connected by a pipeline,
    상기 플로우의 유입된 패킷이 상기 복수 개의 테이블 중, 제1 테이블부터 제N-1번 테이블을 경유하는 단계;Inflowing the packet of the flow via the first to first N-1 tables of the plurality of tables;
    상기 패킷이 상기 N-1번째 테이블을 경유한 이후에, 상기 패킷에 대해 상기 N-1번째 테이블에 의해 지시되는 출력 전용 N번째 테이블(egress table)의 처리를 수행하는 단계; 및After the packet passes through the N−1 th table, performing processing of an output only N th table indicated by the N−1 th table for the packet; And
    상기 N번째 테이블의 처리 이후에 상기 패킷을 출력하는 단계를 포함한, 플로우 처리 방법.Outputting the packet after processing the N-th table.
  2. 청구항 1에 있어서,The method according to claim 1,
    상기 플로우 처리 방법은 소프트웨어 정의 네트워킹(Software Defined Networking)을 지원하는 네트워크 장비에서 수행되는 것을 특징으로 하는, 플로우 처리 방법.The flow processing method is characterized in that performed in a network equipment that supports Software Defined Networking.
  3. 청구항 1에 있어서,The method according to claim 1,
    상기 N-1번째 테이블을 경유한 이후에, 해당 플로우의 출력 포트(output port)가 지시되며, 상기 지시된 출력 포트에 의해서 상기 N번째 테이블에서 처리될 동작이 결정되는 것을 특징으로 하는, 플로우 처리 방법.After passing through the N-th table, an output port of the corresponding flow is indicated, and the operation to be processed in the N-th table is determined by the indicated output port. Way.
  4. 청구항 3에 있어서,The method according to claim 3,
    상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우의 패킷에 대한 가상 로컬 에어리어 네트워크(VLAN; Virtual LAN) 태그(tag)의 부착을 포함하는 것을 특징으로 하는, 플로우 처리 방법.Processing of the output-only N-th table includes attaching a virtual local area network (VLAN) tag to packets of the flow to be output to the indicated output port.
  5. 청구항 3에 있어서,The method according to claim 3,
    상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우에 대한 카운팅을 포함하는 것을 특징으로 하는, 플로우 처리 방법.Processing of the output-only N-th table includes counting for flows to be output to the indicated output ports.
  6. 청구항 5에 있어서,The method according to claim 5,
    상기 플로우에 대한 카운팅이 소정의 임계값과 동일하거나 초과하는 경우, 출력 포트의 변경을 수행하는 것을 특징으로 하는, 플로우 처리 방법.If the counting for the flow is equal to or exceeds a predetermined threshold, changing the output port.
  7. 청구항 3에 있어서,The method according to claim 3,
    상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우의 패킷 사이즈를 소정의 임계값과 비교하여, 상기 패킷 사이즈가 소정의 임계값과 동일하거나 초과하는 경우, 상기 패킷에 대한 분할(fragmentation)을 수행하는 것을 특징으로 하는, 플로우 처리 방법.The processing of the output-only N-th table compares the packet size of the flow to be output to the indicated output port with a predetermined threshold, and if the packet size is equal to or exceeds the predetermined threshold, fragmentation).
  8. 외부로부터 플로우의 패킷을 입력받는 패킷 입력부;A packet input unit for receiving a packet of a flow from the outside;
    복수 개(N개; N은 2이상의 자연수)의 플로우 테이블을 저장하는 플로우 테이블 저장부;A flow table storage unit for storing a plurality of (N; N is two or more natural numbers) flow tables;
    상기 패킷 입력부로부터 입력된 패킷에 대하여, 상기 플로우 테이블 저장부에 저장된 상기 복수 개의 테이블 중, 제1 테이블부터 제N-1번 테이블을 경유한 이후에, 상기 N-1번째 테이블에 의해 지시되는 출력 전용 N번째 테이블(egress table)의 동작을 수행하는 플로우 테이블 처리부; 및An output indicated by the N-th table after passing through the N-th table from the first table, among the plurality of tables stored in the flow table storage unit, with respect to the packet input from the packet input unit. A flow table processor configured to perform an operation of a dedicated Nth table; And
    상기 플로우 테이블 처리부에서 상기 출력 전용 N번째 테이블의 처리를 완료한 이후에 상기 플로우의 패킷을 외부로 출력하는 패킷 출력부를 포함한 네트워크 장치.And a packet output unit configured to output a packet of the flow to the outside after the flow table processing unit has completed processing of the output-only Nth table.
  9. 청구항 8에 있어서,The method according to claim 8,
    상기 네트워크 장치는 소프트웨어 정의 네트워킹(Software Defined Networking)을 지원하는 네트워크 장치인, 네트워크 장치.The network device is a network device that supports Software Defined Networking.
  10. 청구항 8에 있어서,The method according to claim 8,
    상기 N-1번째 테이블을 경유한 이후에, 해당 패킷의 출력 포트(output port)가 지시되며, 상기 지시된 출력 포트에 의해서 상기 N번째 테이블에서 처리될 동작이 결정되는, 네트워크 장치.After passing through the N-th table, an output port of the corresponding packet is indicated, and the operation to be processed in the N-th table is determined by the indicated output port.
  11. 청구항 10에 있어서,The method according to claim 10,
    상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 패킷에 대한 가상 로컬 에어리어 네트워크(VLAN; Virtual LAN) 태그(tag)의 부착을 포함하는, 네트워크 장치.Processing of the output-only N-th table includes attaching a Virtual Local Area Network (VLAN) tag to a packet to be output to the indicated output port.
  12. 청구항 10에 있어서,The method according to claim 10,
    상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우에 대한 카운팅을 포함하는, 네트워크 장치.Processing of the output-only N-th table includes counting for flows to be output to the indicated output port.
  13. 청구항 12에 있어서,The method according to claim 12,
    상기 플로우에 대한 카운팅이 소정의 임계값과 동일하거나 초과하는 경우, 출력 포트의 변경을 수행하는 것을 특징으로 하는, 네트워크 장치.If the counting for the flow is equal to or exceeds a predetermined threshold, changing the output port.
  14. 청구항 10에 있어서,The method according to claim 10,
    상기 출력 전용 N번째 테이블의 처리는 지시된 출력 포트로 출력될 플로우의 패킷 사이즈를 소정의 임계값과 비교하여, 상기 패킷 사이즈가 소정의 임계값과 동일하거나 초과하는 경우, 상기 패킷에 대한 분할(fragmentation)을 수행하는 것을 특징으로 하는, 네트워크 장치.The processing of the output-only N-th table compares the packet size of the flow to be output to the indicated output port with a predetermined threshold, and if the packet size is equal to or exceeds the predetermined threshold, performing fragmentation).
PCT/KR2014/008030 2013-08-29 2014-08-28 Packet output controlling method and network device using same WO2015030503A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201480047512.1A CN105493029B (en) 2013-08-29 2014-08-28 Data packet output control method and the network equipment for using this method
US14/914,696 US10103987B2 (en) 2013-08-29 2014-08-28 Packet output controlling method and network device using same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2013-0103468 2013-08-29
KR20130103468 2013-08-29
KR10-2013-0162390 2013-12-24
KR1020130162390A KR101569588B1 (en) 2013-08-29 2013-12-24 Method for controlling egress or packets and apparatus using the same

Publications (1)

Publication Number Publication Date
WO2015030503A1 true WO2015030503A1 (en) 2015-03-05

Family

ID=52586961

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2014/008030 WO2015030503A1 (en) 2013-08-29 2014-08-28 Packet output controlling method and network device using same

Country Status (1)

Country Link
WO (1) WO2015030503A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050063799A (en) * 2002-10-30 2005-06-28 패킷프론트 스웨덴 에이비 Method, router or switch for software and hardware packet flow forwarding
US20060050690A1 (en) * 2000-02-14 2006-03-09 Epps Garry P Pipelined packet switching and queuing architecture
US20130163427A1 (en) * 2011-12-22 2013-06-27 Ludovic Beliveau System for flexible and extensible flow processing in software-defined networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060050690A1 (en) * 2000-02-14 2006-03-09 Epps Garry P Pipelined packet switching and queuing architecture
KR20050063799A (en) * 2002-10-30 2005-06-28 패킷프론트 스웨덴 에이비 Method, router or switch for software and hardware packet flow forwarding
US20130163427A1 (en) * 2011-12-22 2013-06-27 Ludovic Beliveau System for flexible and extensible flow processing in software-defined networks

Similar Documents

Publication Publication Date Title
US8014390B2 (en) Policy based routing using a fast filter processor
EP2544409B1 (en) Generic monitoring packet handling mechanism for OpenFlow 1.1
US8351433B2 (en) Intelligent electronic device with segregated real-time ethernet
JP5233504B2 (en) Route control apparatus and packet discarding method
EP2693708A1 (en) Network system and method for acquiring vlan tag information
US7554984B2 (en) Fast filter processor metering and chaining
WO2017122849A1 (en) Internet of things network system
US9729442B1 (en) Method of detecting large flows within a switch fabric of an SDN switch
US20160006583A1 (en) Control apparatus, communication system, switch control method and program
EP2928122B1 (en) Switch device, vlan setting management method and program
US9313141B2 (en) Transmit scaling using multiple queues
WO2020130158A1 (en) Open fronthaul network system
WO2015012454A1 (en) Method of improving network performance by controlling virtual link, and network system employing same
KR20160122226A (en) Communication system, control device, communication control method and program
US9083563B2 (en) Method for reducing processing latency in a multi-thread packet processor with at least one re-order queue
WO2015030503A1 (en) Packet output controlling method and network device using same
Nguyen-Ngoc et al. Investigating isolation between virtual networks in case of congestion for a Pronto 3290 switch
KR101569588B1 (en) Method for controlling egress or packets and apparatus using the same
WO2020106105A1 (en) System and method for network traffic monitoring using sampling technique
WO2017122847A1 (en) Method for sdn-based network system supporting multi-tenants and system for same
WO2020105842A1 (en) Programmable switch-based service function chaining system and method
CN112532544B (en) Method for processing message and switching equipment
WO2020222356A1 (en) Communication method for reducing asymmetry in dual paths of ring topology
TWI788131B (en) Method for operating a network switch, network switch, and switch fabric
Zhou et al. A real-time fast path network processor for EtherCAT and home gateway

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201480047512.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14840953

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14914696

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 06/05/2016)

122 Ep: pct application non-entry in european phase

Ref document number: 14840953

Country of ref document: EP

Kind code of ref document: A1