JP2017511532A - Method for configuring a software defined PCI Express (PCI-E) switch - Google Patents

Method for configuring a software defined PCI Express (PCI-E) switch Download PDF

Info

Publication number
JP2017511532A
JP2017511532A JP2016555801A JP2016555801A JP2017511532A JP 2017511532 A JP2017511532 A JP 2017511532A JP 2016555801 A JP2016555801 A JP 2016555801A JP 2016555801 A JP2016555801 A JP 2016555801A JP 2017511532 A JP2017511532 A JP 2017511532A
Authority
JP
Japan
Prior art keywords
packet
switch
node
pci
tlp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016555801A
Other languages
Japanese (ja)
Inventor
雷 孫
雷 孫
隆士 吉川
隆士 吉川
高橋 雅彦
雅彦 高橋
鈴木 順
順 鈴木
聡 辻
聡 辻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JP2017511532A publication Critical patent/JP2017511532A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)

Abstract

本発明は、一般にネットワーキングおよびコンピュータアーキテクチャの技術分野に関し、より詳細には、ソフトウェア定義ネットワーク(SDN)ボックスと、少なくとも1つの上流ノードと、複数の下流ノードとを含むシステムを構成する手法に関するものである。ノードはいくつかのグループに分割され得る。各グループに、単一の上流ノードと、少なくとも1つの下流ノードとがある。上流ノードと下流ノードの間のすべてのパケットはSDNボックスによって転送される。SDNボックスは「PCI-Eスイッチ」として働き、上流ノードを各下流ノードと相互接続して、カプセル化されたパケット(内部はPCI-Eパケットである)を転送する。全体の通信プロセスを通じて、上流ノードは下流ノードを通常のローカルPCI-Eデバイスとして扱う。The present invention relates generally to the technical fields of networking and computer architecture, and more particularly to techniques for configuring a system that includes a software defined network (SDN) box, at least one upstream node, and a plurality of downstream nodes. is there. The nodes can be divided into several groups. Each group has a single upstream node and at least one downstream node. All packets between upstream and downstream nodes are forwarded by the SDN box. The SDN box acts as a “PCI-E switch”, interconnects the upstream node with each downstream node, and forwards the encapsulated packet (internally a PCI-E packet). Throughout the entire communication process, the upstream node treats the downstream node as a normal local PCI-E device.

Description

本発明は、一般にネットワーキングおよびコンピュータアーキテクチャの技術分野に関し、より詳細には、ソフトウェア定義ネットワーク(SDN)ボックス、上流ノードおよび下流ノードから成るシステムを構成する手法に関するものである。   The present invention relates generally to the technical fields of networking and computer architecture, and more particularly to techniques for constructing a system consisting of a software defined network (SDN) box, an upstream node, and a downstream node.

PCI-E(周辺装置相互接続エクスプレス)は、コンピュータシステムにおいて周辺デバイスを相互接続するのに用いられる第3世代の高性能I/Oバスである。PCI-Eは、PCIと称される前世代のI/Oバスと同一の用法モデルを採用する。PCI-Eは、メモリのリード/ライト、I/Oのリード/ライトおよびコンフィギュレーションのリード/ライトのトランザクションなどのよく知られているトランザクションをサポートする。既存のOSおよびデバイスドライバは、PCI-Eシステムにおいて変更なしで動作することができる(PCI-Eに関する詳細は、Ravi Budruk、Don Anderson、Tom Shanleyによる、Addison- Wesley Professional、2004年の「PCI Express system architecture」を参照されたい)。   PCI-E (Peripheral Device Interconnect Express) is a third generation high performance I / O bus used to interconnect peripheral devices in a computer system. PCI-E uses the same usage model as the previous generation I / O bus called PCI. PCI-E supports well-known transactions such as memory read / write, I / O read / write, and configuration read / write transactions. Existing OS and device drivers can work without modification on PCI-E systems (for more information on PCI-E, see Ravi Budruk, Don Anderson, Tom Shanley, Addison-Wesley Professional, 2004 PCI Express see system architecture).

サーバの中にそれほどスペースがないので、PCI-Eスロットの数は通常制限されている。上記の問題に取り組むためにExpEther(Express Ethernet、http://www.expether.org/を参照されたい)が提案されている。ExpEtherは、PCI-Eをイーサネットにわたって拡張する。PCI-Eパケットは、PCI-Eパケットの送り手側においてPCI-E-over-Ethernetパケットにカプセル化され、次いで、イーサネットスイッチによって転送されて、送付先へ転送されたときPCI-Eパケットへとデカプセル化(カプセル開放)される(特開(Japanese Unexamined Patent Application)公開公報(First Publication)第2007-219873A号を参照されたい)。   Because there is not much space in the server, the number of PCI-E slots is usually limited. ExpEther (Express Ethernet, see http://www.expether.org/) has been proposed to address the above issues. ExpEther extends PCI-E over Ethernet. The PCI-E packet is encapsulated in a PCI-E-over-Ethernet packet at the sender side of the PCI-E packet, then forwarded by the Ethernet switch and into the PCI-E packet when forwarded to the destination. Decapsulated (open capsule) (see Japanese Publication Patent Application No. 2007-219873A).

特定のタイプのパケットが、ExpEtherにおけるキープアライブメッセージとして働くようにブロードキャストされる。それに関連したタイムアウト値がある。タイムアウトが期限切れになり、依然として、そのような受信したキープアライブパケットがなければ、上流のノードが既に運転停止していると推断される。一旦、障害が検知されると、接続されている下流のノードは、できるだけ早く別の利用可能な上流のノードに移管されるべきである。   Certain types of packets are broadcast to act as keep alive messages in ExpEther. There is a timeout value associated with it. If the timeout expires and there is still no such received keepalive packet, it is assumed that the upstream node has already been shut down. Once a failure is detected, the connected downstream node should be transferred to another available upstream node as soon as possible.

特開2007-219873号公報JP 2007-219873

「PCI Express system architecture」、by Ravi Budruk、Don Anderson、Tom Shanley、Addison- Wesley Professional、2004年"PCI Express system architecture", by Ravi Budruk, Don Anderson, Tom Shanley, Addison- Wesley Professional, 2004 Express Ethernet、http://www.expether.org/Express Ethernet, http://www.expether.org/ OpenFlow、https://www.opennetworking.org/sdn-resources/onf-specifications/openflowOpenFlow, https://www.opennetworking.org/sdn-resources/onf-specifications/openflow

現在のExpEtherでは、高速の故障検知を達成するのは困難である。故障検知がより高速になればキープアライブパケットのタイムアウト値がより短くなるので、ブロードキャストのトラフィックがより多くなる。ブロードキャストのトラフィックがより多くなれば、ネットワークデバイスの処理量が増加する。   With the current ExpEther, it is difficult to achieve high-speed failure detection. The faster the failure detection, the shorter the keep-alive packet time-out value, and thus the more broadcast traffic. The more broadcast traffic, the greater the processing capacity of the network device.

本発明は、上記の高速の障害検知およびExpEtherのハンドオーバの問題を解決するために提案されるものである。本発明は、PCI-E、イーサネットおよびSDNに基づくシステムを構成する方法を提供する。提案されるシステムは、上流ノード、下流ノードおよびSDNボックスから成るものである。   The present invention is proposed to solve the above-described problems of high-speed failure detection and ExpEther handover. The present invention provides a method for configuring a system based on PCI-E, Ethernet and SDN. The proposed system consists of an upstream node, a downstream node and an SDN box.

提案される本発明のシステムでは、上流ノードと下流ノードの両方にカプセル化/デカプセル化モジュールがある。上流ノード(CPU、メモリ、ハードディスクおよび様々なI/Oデバイスから成り得る)はコンピュータシステムとして作用し、下流ノードはPCI-Eデバイスとして作用し、これらはSDNボックスによって接続されている。上流ノードはPCI-Eパケットによって下流ノードにアクセスする。上流ノードと下流ノードの両方にとって、通信プロセスは以下の通りである。PCI-Eパケットを送信するときは、PCI-Eパケットを特定のパケットヘッダとともにカプセル化して、ネットワーク(たとえば、それだけではないがイーサネット)によって送信する。カプセル化されたパケットを受信するときは、特定のパケットヘッダを除去し、それをPCI-Eパケットへとデカプセル化する。SDNボックスは「PCI-Eスイッチ」として働き、特定のネットワークを介して上流ノードと下流ノードを相互接続して、カプセル化されたパケットを転送する。   In the proposed system of the present invention, there is an encapsulation / decapsulation module at both the upstream and downstream nodes. The upstream node (which can consist of a CPU, memory, hard disk and various I / O devices) acts as a computer system, and the downstream node acts as a PCI-E device, which are connected by an SDN box. The upstream node accesses the downstream node by a PCI-E packet. For both upstream and downstream nodes, the communication process is as follows. When transmitting a PCI-E packet, the PCI-E packet is encapsulated with a specific packet header and transmitted over a network (eg, Ethernet, but not limited to it). When receiving an encapsulated packet, it removes the specific packet header and decapsulates it into a PCI-E packet. The SDN box acts as a “PCI-E switch” and interconnects the upstream and downstream nodes via a specific network to transfer the encapsulated packets.

提案される本発明のシステムでは、上流ノードが運転停止したとき、SDNボックスに対して通知が配送されることになる(SDNボックスはOpenFlow(https://www.opennetworking.org/sdn-resources/onf-specifications/openflowを参照されたい)によって実施され得るが、それだけではない。OpenFlowが用いられると、上流ノードが運転停止したとき、OFPPS_LINK_DOWNメッセージがOpenFlowスイッチからOpenFlowコントローラへ送信されることになる)。その上、SDNボックス上にPCI-Eのルーティング表が維持され、接続されている下流ノードのグループIDを変更することにより、ハンドオーバも達成され得る。   In the proposed system of the present invention, when an upstream node is shut down, a notification is delivered to the SDN box (the SDN box is openFlow (https://www.opennetworking.org/sdn-resources/ (See onf-specifications / openflow), but that is not the case. When OpenFlow is used, when an upstream node goes down, an OFPPS_LINK_DOWN message will be sent from the OpenFlow switch to the OpenFlow controller) . Moreover, a PCI-E routing table is maintained on the SDN box, and handover can be achieved by changing the group ID of the connected downstream node.

前述の、また他の、例示の目的、態様、および利点を説明するために、図面を参照しながら本発明の例示的実施形態の以下の詳細な説明を用いることにする。   To illustrate the foregoing and other illustrative purposes, aspects, and advantages, the following detailed description of exemplary embodiments of the invention will be used with reference to the drawings.

SDNボックス、少なくとも1つの上流ノードおよび少なくとも1つの下流ノードを有するコンピュータシステムのシステムアーキテクチャの一実施形態を示すブロック図である。FIG. 2 is a block diagram illustrating one embodiment of a system architecture of a computer system having an SDN box, at least one upstream node and at least one downstream node. 少なくとも1つのソフトウェア定義スイッチ(SDスイッチ)と少なくとも1つのソフトウェア定義スイッチのコントローラ(SDSWコントローラ)とから成るSDNボックスに基づく、可能な実装形態のうちの1つのシステムアーキテクチャの一実施形態を示すブロック図である。A block diagram illustrating one embodiment of one of the possible system architectures based on an SDN box consisting of at least one software defined switch (SD switch) and at least one software defined switch controller (SDSW controller) It is. 少なくとも1つのソフトウェア定義スイッチ(SDスイッチ)と少なくとも1つのソフトウェア定義スイッチのコントローラ(SDSWコントローラ)とから成るSDNボックスに基づく、可能な実装形態のうちの1つのシステムアーキテクチャの一実施形態を示すブロック図である。A block diagram illustrating one embodiment of one of the possible system architectures based on an SDN box consisting of at least one software defined switch (SD switch) and at least one software defined switch controller (SDSW controller) It is. 上流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。FIG. 2 is a block diagram illustrating one embodiment of an upstream node system architecture. 下流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。FIG. 2 is a block diagram illustrating one embodiment of a downstream node system architecture. ソフトウェア定義(SD)スイッチのシステムアーキテクチャの一実施形態を示すブロック図である。FIG. 2 is a block diagram illustrating one embodiment of a system architecture for software defined (SD) switches. ソフトウェア定義スイッチのコントローラ(SDSWコントローラ)のシステムアーキテクチャの一実施形態を示すブロック図である。It is a block diagram which shows one Embodiment of the system architecture of the controller (SDSW controller) of a software definition switch. DEVINFOパケットの可能なパケットフォーマットの一実施形態を示す表である。6 is a table illustrating one embodiment of possible packet formats for DEVINFO packets. 上流ノード、SDNボックスおよび下流ノードの間のメモリのリード/ライトのシーケンス図である。FIG. 11 is a sequence diagram of memory read / write between an upstream node, an SDN box, and a downstream node. 上流ノードまたは下流ノードがPCI-Eパケットを送出するやり方の一実施形態を示す流れ図である。6 is a flow diagram illustrating one embodiment of how an upstream node or downstream node sends a PCI-E packet. 上流ノードまたは下流ノードがPCI-Eパケットを受信するやり方の一実施形態を示す流れ図である。3 is a flow diagram illustrating one embodiment of how an upstream node or downstream node receives a PCI-E packet. SDスイッチがイーサネットパケットを処理するやり方の一実施形態を示す流れ図である。2 is a flow diagram illustrating one embodiment of how an SD switch processes an Ethernet packet. SDSWコントローラが、システムの起動中にマスタトランザクションレイヤパケット(TLP)のルーティング表をセットアップするやり方、およびパケット転送のプロセス中にSDスイッチと通信するやり方の一実施形態を示す流れ図である。2 is a flow diagram illustrating one embodiment of how the SDSW controller sets up a master transaction layer packet (TLP) routing table during system startup and communicates with the SD switch during the packet transfer process. 基礎をなすネットワークがイーサネットであるとき、SDスイッチに対するスレーブTLPルーティング表およびSDSWコントローラに対するマスタTLPルーティング表として用いられるTLPルーティング表の可能なデータ構造の一実施形態を示す表である。FIG. 6 is a table illustrating one embodiment of possible data structures for a TLP routing table used as a slave TLP routing table for an SD switch and a master TLP routing table for an SDSW controller when the underlying network is Ethernet. 上流ノード、SDNボックスおよび下流ノードの間の障害検知およびハンドオーバのシーケンス図である。It is a sequence diagram of failure detection and handover between an upstream node, an SDN box, and a downstream node.

以下の説明では、本発明の好ましい一実施形態が、好ましい処理ステップおよびデータ構造に関して説明される。   In the following description, a preferred embodiment of the present invention will be described with respect to preferred processing steps and data structures.

<システムの構成要素>
図1は、ソフトウェア定義ネットワーク(SDN)ボックス106、上流ノード101および104ならびに下流ノード102、103および105を有するコンピュータシステムのシステムアーキテクチャの一実施形態を示すブロック図である。各構成要素は、ネットワーク(それだけではないが、たとえばイーサネット)によって接続されている。一般に、システムには少なくとも1つのグループがある。図1には2つのグループがある。1つのグループは、上流ノード101および下流ノード102および下流ノード103から成る。他のグループは上流ノード104および下流ノード105から成る。各グループに、単一の上流ノードと、少なくとも1つの下流ノードとがある。上流ノードと下流ノードの間のすべてのパケットはSDNボックスによって転送される。
<System components>
FIG. 1 is a block diagram illustrating one embodiment of a system architecture of a computer system having a software defined network (SDN) box 106, upstream nodes 101 and 104, and downstream nodes 102, 103 and 105. As shown in FIG. Each component is connected by a network (not just Ethernet, for example). In general, there is at least one group in the system. There are two groups in Figure 1. One group includes an upstream node 101, a downstream node 102, and a downstream node 103. The other group consists of upstream node 104 and downstream node 105. Each group has a single upstream node and at least one downstream node. All packets between upstream and downstream nodes are forwarded by the SDN box.

<可能な実装形態のシステムアーキテクチャ>
図2Aおよび図2Bは、SDNボックスが少なくとも1つのソフトウェア定義スイッチ(SDスイッチ)と少なくとも1つのソフトウェア定義スイッチのコントローラ(SDSWコントローラ)とから成る、1つの可能な実装形態のシステムアーキテクチャの一実施形態を示すブロック図である。
<System architecture of possible implementations>
2A and 2B illustrate one embodiment of a system architecture of one possible implementation where the SDN box consists of at least one software defined switch (SD switch) and at least one software defined switch controller (SDSW controller). FIG.

図2Aにおいて、SDNボックス206はSDスイッチ208およびSDSWコントローラ207から成る。SDスイッチ208とSDSWコントローラ207の間に通信チャネルがある。上流ノードと下流ノードは2つのグループに分割され得て、各グループは単一の上流ノードおよび少なくとも1つの下流ノードから成る。上流ノード201ならびに2つの下流ノード202および203は、それぞれSDスイッチ208の第1のポート(#1)、第2のポート(#2)および第3のポート(#3)に接続されている。上流ノード204および下流ノード205は、それぞれSDスイッチ208の第4のポート(#4)および第5のポート(#5)に接続されている。   In FIG. 2A, the SDN box 206 includes an SD switch 208 and an SDSW controller 207. There is a communication channel between the SD switch 208 and the SDSW controller 207. The upstream node and the downstream node can be divided into two groups, each group consisting of a single upstream node and at least one downstream node. The upstream node 201 and the two downstream nodes 202 and 203 are connected to the first port (# 1), the second port (# 2), and the third port (# 3) of the SD switch 208, respectively. The upstream node 204 and the downstream node 205 are connected to the fourth port (# 4) and the fifth port (# 5) of the SD switch 208, respectively.

図2Bにおいて、SDNボックス206は、SDスイッチ208、209、211および212、ならびにSDSWコントローラ207および210から成る。SDSWコントローラ207とSDスイッチ208の間、およびSDSWコントローラ207とSDスイッチ209の間にそれぞれ通信チャネルがある。さらに、SDSWコントローラ210とSDスイッチ211の間、およびSDSWコントローラ210とSDスイッチ212の間にもそれぞれ通信チャネルがある。上流ノードと下流ノードは2つのグループに分割され得て、各グループは単一の上流ノードおよび少なくとも1つの下流ノードから成る。上流ノード201ならびに2つの下流ノード202および203が1つのグループに属し、上流ノード204および下流ノード205が別のグループに属する。   In FIG. 2B, the SDN box 206 comprises SD switches 208, 209, 211 and 212, and SDSW controllers 207 and 210. There are communication channels between the SDSW controller 207 and the SD switch 208, and between the SDSW controller 207 and the SD switch 209, respectively. Further, there are communication channels between the SDSW controller 210 and the SD switch 211 and between the SDSW controller 210 and the SD switch 212, respectively. The upstream node and the downstream node can be divided into two groups, each group consisting of a single upstream node and at least one downstream node. The upstream node 201 and the two downstream nodes 202 and 203 belong to one group, and the upstream node 204 and the downstream node 205 belong to another group.

図2Aおよび図2Bにおいて、すべてのSDスイッチが、(それだけではないが)たとえばイーサネットといった特定のネットワークによって接続されている。SDSWコントローラとSDスイッチの間の通信は、(それだけではないが)たとえばOpenFlowといった特定のプロトコルにおけるものである。   In FIGS. 2A and 2B, all SD switches are connected by a specific network, such as, but not limited to, Ethernet. The communication between the SDSW controller and the SD switch is (but not only) in a specific protocol such as OpenFlow.

図3は、上流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。一般に、コンピュータシステムは、CPU、メモリ、ハードディスクおよび様々なI/Oデバイスから成る。システムアーキテクチャについてより明瞭に説明するために、ここではその他の構成要素が省略されている。上流ノード301は、少なくとも中央処理装置(CPU)302、カプセル化/デカプセル化(ENCAP/DECAP)モジュール303およびネットワークインターフェースカード(NIC)304から成る。CPU 302は、基本的動作、算術演算、論理演算、およびシステムの入出力動作を遂行することにより、コンピュータプログラムの命令を実行するハードウェア構成要素である。NIC 304は、上流ノード301を、SDNボックスが配置されているネットワークに接続するハードウェア構成要素である。カプセル化/デカプセル化モジュール303は、通信プロセス中の、PCI-Eパケットのカプセル化と、受信したカプセル化されたパケットのデカプセル化とを担当している。CPU 302とカプセル化/デカプセル化モジュール303は論理的に接続されており、カプセル化/デカプセル化モジュール303とNIC 304はそれぞれ接続されている。言い換えれば、接続するやり方は制限されず、(それだけではないが)たとえばPCI-Eバスプロトコルといったハードウェアのやり方、または任意のソフトウェアのやり方のいずれかでよい。   FIG. 3 is a block diagram illustrating one embodiment of an upstream node system architecture. In general, a computer system consists of a CPU, memory, hard disk and various I / O devices. Other components are omitted here for a clearer description of the system architecture. The upstream node 301 includes at least a central processing unit (CPU) 302, an encapsulation / decapsulation (ENCAP / DECAP) module 303, and a network interface card (NIC) 304. The CPU 302 is a hardware component that executes instructions of a computer program by performing basic operations, arithmetic operations, logical operations, and system input / output operations. The NIC 304 is a hardware component that connects the upstream node 301 to a network in which the SDN box is arranged. The encapsulation / decapsulation module 303 is responsible for the encapsulation of the PCI-E packet and the decapsulation of the received encapsulated packet during the communication process. The CPU 302 and the encapsulation / decapsulation module 303 are logically connected, and the encapsulation / decapsulation module 303 and the NIC 304 are respectively connected. In other words, the manner of connection is not limited and may be (but not limited to) either a hardware manner such as the PCI-E bus protocol or any software manner.

図4は、下流ノードのシステムアーキテクチャの一実施形態を示すブロック図である。下流ノードはCPU、メモリ、ハードディスクおよび様々なデバイスから成り得る。システムアーキテクチャについてより明瞭に説明するために、ここではその他の構成要素が省略されている。下流ノード401は、少なくともメモリ402、カプセル化/デカプセル化(ENCAP/DECAP)モジュール403およびネットワークインターフェースカード(NIC)404から成る。NIC 404は、下流ノード401を、SDNボックスが配置されているネットワークに接続するハードウェア構成要素である。カプセル化/デカプセル化モジュール403は、通信プロセス中の、PCI-Eパケットのカプセル化と、受信したカプセル化されたパケットのデカプセル化とを担当している。メモリ402とカプセル化/デカプセル化モジュール403は接続されており、カプセル化/デカプセル化モジュール403とNIC 404は、それぞれ論理的に接続されている。言い換えれば、接続するやり方は制限されず、(それだけではないが)たとえばPCI-Eバスプロトコルといったハードウェアのやり方、または任意のソフトウェアのやり方のいずれかでよい。   FIG. 4 is a block diagram illustrating one embodiment of a downstream node system architecture. Downstream nodes can consist of CPU, memory, hard disk and various devices. Other components are omitted here for a clearer description of the system architecture. The downstream node 401 includes at least a memory 402, an encapsulation / decapsulation (ENCAP / DECAP) module 403, and a network interface card (NIC) 404. The NIC 404 is a hardware component that connects the downstream node 401 to a network in which the SDN box is arranged. The encapsulation / decapsulation module 403 is responsible for the encapsulation of the PCI-E packet and the decapsulation of the received encapsulated packet during the communication process. The memory 402 and the encapsulation / decapsulation module 403 are connected, and the encapsulation / decapsulation module 403 and the NIC 404 are logically connected. In other words, the manner of connection is not limited and may be (but not limited to) either a hardware manner such as the PCI-E bus protocol or any software manner.

<SDNボックス内のパケット処理>
図5は、ソフトウェア定義(SD)スイッチのシステムアーキテクチャの一実施形態を示すブロック図である。SDスイッチ501は、少なくともRecvDモジュール502、SendDモジュール503、SendC(制御プレーンに送信する)モジュール504、RecvC(制御プレーンから受信する)モジュール509、デカプセル化(DECAP)モジュール505、カプセル化(ENCAP)モジュール506、パケットバッファ(PKT BUFFER)モジュール507およびスレーブトランザクションレイヤパケット(TLP)ルーティング表操作モジュール508から成る。RecvDモジュール502は、上流ノードおよび下流ノードからの受信を担当している。SendDモジュール503は上流ノードおよび下流ノードへの送信を担当している。RecvCモジュール509はSDSWコントローラからの受信を担当している。SendCモジュール504はSDSWコントローラへの送信を担当している。デカプセル化モジュール505は、カプセル化されたパケットをPCI-Eパケットへとデカプセル化する。カプセル化モジュール506はPCI-Eパケットをカプセル化する。パケットバッファモジュール507はパケットのバッファリングを担当している。TLPルーティング表操作モジュール508は、新規のスレーブTLPルーティング表の項目を生成して挿入することができ、スレーブTLPルーティング表の検索機能をサポートする。
<Packet processing in SDN box>
FIG. 5 is a block diagram illustrating one embodiment of a software-defined (SD) switch system architecture. The SD switch 501 includes at least a RecvD module 502, a SendD module 503, a SendC (send to the control plane) module 504, a RecvC (receive from the control plane) module 509, a decapsulation (DECAP) module 505, and an encapsulation (ENCAP) module. 506, a packet buffer (PKT BUFFER) module 507, and a slave transaction layer packet (TLP) routing table manipulation module 508. The RecvD module 502 is in charge of reception from the upstream node and the downstream node. The SendD module 503 is in charge of transmission to the upstream node and the downstream node. RecvC module 509 is in charge of reception from the SDSW controller. The SendC module 504 is in charge of transmission to the SDSW controller. The decapsulation module 505 decapsulates the encapsulated packet into a PCI-E packet. The encapsulation module 506 encapsulates the PCI-E packet. The packet buffer module 507 is in charge of packet buffering. The TLP routing table manipulation module 508 can generate and insert new slave TLP routing table entries, and supports a slave TLP routing table search function.

図6は、ソフトウェア定義スイッチのコントローラ(SDSWコントローラ)のシステムアーキテクチャの一実施形態を示すブロック図である。SDSWコントローラは、少なくともRecvSWモジュール602、SendSWモジュール603、マスタTLPルーティング表操作モジュール604、およびmsgパーサモジュール605から成る。RecvSWモジュール602はSDスイッチからの受信を担当している。SendSWモジュール603はSDスイッチへの送信を担当している。マスタTLPルーティング表操作モジュール604は、新規のマスタTLPルーティング表の項目を生成して挿入することができ、マスタTLPルーティング表の検索機能をサポートする。msgパーサモジュール605が抽出する情報は、1)ノードID(ノードの固有のID)と、2)ノードのタイプ(上流ノードまたは下流ノード)と、3)各ノードの(上流または下流の)送付先アドレスと、4)ノードに接続されているSDスイッチの(上流または下流の)ポート番号と、5)グループに対して用いられるVLANタグ(基礎をなすネットワークがイーサネットであるときのみ必要)と、6)図13に示される、受信したパケットからのTLPルーティングID(TLPルーティングの固有のID)とを含む。   FIG. 6 is a block diagram illustrating an embodiment of a system architecture of a controller (SDSW controller) for a software defined switch. The SDSW controller includes at least a RecvSW module 602, a SendSW module 603, a master TLP routing table manipulation module 604, and a msg parser module 605. RecvSW module 602 is in charge of reception from the SD switch. The SendSW module 603 is in charge of transmission to the SD switch. The master TLP routing table manipulation module 604 can generate and insert new master TLP routing table items, and supports a master TLP routing table search function. The information extracted by the msg parser module 605 includes 1) node ID (node unique ID), 2) node type (upstream node or downstream node), and 3) destination (upstream or downstream) of each node. Address, 4) port number of the SD switch connected to the node (upstream or downstream), 5) VLAN tag used for the group (required only if the underlying network is Ethernet), 6 ) And a TLP routing ID (a unique ID of the TLP routing) from the received packet shown in FIG.

SDNボックスは、少なくとも1つのSDSWコントローラおよび少なくとも1つのSDスイッチから成る。全体の処理プロセスは以下の通りである。カプセル化されたパケット(その内部のパケットはPCI-Eパケットである)がSDスイッチ501のRcevDモジュール502によって受信されると、デカプセル化モジュール505によってPCI-Eパケットへとデカプセル化され、それからTLPルーティングIDが抽出される。次いで、スレーブTLPルーティング表操作モジュール508が、抽出されたTLPルーティングIDに基づいてスレーブTLPルーティング表を回復することになる。
> 見つからない場合には、パケットはパケットバッファモジュール507においてバッファリングされ、次いで、クエリパケット(TLPルーティングID、ノードタイプ、ノードID、ならびに図13に示されるような他の関連情報を含有している)が、クエリ(SendC)モジュール504によってSDSWコントローラ601へ送信されることになる。SDSWコントローラ601の側において、クエリが、受信(RecvSW)モジュール602によって受信される。SDSWコントローラ601のマスタTLPルーティング表は、マスタTLPルーティング表操作モジュール604によって、TLPルーティングIDに基づいてさらに回復されることになる。
◇ 見つからない場合には、SDSWコントローラ601のマスタTLPルーティング表操作モジュール604は、msgパーサモジュール605によって抽出された情報に基づいて、1)ノードID(ノードの固有のID)と、2)ノードのタイプ(上流ノードまたは下流ノード)と、3)各ノードの(上流または下流の)送付先アドレスと、4)ノードに接続されているSDスイッチの(上流または下流の)ポート番号と、5)グループに対して用いられるVLANタグ(基礎をなすネットワークがイーサネットであるときのみ必要)と、6)図13に示されるTLPルーティングID(TLPルーティングの固有のID)とを含む新規の表項目を生成することになる。次いで、それがマスタTLPルーティング表に挿入される。SDSWコントローラ601の送信(SendSW)モジュール603は、PCI-E-over-EthernetパケットをブロードキャストするようにSDスイッチ501に通知することになる。
◇ 見つかった場合には、SDSWコントローラ601の送信(SendSW)モジュール603は、カプセル化されたPCI-Eパケットを、回復された送付先アドレスに従って転送するようにSDスイッチ501に通知することになる。この通知はRecvCモジュール509において処理され、同一の新規の表項目が、SDスイッチ501のスレーブTLPルーティング表操作モジュール508によって、スレーブTLPルーティング表に挿入される。
> 見つかった場合には、PCI-Eパケットは、カプセル化モジュール506によってカプセル化パケットヘッダとともにカプセル化されることになり、カプセル化パケットヘッダは、スレーブTLPルーティング表操作モジュール508によって戻される送付先アドレスとして回復されたアドレスで満たされている。
The SDN box consists of at least one SDSW controller and at least one SD switch. The overall processing process is as follows. When an encapsulated packet (its internal packet is a PCI-E packet) is received by the RcevD module 502 of the SD switch 501, it is decapsulated into a PCI-E packet by the decapsulation module 505 and then TLP routing ID is extracted. Then, the slave TLP routing table manipulation module 508 will recover the slave TLP routing table based on the extracted TLP routing ID.
> If not found, the packet is buffered in the packet buffer module 507 and then contains the query packet (TLP routing ID, node type, node ID, and other relevant information as shown in FIG. 13 ) Is transmitted to the SDSW controller 601 by the query (SendC) module 504. On the SDSW controller 601 side, the query is received by a receive (RecvSW) module 602. The master TLP routing table of the SDSW controller 601 will be further recovered by the master TLP routing table manipulation module 604 based on the TLP routing ID.
◇ If not found, the master TLP routing table manipulation module 604 of the SDSW controller 601 determines 1) the node ID (node unique ID) and 2) the node's ID based on the information extracted by the msg parser module 605. Type (upstream node or downstream node), 3) destination address (upstream or downstream) of each node, 4) port number (upstream or downstream) of the SD switch connected to the node, and 5) group Create a new table entry that includes the VLAN tag used for the (required only if the underlying network is Ethernet) and 6) the TLP routing ID shown in Figure 13 (a unique ID for TLP routing) It will be. It is then inserted into the master TLP routing table. The transmission (SendSW) module 603 of the SDSW controller 601 notifies the SD switch 501 to broadcast the PCI-E-over-Ethernet packet.
If found, the send (SendSW) module 603 of the SDSW controller 601 notifies the SD switch 501 to transfer the encapsulated PCI-E packet according to the recovered destination address. This notification is processed in the RecvC module 509, and the same new table entry is inserted into the slave TLP routing table by the slave TLP routing table manipulation module 508 of the SD switch 501.
> If found, the PCI-E packet will be encapsulated by the encapsulation module 506 along with the encapsulated packet header, and the encapsulated packet header will be sent to the destination address returned by the slave TLP routing table manipulation module 508. As filled with recovered addresses.

<DEVINFOパケットフォーマット>
上流ノードと下流ノードの間の全体の通信プロセス中、2種類のパケットが用いられる。一方はPCI-Eパケットであり、メモリのリード/ライト、I/Oのリード/ライト、コンフィグのリード/ライトの動作中に用いられる。他方は、本発明において新しく定義された、DEVINFOパケットと称されるものである。DEVINFOパケットは、1)上流ノードと下流ノードの間の通信を開始すること、および、2)一定間隔で周期的に、上流ノードと下流ノードに互いの存続を気付かせること、のために用いられる。DEVINFOのパケットフォーマットは、(それだけではないが)少なくとも、1)ノードID(ノードの固有のID)と、2)ノードのタイプ(上流ノードまたは下流ノード)と、3)(上流または下流の)ノードのソースアドレスと、4)TLPルーティングID(TLPルーティングにおいて用いられる固有のID)とのデータフィールドを含有している。図7は、DEVINFOパケットのパケットフォーマットの可能な定義の一実施形態を示す表である。
<DEVINFO packet format>
Two types of packets are used during the entire communication process between the upstream and downstream nodes. One is a PCI-E packet, which is used during memory read / write, I / O read / write, and config read / write operations. The other is a DEVINFO packet newly defined in the present invention. DEVINFO packets are used for 1) initiating communication between upstream and downstream nodes, and 2) periodically making upstream and downstream nodes aware of each other's existence at regular intervals. . The packet format of DEVINFO is (but not only) at least 1) node ID (node unique ID), 2) node type (upstream node or downstream node), and 3) node (upstream or downstream) Data field of 4) TLP routing ID (unique ID used in TLP routing). FIG. 7 is a table illustrating one embodiment of possible definitions of the packet format of the DEVINFO packet.

<上流ノードと下流ノードの間の通信>
図8は、上流ノード801、SDNボックス802および下流ノード803の間のメモリのリード/ライトのシーケンス図である(I/Oのリード/ライトおよびコンフィグのリード/ライトのプロセスは同一のシーケンスを辿るので省略されている)。通信プロセスは以下の通りである。
(1)上流ノード801は、下流ノード803のメモリにアクセスするとき(たとえばメモリのリード/ライト動作)、PCI-Eパケットを送信する。ステップ804において、PCI-Eパケットは、カプセル化/デカプセル化モジュール303によってパケットヘッダとともにカプセル化されて、NIC 304から送出される。
(2)カプセル化されたパケットが、SDNボックス802におけるSDスイッチの特定のポートに到達する。ステップ805において、カプセル化されたパケットがデカプセル化され、次いで、ステップ806においてそれらの内部情報が抽出される。次いで、ステップ807において、デカプセル化されたパケットがカプセル化されて下流ノード803へ転送される。
(3)カプセル化されたパケットは、下流ノード803において受信されると、ステップ808においてPCI-Eパケットへとデカプセル化される。
<Communication between upstream and downstream nodes>
FIG. 8 is a sequence diagram of memory read / write between the upstream node 801, the SDN box 802, and the downstream node 803 (I / O read / write and config read / write processes follow the same sequence. So it is omitted). The communication process is as follows.
(1) The upstream node 801 transmits a PCI-E packet when accessing the memory of the downstream node 803 (for example, read / write operation of the memory). In step 804, the PCI-E packet is encapsulated with a packet header by the encapsulation / decapsulation module 303 and sent out from the NIC 304.
(2) The encapsulated packet reaches a specific port of the SD switch in the SDN box 802. In step 805, the encapsulated packets are decapsulated, and then in step 806 their internal information is extracted. Next, in step 807, the decapsulated packet is encapsulated and transferred to the downstream node 803.
(3) When the encapsulated packet is received by the downstream node 803, it is decapsulated into a PCI-E packet at step 808.

下流ノードから上流ノードへの通信プロセス(たとえばメモリリードの結果に対する返答)は、上記のステップと同一である。図は省略されている。   The communication process from the downstream node to the upstream node (for example, a response to the result of the memory read) is the same as the above steps. The figure is omitted.

図9は、上流ノードまたは下流ノードがPCI-Eパケットを送出するやり方の一実施形態を示す流れ図である。
(1)ノード(上流ノードまたは下流ノードのいずれか)がステップ901においてパケットを送出しようとするとき、ステップ902においてそれがDEVINFOパケットであれば、ステップ903において、(カプセル化パケットヘッダの)送付先アドレスはブロードキャストアドレスでなければならない。
(2)送付先アドレスがブロードキャストアドレスでなければ、それは必ずPCI-Eパケットであり、(カプセル化パケットヘッダにおける)送付先アドレスは所定のフォーマットでなければならず、ステップ904においてSDスイッチによって認識され得る。
(3)最終的に、パケットは外側のパケットヘッダとともにカプセル化され、送付先アドレスはステップ903およびステップ904から生じる。外側のパケットヘッダのタイプは、基礎をなすネットワークに依拠するものである。たとえば基礎をなすネットワークがイーサネットであれば、イーサネットのパケットヘッダが外側のパケットヘッダとして追加されてステップ905で送出される。
FIG. 9 is a flow diagram illustrating one embodiment of how upstream or downstream nodes send PCI-E packets.
(1) When a node (either upstream node or downstream node) tries to send a packet in step 901, if it is a DEVINFO packet in step 902, in step 903, the destination (in the encapsulated packet header) The address must be a broadcast address.
(2) If the destination address is not a broadcast address, it must be a PCI-E packet, and the destination address (in the encapsulated packet header) must be in a predetermined format and is recognized by the SD switch in step 904. obtain.
(3) Finally, the packet is encapsulated with the outer packet header and the destination address comes from step 903 and step 904. The outer packet header type is dependent on the underlying network. For example, if the underlying network is Ethernet, an Ethernet packet header is added as an outer packet header and sent in step 905.

図10は、上流ノードまたは下流ノードがカプセル化されたパケットを受信するやり方の一実施形態を示す流れ図である。
(1)ステップ1001において、カプセル化されたパケットを受信すると、ステップ1002において、パケットがPCI-Eパケットへとデカプセル化されることになる。
FIG. 10 is a flow diagram illustrating one embodiment of how upstream or downstream nodes receive encapsulated packets.
(1) When an encapsulated packet is received in step 1001, the packet is decapsulated into a PCI-E packet in step 1002.

図11は、SDスイッチが、カプセル化されたパケットを処理するやり方の一実施形態を示す流れ図である。SDスイッチのプロセスは以下の通りである。
(1)ステップ1101において、SDSWコントローラからのパケットがなければ、ステップ1104において、パケットが特定のカプセル化されたパケットに属するものであるかどうかチェックされる。パケットが特定のカプセル化されたパケットに属するものでなければ、ステップ1105において、パケットは他のパケットのルーチンにおいてさらに処理されることになる。
(2)パケットが上流ノードまたは下流ノードからのカプセル化されたパケットであれば、ステップ1106において、そのTLPルーティングIDが抽出され、それに基づいてスレーブTLPルーティング表が回復されることになる。見つからない場合には、ステップ1108においてパケットがバッファリングされ、SDSWコントローラに対してクエリ要求が送信される。見つかった場合には、ステップ1107において、パケットが、回復されたアドレスを送付先アドレスとして満たされたカプセル化ヘッダとともにカプセル化されて送出されることになる。
(3)ステップ1101において、SDSWコントローラから受信したパケットがある場合、ステップ1102において、搬送されるTLPルーティング情報が抽出され、ステップ1103において、スレーブルーティング表に新規の表項目を追加する。次いで、ステップ1107において、以前のバッファリングされたパケットがさらに処理されることになる(パケットをカプセル化し、回復された送付先アドレスを満たして、それを送信する)。
FIG. 11 is a flow diagram illustrating one embodiment of how the SD switch processes encapsulated packets. The SD switch process is as follows.
(1) If there is no packet from the SDSW controller in step 1101, it is checked in step 1104 whether the packet belongs to a particular encapsulated packet. If the packet does not belong to a particular encapsulated packet, then in step 1105, the packet will be further processed in another packet routine.
(2) If the packet is an encapsulated packet from an upstream node or a downstream node, the TLP routing ID is extracted in step 1106, and the slave TLP routing table is recovered based on the extracted TLP routing ID. If not found, the packet is buffered in step 1108 and a query request is sent to the SDSW controller. If found, in step 1107, the packet is encapsulated and sent out with an encapsulated header filled with the recovered address as the destination address.
(3) If there is a packet received from the SDSW controller in step 1101, the transported TLP routing information is extracted in step 1102, and a new table item is added to the slave routing table in step 1103. Then, in step 1107, the previous buffered packet will be further processed (encapsulate the packet, fill the recovered destination address and send it).

図12は、SDSWコントローラが、SDスイッチからのクエリ要求を処理し、TLP情報を抽出してマスタTLPルーティング表を更新し、最終的に、スレーブTLPルーティング表を更新するようにSDスイッチに通知するやり方の一実施形態を示す流れ図である。プロセスは以下の通りである。
(1)ステップ1201において、SDスイッチからのクエリ要求パケットが受信されている場合、ステップ1202においてTLPルーティング情報が抽出されることになる。
(2)ステップ1203において、TLPルーティング情報に基づいてマスタTLPルーティング表が回復されることになる。何も見つからなければ、ステップ1204において、マスタTLPルーティング表に新規の項目が追加されることになる。
(3)最終的に、ステップ1205において、SDスイッチに通知するために回復の結果が送出される。
Figure 12 shows that the SDSW controller processes the query request from the SD switch, extracts the TLP information, updates the master TLP routing table, and finally notifies the SD switch to update the slave TLP routing table. 6 is a flow diagram illustrating one embodiment of a manner. The process is as follows.
(1) If a query request packet from the SD switch is received in step 1201, TLP routing information is extracted in step 1202.
(2) In step 1203, the master TLP routing table is recovered based on the TLP routing information. If nothing is found, a new entry is added to the master TLP routing table at step 1204.
(3) Finally, in step 1205, the result of recovery is sent to notify the SD switch.

図13は、TLPルーティング表の可能なデータ構造であり、これは、基礎をなすネットワークがイーサネットであるとき、SDスイッチとSDSWコントローラの両方に対して用いられる。表は、1)ノードID(ノードの固有のID)の列と、2)ノードのタイプ(上流ノードまたは下流ノード)の列と、3)各ノードの(上流または下流の)送付先アドレスの列と、4)ノードに接続されているSDスイッチの(上流または下流の)ポート番号の列と、5)グループに対して用いられるVLANタグ(基礎をなすネットワークがイーサネットであるときのみ必要)の列と、6)TLPルーティングID(TLPルーティングの固有のID)の列とから成る。図13は、VLAN IDが1または2であるノードの2つのグループを示す。最初の3つの項目は、同一のVLAN ID 1を共有するので1つのグループに属する。ノードIDが1であるノードは上流ノードであり、そのMACアドレスはMAC_00である。ノードIDが1であるノードは、SDスイッチの第1のポートに接続され、TLP IDはbusO/devO/funcOである。ノードIDが2であるノードは下流ノードであり、そのMACアドレスはMAC_01である。ノードIDが2であるノードは、SDスイッチの第2のポートに接続され、TLP IDはbusl/devl/funclである。   FIG. 13 is a possible data structure for the TLP routing table, which is used for both the SD switch and the SDSW controller when the underlying network is Ethernet. The table shows 1) the node ID (node unique ID) column, 2) the node type (upstream or downstream node) column, and 3) the destination address column (upstream or downstream) of each node. And 4) a column of port numbers (upstream or downstream) of the SD switch connected to the node, and 5) a column of VLAN tags (needed only when the underlying network is Ethernet) used for the group And 6) a column of TLP routing ID (a unique ID of TLP routing). FIG. 13 shows two groups of nodes with VLAN ID 1 or 2. The first three items belong to one group because they share the same VLAN ID 1. The node whose node ID is 1 is an upstream node, and its MAC address is MAC_00. The node whose node ID is 1 is connected to the first port of the SD switch, and the TLP ID is busO / devO / funcO. The node whose node ID is 2 is a downstream node, and its MAC address is MAC_01. The node whose node ID is 2 is connected to the second port of the SD switch, and the TLP ID is busl / devl / funcl.

<障害検知およびハンドオーバ>
図14は、上流ノード1401、SDスイッチ(たとえば、それだけではないがOpenFlowスイッチ)1402、SDSWコントローラ(たとえば、それだけではないがOpenFlowコントローラ)1403および下流ノード(明瞭な説明のために省略されている)の間の障害検知およびハンドオーバのシーケンス図である。障害検知およびハンドオーバのプロセスは以下の通りである。
(1)一旦、ステップ1404において上流ノード1401に障害があると、リンクダウンネットワーク信号がSDスイッチ1402に送信されることになる。
(2)SDスイッチ1402は、リンクダウンネットワーク信号を受信すると、ステップ1405においてSDSWコントローラ1403に通知することになる。例のために、OpenFlowにおいて、OpenFlowスイッチはOpenFlowコントローラへOFPPS_LINK_DOWNメッセージを送信することになる。
(3)SDSWコントローラ1403は、SDスイッチ1402から通知を受信すると、ステップ1406において、ハンドオーバのための別の有効な上流ノードを見つけ、ステップ1407において、接続されている下流ノードのマスタTLPルーティング表を変更し、次いで、ステップ1408においてSDスイッチに通知することになる。
(4)SDスイッチ1402は、SDSWコントローラ1403から通知を受信すると、ステップ1409においてスレーブTLPルーティング表を変更することになる。その結果、接続されている下流ノードは、新規のグループIDとともに上流ノードにハンドオーバされる。
<Fault detection and handover>
FIG. 14 shows an upstream node 1401, an SD switch (for example, but not only an OpenFlow switch) 1402, an SDSW controller (for example, but not only an OpenFlow controller) 1403 and a downstream node (omitted for clarity) FIG. 6 is a sequence diagram of failure detection and handover during The failure detection and handover process is as follows.
(1) Once there is a failure in the upstream node 1401 in step 1404, a link down network signal is transmitted to the SD switch 1402.
(2) When receiving the link down network signal, the SD switch 1402 notifies the SDSW controller 1403 in step 1405. For example, in OpenFlow, the OpenFlow switch will send an OFPPS_LINK_DOWN message to the OpenFlow controller.
(3) Upon receiving the notification from the SD switch 1402, the SDSW controller 1403 finds another valid upstream node for handover in step 1406, and in step 1407 displays the master TLP routing table of the connected downstream node. Change and then notify the SD switch in step 1408.
(4) When receiving the notification from the SDSW controller 1403, the SD switch 1402 changes the slave TLP routing table in step 1409. As a result, the connected downstream node is handed over to the upstream node together with the new group ID.

本発明の好ましい実施形態が上記で説明され、図示されてきたが、これらは本発明の例示であり、限定するものと見なされるべきではないことを理解されたい。本発明の範囲から逸脱することなく、追加、省略、置換、および他の変更が可能である。したがって、本発明は前述の説明によって限定されるものと見なされるべきではなく、添付の特許請求の範囲の有効範囲によってのみ限定されるものである。   While preferred embodiments of the present invention have been described and illustrated above, it should be understood that these are illustrative of the invention and are not to be considered as limiting. Additions, omissions, substitutions, and other changes can be made without departing from the scope of the invention. Accordingly, the invention is not to be seen as limited by the foregoing description, but is only limited by the scope of the appended claims.

101 上流ノード
102 下流ノード
103 下流ノード
104 上流ノード
105 下流ノード
106 ソフトウェア定義ネットワーク(SDN)ボックス
201 上流ノード
202 下流ノード
203 下流ノード
204 上流ノード
205 下流ノード
206 SDNボックス
207 SDSWコントローラ
208 SDスイッチ
209 SDスイッチ
210 SDSWコントローラ
211 SDスイッチ
212 SDスイッチ
301 上流ノード
302 中央処理装置(CPU)
303 カプセル化/デカプセル化(ENCAP/DECAP)モジュール
304 ネットワークインターフェースカード(NIC)
401 下流ノード
402 メモリ
403 カプセル化/デカプセル化(ENCAP/DECAP)モジュール
404 ネットワークインターフェースカード(NIC)
501 SDスイッチ
502 RecvDモジュール
503 SendDモジュール
504 SendC(制御プレーンに送信する)モジュール
505 デカプセル化(DECAP)モジュール
506 カプセル化(ENCAP)モジュール
507 パケットバッファ(PKT BUFFER)モジュール
508 スレーブトランザクションレイヤパケット(TLP)ルーティング表操作モジュール
509 RecvC(制御プレーンから受信する)モジュール
601 ソフトウェア定義スイッチのコントローラ(SDSWコントローラ)
602 RecvSWモジュール
603 SendSWモジュール
604 マスタTLPルーティング表操作モジュール
801 上流ノード
802 SDNボックス
803 下流ノード
1401 上流ノード
1402 SDスイッチ
1403 SDSWコントローラ
101 upstream node
102 Downstream node
103 Downstream node
104 upstream node
105 Downstream node
106 Software Defined Network (SDN) box
201 upstream node
202 Downstream node
203 Downstream node
204 Upstream node
205 Downstream node
206 SDN box
207 SDSW controller
208 SD switch
209 SD switch
210 SDSW controller
211 SD switch
212 SD switch
301 upstream node
302 Central processing unit (CPU)
303 Encapsulation / Decapsulation (ENCAP / DECAP) module
304 Network interface card (NIC)
401 Downstream node
402 memory
403 Encapsulation / Decapsulation (ENCAP / DECAP) module
404 Network interface card (NIC)
501 SD switch
502 RecvD module
503 SendD module
504 SendC (send to control plane) module
505 DECAP module
506 Encapsulation (ENCAP) module
507 packet buffer (PKT BUFFER) module
508 Slave Transaction Layer Packet (TLP) Routing Table Manipulation Module
509 RecvC (receive from control plane) module
601 Software-defined switch controller (SDSW controller)
602 RecvSW module
603 SendSW module
604 Master TLP routing table manipulation module
801 upstream node
802 SDN box
803 Downstream node
1401 upstream node
1402 SD switch
1403 SDSW controller

Claims (9)

少なくとも1つの上流ノード、少なくとも1つの下流ノードおよびSDNボックスを含んでいるネットワークにわたる周辺装置相互接続エクスプレス(PCI-E)スイッチとしてソフトウェア定義ネットワーク(SDN)ボックスを用いる方法であって、
前記SDNボックスによって、前記ネットワークを介して、前記上流ノードと前記下流ノードを相互に接続するステップと、
前記上流ノードと前記下流ノードの一方の側においてPCI-Eパケットを送信するステップと、
前記PCI-Eパケットを特定のパケットヘッダとともにカプセル化するステップと、
前記SDNボックスによって、内部PCI-Eパケットとともに搬送されたトランザクションレイヤパケット(TLP)ルーティング識別子(ID)に基づいて、前記カプセル化されたパケットを前記ネットワークへ送信するステップと、
前記上流ノードと前記下流ノードの他方の側において、前記カプセル化されたパケットを受信するステップと、
受信したパケットから前記特定のパケットヘッダを除去するステップと、
前記受信したパケットを前記PCI-Eパケットへとデカプセル化するステップとを含む方法。
A method of using a software defined network (SDN) box as a peripheral component interconnect express (PCI-E) switch across a network including at least one upstream node, at least one downstream node and an SDN box, comprising:
Connecting the upstream node and the downstream node to each other via the network by the SDN box;
Transmitting a PCI-E packet on one side of the upstream node and the downstream node;
Encapsulating the PCI-E packet with a specific packet header;
Sending the encapsulated packet to the network based on a transaction layer packet (TLP) routing identifier (ID) carried by the SDN box along with an internal PCI-E packet;
Receiving the encapsulated packet on the other side of the upstream node and the downstream node;
Removing the specific packet header from the received packet;
Decapsulating the received packet into the PCI-E packet.
前記上流ノードが、演算装置(CPU)、ネットワークインターフェースカード(NIC)およびカプセル化/デカプセル化モジュールを含み、
前記下流ノードが、I/Oデバイス、ネットワークインターフェースカード(NIC)およびカプセル化/デカプセル化モジュールを含む請求項1に記載の方法。
The upstream node includes a processing unit (CPU), a network interface card (NIC) and an encapsulation / decapsulation module,
The method of claim 1, wherein the downstream node comprises an I / O device, a network interface card (NIC) and an encapsulation / decapsulation module.
前記上流ノードおよび前記下流ノードが、単一上流ノードおよび少なくとも1つの下流ノードを含む少なくとも1つのグループに属する請求項1に記載の方法。   The method of claim 1, wherein the upstream node and the downstream node belong to at least one group including a single upstream node and at least one downstream node. 前記TLPルーティングIDが、アドレスルーティング、IDルーティングおよび暗示的ルーティングを含む、前記PCI-EにおけるTLPルーティング方法の前記識別子である請求項1に記載の方法。   2. The method according to claim 1, wherein the TLP routing ID is the identifier of a TLP routing method in the PCI-E, including address routing, ID routing, and implicit routing. 前記SDNボックスが、ソフトウェア定義(SD)スイッチおよび前記SDスイッチに対応するソフトウェア定義スイッチ(SDSW)コントローラのフォーマットとして実施され、前記SDスイッチがスレーブTLPルーティング表を含み、前記SDSWコントローラがマスタTLPルーティング表を含む請求項1に記載の方法。   The SDN box is implemented as a software defined (SD) switch and a software defined switch (SDSW) controller format corresponding to the SD switch, the SD switch includes a slave TLP routing table, and the SDSW controller is a master TLP routing table. The method of claim 1 comprising: SDスイッチを用いて、前記上流ノードと前記下流ノードの一方からの前記受信したパケットをデカプセル化し、前記TLPルーティングIDを抽出し、前記TLPルーティングIDに基づいて前記スレーブTLPルーティング表を回復するステップであって、
前記TLPルーティング表の中に送付先アドレスが見つかった場合、前記パケットをパケットヘッダとともにカプセル化し、前記送付先アドレスを満たして送出し、
前記TLPルーティング表の中に送付先アドレスが見つからない場合、前記パケットをバッファリングして、前記SDSWコントローラに対してクエリを送出するステップと、
前記SDSWコントローラを用いて、前記SDスイッチからの前記クエリ要求を解析し、TLPルーティング情報を抽出し、前記TLPルーティング情報を新規の表項目として前記マスタTLPルーティング表に追加して、前記SDスイッチに、前記スレーブTLPルーティング表を更新するように通知するステップとを含む請求項5に記載の方法。
Decapsulating the received packet from one of the upstream node and the downstream node using an SD switch, extracting the TLP routing ID, and recovering the slave TLP routing table based on the TLP routing ID There,
When a destination address is found in the TLP routing table, the packet is encapsulated with a packet header, and the destination address is satisfied and sent.
If the destination address is not found in the TLP routing table, buffering the packet and sending a query to the SDSW controller;
Using the SDSW controller, the query request from the SD switch is analyzed, TLP routing information is extracted, the TLP routing information is added to the master TLP routing table as a new table item, and the SD switch is added to the SD switch. And notifying the slave TLP routing table to be updated.
前記SDスイッチと、前記SDスイッチに対応する前記SDSWコントローラとが、通信チャネルを用いて接続されており、それによってクエリおよび通知メッセージが転送され、前記通信チャネルが、イーサネットを含む遠隔通信チャネルまたはUNIXドメインソケットを含むローカル通信チャネルのいずれかである請求項5に記載の方法。   The SD switch and the SDSW controller corresponding to the SD switch are connected using a communication channel, whereby query and notification messages are transferred, and the communication channel is a remote communication channel including Ethernet or UNIX 6. The method of claim 5, wherein the method is any of a local communication channel including a domain socket. PCI-Eパケットをカプセル化するステップにおいて、前記送付先アドレスが、前記SDNボックスによって認識され得る所定のフォーマットに保たれる請求項1において定義された方法。   The method as defined in claim 1, wherein in the step of encapsulating a PCI-E packet, the destination address is maintained in a predetermined format that can be recognized by the SDN box. 障害が生じたとき、前記SDNボックスのビルトイン通知が、前記SDスイッチおよび前記SDSWコントローラにおいてTLPルーティング表の変更を起動し、このことが前記下流ノードのハンドオーバを達成する請求項5に記載の方法。   6. The method of claim 5, wherein when a failure occurs, the built-in notification of the SDN box triggers a TLP routing table change in the SD switch and the SDSW controller, which accomplishes handover of the downstream node.
JP2016555801A 2014-03-18 2014-03-18 Method for configuring a software defined PCI Express (PCI-E) switch Pending JP2017511532A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/058146 WO2015141014A1 (en) 2014-03-18 2014-03-18 Method of constructing software-defined pci express (pci-e) switch

Publications (1)

Publication Number Publication Date
JP2017511532A true JP2017511532A (en) 2017-04-20

Family

ID=54144014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016555801A Pending JP2017511532A (en) 2014-03-18 2014-03-18 Method for configuring a software defined PCI Express (PCI-E) switch

Country Status (2)

Country Link
JP (1) JP2017511532A (en)
WO (1) WO2015141014A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11086812B2 (en) * 2015-12-26 2021-08-10 Intel Corporation Platform environment control interface tunneling via enhanced serial peripheral interface
CN108512758B (en) * 2018-03-07 2021-09-14 华为技术有限公司 Message processing method, controller and forwarding equipment
US11005782B2 (en) 2019-04-26 2021-05-11 Dell Products L.P. Multi-endpoint adapter/multi-processor packet routing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219873A (en) * 2006-02-17 2007-08-30 Nec Corp Switch and network bridge device
WO2013051386A1 (en) * 2011-10-05 2013-04-11 日本電気株式会社 Load reduction system, and load reduction method
JP2014003392A (en) * 2012-06-15 2014-01-09 Ntt Docomo Inc Control node and communication control method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007219873A (en) * 2006-02-17 2007-08-30 Nec Corp Switch and network bridge device
WO2013051386A1 (en) * 2011-10-05 2013-04-11 日本電気株式会社 Load reduction system, and load reduction method
JP2014003392A (en) * 2012-06-15 2014-01-09 Ntt Docomo Inc Control node and communication control method

Also Published As

Publication number Publication date
WO2015141014A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
US10778464B2 (en) NSH encapsulation for traffic steering establishing a tunnel between virtual extensible local area network (VxLAN) tunnel end points (VTEPS) using a NSH encapsulation header comprising a VxLAN header whose VNI field has been replaced by an NSH shim
US10684885B2 (en) Port mirroring in a virtualized computing environment
US10237177B2 (en) Transfer device and transfer system
WO2018120798A1 (en) Vxlan packet processing method, device and system
US8908704B2 (en) Switch with dual-function management port
US10193707B2 (en) Packet transmission method and apparatus
CN110022264B (en) Method for controlling network congestion, access device and computer readable storage medium
KR102342286B1 (en) DCN message processing method, network device, and network system
EP2843906B1 (en) Method, apparatus, and system for data transmission
US9703747B2 (en) Remote console access of port extenders using protocol extension
CN111682927B (en) Message synchronization method, device, equipment and medium based on MLAG environment
US20160330167A1 (en) Arp Implementation Method, Switch Device, and Control Device
CN103888386A (en) Extensible virtual local area network message transmission method, device and system
CN109412922B (en) Method, forwarding device, controller and system for transmitting message
WO2018188663A1 (en) Method and device for information notification
US20190158627A1 (en) Method and device for generating forwarding information
US7860027B2 (en) Extending an IP everywhere network over a plurality of flooding domains
WO2017157318A1 (en) Link discovery method and apparatus
CN107770027B (en) Implementation method for providing GRE tunnel service based on OpenStack architecture
EP3038296A1 (en) Pool element status information synchronization method, pool register and pool element
CN106100960B (en) Method, device and system for Fabric intercommunication of cross-storage area network
JP2017511532A (en) Method for configuring a software defined PCI Express (PCI-E) switch
US9036465B2 (en) Hierarchical network with active redundant links
US9819594B2 (en) Information processing system and controlling method and controlling device for the same
WO2019056239A1 (en) Packet synchronization method and device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170627

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171219