以下に図面を参照して、本発明にかかる伝送装置、伝送方法および処理装置の実施の形態を詳細に説明する。
(実施の形態)
(実施の形態にかかる伝送装置)
図1は、実施の形態にかかる伝送装置の一例を示す図である。図1に示すように、実施の形態にかかる伝送装置100は、複数の入力部111,112,…と、N+1個のスイッチ121~12N+1と、複数の出力部131,132,…と、を含む。Nは2以上の自然数である。入力部111,112,…は、たとえば2個以上の入力部である。出力部131,132,…は、たとえば2個以上の出力部である。
伝送装置100は、たとえば、入力部111,112,…から出力される各データを、スイッチ121~12N+1を用いてそれぞれ出力部131,132,…のいずれかから出力するクロスコネクト装置である。また、伝送装置100は、スイッチ121~12N+1を含まず、外部に設けられたスイッチ121~12N+1を用いてもよい。
図1においては、伝送装置100が、入力部111から入力されるデータを、スイッチ121~12N+1を用いて出力部131から出力する場合について説明する。たとえば、入力部111は、入力されるデータを所定単位の部分データに分割する。そして、入力部111は、分割により得られた連続するM個の部分データ毎に、そのM個の部分データと、そのM個の部分データに基づく水平パリティと、をスイッチ121~12N+1に振り分けて送信する。
Mは2以上かつN以下の自然数である。たとえば、N=3かつM=3とすると、入力部111は、分割により得られた第1部分データ、第2部分データ、第3部分データ、…について、第1~第3部分データのXOR(排他的論理和)に基づく水平パリティを計算する。そして、入力部111は、第1部分データをスイッチ121へ送信し、第2部分データをスイッチ122へ送信し、第3部分データをスイッチ123へ送信し、第1~第3部分データに基づいて計算した水平パリティをスイッチ12N+1へ送信する。
同様に、入力部111は、第4部分データをスイッチ121へ送信し、第5部分データをスイッチ122へ送信し、第6部分データをスイッチ123へ送信し、第4~第6部分データに基づいて計算した水平パリティをスイッチ12N+1へ送信する。
すなわち、k=0,1,2,3,…とすると、入力部111は、第(3×k+1)部分データをスイッチ121へ送信し、第(3×k+2)部分データをスイッチ122へ送信し、第(3×k+3)部分データをスイッチ123へ送信する。また、入力部111は、第(3×k+1)部分データ、第(3×k+2)部分データおよび第(3×k+3)部分データに基づく水平パリティをスイッチ12N+1へ送信する。
ただし、連続するM個の部分データおよびそのM個の部分データに基づく水平パリティの振り分け方はこれに限らず、たとえば連続するM個の部分データ毎に振り分け方を切り替えてもよい。一例として、連続するM個の部分データ毎に、水平パリティが送信されるスイッチが異なるように振り分け方を切り替えてもよい。
スイッチ121~12N+1のそれぞれは、入力部111から送信された部分データまたは水平パリティを出力部131へ転送する。たとえば、入力部111からスイッチ121~12N+1へ送信される部分データおよび水平パリティには出力部131を示す宛先アドレスが付与されている。そして、スイッチ121~12N+1のそれぞれはこの宛先アドレスを参照して部分データまたは水平パリティを出力部131へ転送する。
出力部131は、入力部111によりスイッチ121~12N+1に振り分けて送信されスイッチ121~12N+1により転送されるM個の部分データおよび水平パリティのうちの少なくともM個の情報に基づいて、入力部111へ入力されたデータを復元する。たとえば、出力部131は、連続するM個の部分データを正常に受信できた場合は、そのM個の部分データを結合することによりデータを復元することができる。
また、出力部131は、連続するM個の部分データのうち1個の部分データを正常に受信できなかった場合は、正常に受信できたM-1個の部分データおよび水平パリティのXORを計算することにより、正常に受信できなかった1個の部分データを復元する。そして、出力部131は、復元した1個の部分データと、正常に受信できたM-1個の部分データと、を結合することによりデータを復元することができる。
このように、伝送装置100によれば、入力部111へ入力されるデータの分割により得られた連続するM個の部分データ毎に、そのM個の部分データと、そのM個の部分データに基づく水平パリティと、をスイッチ121~12N+1に振り分けて送信できる。これにより、出力部131が、スイッチ121~12N+1により転送されるM個の部分データおよび水平パリティの少なくともいずれかに基づいて、入力部111へ入力されたデータを復元して出力することができる。
たとえば、装置内の障害やエラーにより、3個の部分データおよび水平パリティのうち1個の情報が出力部131によって正常に受信されなくても、残りの3個の情報のXOR演算によりその1個の情報を算出し、元のデータを復元することができる。このため、装置内の障害やエラーが発生しても再送等の処理が不要になるため、伝送遅延やサービス中断を抑制することができる。
伝送装置100が、入力部111から入力されるデータを出力部131から出力する場合の処理について説明したが、入力部112,…から入力されるデータをそれぞれ出力部131,132,…から出力する場合についても同様の処理を適用することができる。
また、スイッチ121~12N+1により処理可能なデータの総帯域[bps]は、たとえば、入力部111,112,…から送信される各データの最大の総帯域より広く、かつ入力部111,112,…から出力される各データの総帯域の2倍より狭い。
一例としては、スイッチ121~12Nにより処理可能なデータの総帯域は、入力部111,112,…から送信される各データの総帯域に相当する。この場合は、伝送装置100は、スイッチ121~12Nの冗長構成としてスイッチ12N+1を備える1:Nの冗長構成である。このため、スイッチ12N+1による余剰帯域を活用して水平パリティを送信することができるため、水平パリティを送受信するためのリンク帯域を増設しなくてもよい。
また、スイッチ121~12N+1により処理可能なデータの総帯域が、入力部111,112,…から出力される各データの総帯域の2倍に相当する1+1または1:1の冗長構成に比べ、スイッチ121~12N+1により処理可能なデータの総帯域を減らすことができる。このため、Nの値(スイッチ121~12N+1の数)やスイッチ121~12N+1のそれぞれが処理可能なデータの帯域を低減することができる。
ただし、伝送装置100は、1:Nの冗長構成に限らず、たとえば図1に示した伝送装置100の構成に加えてスイッチ12N+2を備えた2:Nの冗長構成としてもよい。この場合のNは3以上とする。
また、入力部111は、連続するM個の部分データ毎に、それぞれシーケンス番号を含むヘッダを付したM個の部分データと、そのM個の部分データに付した各シーケンス番号の排他的論理和であるシーケンス番号を付した水平パリティと、を送信してもよい。この場合に、上述したMについて、M=2m-1(mは2以上の自然数)とする。
一例として、16ビットのシーケンス番号が0から65,535までカウントされ再び0に戻る場合を想定する。これにより、連続するM個の部分データおよびそのM個の部分データに基づく水平パリティの組み合わせを、シーケンス番号の上位(16-Log2(M+1))ビットにより識別可能になる。また、連続するM個の部分データおよびそのM個の部分データに基づく水平パリティを、シーケンス番号の下位Log2(M+1)ビットにより互いに識別可能になる。
さらに、上述したNについて、N+1=2(m+k)(kは0以上の自然数)としてもよい。これにより、入力部111は、シーケンス番号の下位(m+k)ビットを参照することにより、連続するM個の部分データおよび対応する水平パリティの組み合わせをスイッチ121~12N+1へ固定的に振り分けて送信することが可能になる。このため、入力部111の回路の簡単化を図ることができる。
また、入力部111から送信される部分データは、その部分データのデータ長が一定になるように挿入されたパディングと、そのパディングの挿入前のその部分データのデータ長を示すヘッダと、を含んでもよい。これにより、入力部111へ入力されたデータを分割して得られた部分データのデータ長が一定でなくても、入力部111から送信される部分データの各データ長を一定にすることができる。また、受信側において、部分データのヘッダを参照することでその部分データの元のデータ長を判定し、その部分データを正しく再生することが可能になる。
また、入力部111は、連続するM個の部分データ毎に、そのM個の部分データに付したヘッダと、水平パリティに付したヘッダと、にそれぞれ前方誤り訂正符号を付し、前方誤り訂正符号を付したM個の部分データおよび水平パリティを送信してもよい。これに対して、出力部131は、入力部111により送信されスイッチ121~12N+1により転送されるM個の部分データおよび水平パリティについて、前方誤り訂正符号に基づく誤り訂正処理を行う。
さらに、出力部131は、誤り訂正処理を行ったM個の部分データおよび水平パリティにそれぞれ付されたヘッダの内容の適格性を判定する。ヘッダの内容の適格性の判定は、ヘッダが所定のフォーマットに一致しているか否かや、ヘッダの値が所定範囲内の値であるか否かの判定である。そして、出力部131は、ヘッダの内容が適格でないと判定した部分データまたは水平パリティについては破棄する。これにより、ヘッダに含まれるシーケンス番号などが誤って受信され、喪失セグメントの復元が不可能になったり、データを誤って復元されたりすることを回避することができる。
(実施の形態にかかる伝送装置を適用したクロスコネクト装置)
図2は、実施の形態にかかる伝送装置を適用したクロスコネクト装置の一例を示す図である。図1に示した伝送装置100は、たとえば図2に示すクロスコネクト装置200に適用することができる。クロスコネクト装置200は、CE技術を用いて汎用のパケットスイッチによりTDMクロスコネクト処理を行う。
すなわち、クロスコネクト装置200は、TDM回路をパケット(セグメント)にエミュレートしてパケット処理を行うCE技術により、クロスコネクト処理を時分割多重で行うTDMクロスコネクト処理を汎用のスイッチにより実現する。このような構成は、たとえばOIFによりOFPとして規定されている。OIFはOptical Internetworking Forum(オプティカルインターネットワーキングフォーラム)の略である。OFPはOTN over packet Fabric Protocolの略である。
たとえば、クロスコネクト装置200は、i個のIngress側のラインカード211~21iと、4個のパケットスイッチ221~224と、j個のEgress側のラインカード231~23jと、を備える。
図1に示した入力部111,112,…は、図2に示すラインカード211~21iにより実現することができる。図1に示したスイッチ121~12N+1は、図2に示すパケットスイッチ221~224により実現することができる。図1に示した出力部131,132,…は、図2に示すラインカード231~23jにより実現することができる。図2に示す例では、上述したNおよびMについて、N=M=3とする場合を説明する。
たとえば、クロスコネクト装置200は、ODU信号のクロスコネクトを行う。ODUはOptical-channel Data Unitの略である。なお、ラインカード211~21i、パケットスイッチ221~224およびラインカード231~23jの間の各信号伝送には、光通信や電気通信などの各種の通信を用いることができる。
また、クロスコネクト装置200は、ラインカード211~21iが送信する各データの総帯域に対応するN個のパケットスイッチ221~223に加えてパケットスイッチ224を備える1:N(N=3)の冗長構成である。
一例としては、ラインカード211~21iへ入力される各データの総帯域が200[Gbps]であり、ラインカード211~21iから送信される各データ(パリティは除く)の総帯域が300[Gbps]であるとする。そして、パケットスイッチ221~224が処理可能なデータの帯域はそれぞれ100[Gbps]であるとする。この場合に、パケットスイッチ221~223により処理可能なデータの総帯域は、ラインカード211~21iから送信される各データの総帯域である300[Gbps]に相当する。したがって、クロスコネクト装置200は、パケットスイッチ221~223の冗長構成としてパケットスイッチ224を備える1:N(N=3)の冗長構成である。
ラインカード211~21iのそれぞれは、入力されたデータに基づく各セグメントをパケットスイッチ221~224に振り分けて送信する。パケットスイッチ221~224のそれぞれは、ラインカード211~21iから送信された各セグメントをラインカード231~23jのいずれかへ送信する。ラインカード231~23jは、パケットスイッチ221~224から送信された各セグメントに基づいて元のデータを復元し、復元したデータを送信する。
図2においては、ラインカード211へ入力されたデータをラインカード231から送信する場合について説明する。図2に示す例では、ラインカード211は、入力されたデータを分割して得られた各ODUセグメント(部分データ)をパケットスイッチ221~223により転送する。また、ラインカード211は、データを分割して得られた各ODUセグメントに基づくパリティセグメント(水平パリティ)をパケットスイッチ224により転送する。
ラインカード211は、入力されたデータをODUセグメントに分割し、分割した各ODUセグメントをパケットスイッチ221~223に振り分けて送信する。また、ラインカード211は、パケットスイッチ221~223に振り分けた3個の連続するODUセグメントに基づいて演算したパリティセグメントをパケットスイッチ224へ送信する。
たとえば、ラインカード211は、1番目のODUセグメントを「0-0」としてパケットスイッチ221へ送信し、2番目のODUセグメントを「0-1」としてパケットスイッチ222へ送信する。また、ラインカード211は、3番目のODUセグメントを「0-2」としてパケットスイッチ223へ送信する。また、ラインカード211は、「0-0」、「0-1」および「0-2」のXOR演算により得られたパリティセグメントを「0-P」としてパケットスイッチ224へ送信する。すなわち、「0-P」=「0-0」XOR「0-1」XOR「0-2」である。
つぎに、ラインカード211は、4番目のODUセグメントを「1-0」としてパケットスイッチ221へ送信し、5番目のODUセグメントを「1-1」としてパケットスイッチ222へ送信する。また、ラインカード211は、6番目のODUセグメントを「1-2」としてパケットスイッチ223へ送信する。また、ラインカード211は、「1-0」、「1-1」および「1-2」のXOR演算により得られたパリティセグメントを「1-P」としてパケットスイッチ224へ送信する。すなわち、「1-P」=「1-0」XOR「1-1」XOR「1-2」である。
つぎに、ラインカード211は、7番目のODUセグメントを「2-0」としてパケットスイッチ221へ送信し、8番目のODUセグメントを「2-1」としてパケットスイッチ222へ送信する。また、ラインカード211は、9番目のODUセグメントを「2-2」としてパケットスイッチ223へ送信する。また、ラインカード211は、「2-0」、「2-1」および「2-2」のXOR演算により得られたパリティセグメントを「2-P」としてパケットスイッチ224へ送信する。すなわち、「2-P」=「2-0」XOR「2-1」XOR「2-2」である。
以降同様に、ラインカード211は、各ODUセグメントをパケットスイッチ221~223に振り分けて送信しつつ、パケットスイッチ221~223に振り分けた3個の連続するODUセグメントに基づく水平パリティをパケットスイッチ224へ送信する。
パケットスイッチ221~224のそれぞれは、たとえばL2スイッチやL3スイッチなどの汎用のスイッチとすることができる。パケットスイッチ221~224のそれぞれは、ラインカード211から送信された各セグメントをラインカード231へ送信する。たとえば、パケットスイッチ221は、ラインカード211から送信されたODUセグメントである「0-0」、「1-0」、「2-0」、「3-0」、「4-0」、「5-0」、「6-0」、「7-0」、…をラインカード231へ送信する。パケットスイッチ222は、ラインカード211から送信されたODUセグメントである「0-1」、「1-1」、「2-1」、「3-1」、「4-1」、「5-1」、「6-1」、「7-1」、…をラインカード231へ送信する。
パケットスイッチ223は、ラインカード211から送信されたODUセグメントである「0-2」、「1-2」、「2-2」、「3-2」、「4-2」、「5-2」、「6-2」、「7-2」、…をラインカード231へ送信する。パケットスイッチ224は、ラインカード211から送信されたパリティセグメントである「0-P」、「1-P」、「2-P」、「3-P」、「4-P」、「5-P」、「6-P」、「7-P」、…をラインカード231へ送信する。
ラインカード231は、パケットスイッチ221~224から送信された各セグメントに基づいて、ラインカード211へ入力されたデータを復元する。たとえば、ラインカード231は、パケットスイッチ221~224からの「0-0」、「0-1」、「0-2」および「0-P」のうち少なくとも3個のセグメントに基づいて「0-0」、「0-1」および「0-2」を取得する。また、ラインカード231は、パケットスイッチ221~224からの「1-0」、「1-1」、「1-2」および「1-P」のうち少なくとも3個のセグメントに基づいて「1-0」、「1-1」および「1-2」を取得する。
以降同様に、ラインカード231は、パケットスイッチ221~224からの各セグメントのうち少なくとも3個のセグメントに基づいて3個の連続するセグメントを取得する。そして、ラインカード231は、取得した各セグメントを結合することにより、ラインカード211へ入力されたデータを復元し、復元したデータを出力する。
(実施の形態にかかるクロスコネクト装置におけるスイッチ故障時のセグメント復元)
図3は、実施の形態にかかるクロスコネクト装置におけるスイッチ故障時のセグメント復元の一例を示す図である。図3において、図2に示した部分と同様の部分については同一の符号を付して説明を省略する。図3においては、パケットスイッチ222が故障し、ラインカード211がパケットスイッチ222へ送信した「0-1」、「1-1」、「2-1」、…がラインカード231へ到達しなくなった場合について説明する。
この場合は、ラインカード231は、到達しなくなった「0-1」を、故障していないパケットスイッチ221,223,224から送信された「0-0」、「0-2」および「0-P」のXOR演算により復元する。また、ラインカード231は、到達しなくなった「1-1」を、故障していないパケットスイッチ221,223,224から送信された「1-0」、「1-2」および「1-P」のXOR演算により復元する。
以降同様に、ラインカード231は、パケットスイッチ222の故障により到達しなくなったセグメントを、パケットスイッチ221,223,224から送信された各セグメントのXOR演算により復元する。これにより、パケットスイッチ222が故障しても、ラインカード231は、ラインカード211から送信された各セグメントを取得して元のデータを復元し、サービスを継続することができる。
(実施の形態にかかるクロスコネクト装置におけるリンク障害時のセグメント復元)
図4は、実施の形態にかかるクロスコネクト装置におけるリンク障害時のセグメント復元の一例を示す図である。図4において、図2に示した部分と同様の部分については同一の符号を付して説明を省略する。図4においては、パケットスイッチ222とラインカード231との間でリンク障害が発生し、ラインカード211がパケットスイッチ222へ送信した「0-1」、「1-1」、「2-1」、…がラインカード231へ到達しなくなった場合について説明する。
この場合は、ラインカード231は、リンク障害により到達しなくなったセグメントを、図3に示した例と同様に、パケットスイッチ221,223,224から送信された各セグメントのXOR演算により復元する。これにより、パケットスイッチ222とラインカード231との間でリンク障害が発生しても、ラインカード231は、ラインカード211から送信された各セグメントを取得して元のデータを復元し、サービスを継続することができる。
(実施の形態にかかるクロスコネクト装置におけるエラー発生時のセグメント復元)
図5は、実施の形態にかかるクロスコネクト装置におけるエラー発生時のセグメント復元の一例を示す図である。図5において、図2に示した部分と同様の部分については同一の符号を付して説明を省略する。図5においては、パケットスイッチ221からの「0-0」がエラーによりラインカード231へ到達せず、ラインカード211からの「5-2」がエラーによりパケットスイッチ223およびラインカード231へ到達しなかった場合について説明する。
この場合は、ラインカード231は、エラーにより到達しなくなった「0-0」を、到達した「0-1」、「0-2」および「0-P」のXOR演算により復元する。また、ラインカード231は、エラーにより到達しなくなった「5-2」を、到達した「5-0」、「5-1」および「5-P」のXOR演算により復元する。
以降同様に、ラインカード231は、エラーにより到達しなくなったセグメントを、到達した他の3個のセグメントのXOR演算により復元する。これにより、セグメントの伝送にエラーが発生しても、ラインカード231は、ラインカード211から送信された各セグメントを取得して元のデータを復元し、サービスを継続することができる。
図3~図5に示したように、ラインカード231は、ラインカード211がパケットスイッチ221~224へ振り分けて送信した4個のセグメントのうち3個以上のセグメントを正常に受信すれば、元のデータを復元し、サービスを継続することができる。
このように、クロスコネクト装置200は、1:N(1:3)の冗長構成の余剰帯域(パケットスイッチ224の帯域)を活用して水平パリティを送信し、一部のセグメントがラインカード231へ到達しなくても元のデータを復元することができる。このため、セグメントの再送を抑制できるため、通信の遅延を抑制してサービスを継続することができる。また、クロスコネクト装置200は、障害が発生したスイッチやリンクを回避するための切替制御が不要なため、障害通知のプロトコルを備えなくてもよく、たとえばロードシェアなどの障害が発生したスイッチやリンクを避けて動的に振り分け先を切替制御する回路も不要になる。また、クロスコネクト装置200は、セグメントの再送を抑制できるため、再送依頼のプロトコルを備えなくてもよい。
(実施の形態にかかるIngress側のラインカード)
図6は、実施の形態にかかるIngress側のラインカードの一例を示す図である。図6においてはラインカード211について説明するが、ラインカード212~21iについてもラインカード211と同様である。ラインカード211は、回線インタフェースモジュール611~614と、OTNフレーマ620と、FIC630と、を備える。OTNはOptical Transport Network(光伝達網)の略である。FICはFabric Interface Chipの略である。
回線インタフェースモジュール611~614は、OTU信号やイーサネットフレームなどのクライアント信号を受信する回線インタフェースモジュールである。なおイーサネット(Ethernet)は登録商標である。OTUはOptical-channel Transport Unitの略である。たとえば、回線インタフェースモジュール611~614は、QSFP28/QSFP+などである。回線インタフェースモジュール611~614のそれぞれは、受信したクライアント信号をOTNフレーマ620へ出力する。QSFPはQuad Small Form-factor Pluggableの略である。
OTNフレーマ620は、回線インタフェースモジュール611~614から出力されたクライアント信号の終端、クライアント信号のODU信号へのマッピング、ODU DEMUX、ODU信号のセグメント化などの処理を行う。ODUはOptical-channel Data Unitの略である。OTNフレーマ620は、これらの処理により得られた各セグメント(ODUセグメント)をFIC630へ出力する。
FIC630は、OTNフレーマ620から出力された各ODUセグメントに対して、パケットスイッチ221~224がスイッチングに用いるためのヘッダの付与を行う。このヘッダは、たとえばL2レイヤまたはL3レイヤのヘッダである。また、FIC630は、OTNフレーマ620から出力された各ODUセグメントに基づくパリティセグメント(水平パリティ)の生成などを行う。
また、FIC630は、ラインカード211がパケットスイッチ221~224へ送信する各セグメントに対してMAC層および物理層(PHY層)の送信処理を行うPHY/MAC部631を有する。MACはMedia Access Control(メディアアクセス制御)の略である。また、FIC630は、PHY/MAC部631のMAC層の処理により、パケットスイッチ221~224へ送信するイーサネットフレームにFCSを付与する。FCSはFrame Check Sequence(フレームチェックシーケンス)の略である。FIC630の構成については後述する。
図6に示したラインカード211において、ラインカード211へ入力されるデータを所定単位の部分データに分割する処理部は、たとえばOTNフレーマ620により実現することができる。また、この処理部の分割により得られた連続するM個の部分データ毎に、M個の部分データと、M個の部分データに基づく水平パリティと、をN+1個のスイッチに振り分けて送信する送信部は、たとえばFIC630により実現することができる。
(実施の形態にかかるパケットスイッチ)
図7は、実施の形態にかかるパケットスイッチの一例を示す図である。図7においてはパケットスイッチ221について説明するが、パケットスイッチ222~224についてもパケットスイッチ221と同様である。パケットスイッチ221は、PHY/MAC部710と、スイッチングを行うスイッチ部720と、パケットバッファ731~73jと、PHY/MAC部740と、を備えるL2レイヤまたはL3レイヤのスイッチである。
PHY/MAC部710は、ラインカード211~21iから出力された各セグメントに対する物理層およびMAC層の受信処理を行う。また、PHY/MAC部710におけるMAC層の受信処理にはFCSチェックが行われる。このFCSチェックにおいてエラーが発生したセグメントはPHY/MAC部710において廃棄される。
スイッチ部720は、PHY/MAC部710により物理層およびMAC層の受信処理が行われたラインカード211~21iからの各セグメントを、ラインカード231~23jへの各経路にスイッチングする。スイッチ部720によるスイッチングは、たとえばFIC630によって付与されたヘッダに基づいて行われる。
パケットバッファ731~73jは、それぞれラインカード231~23jに対応して設けられたj個のバッファである。パケットバッファ731は、スイッチ部720によってラインカード231への経路にスイッチングされたセグメントを格納する。同様に、パケットバッファ732~73jは、スイッチ部720によってそれぞれラインカード232~23jへの経路にスイッチングされたセグメントを格納する。また、輻輳によってパケットバッファ731~73jにおいてオーバーフローが発生すると、オーバーフローが発生したパケットバッファにおいてセグメントが廃棄される。
PHY/MAC部740は、パケットバッファ731に格納されたセグメントを読み出し、読み出したセグメントに対してMAC層および物理層の送信処理を行い、送信処理を行ったセグメントをラインカード231へ出力する。同様に、PHY/MAC部740は、それぞれパケットバッファ732~73jに格納されたセグメントを読み出し、読み出したセグメントに対してMAC層および物理層の送信処理を行う。そして、PHY/MAC部740は、送信処理を行ったセグメントをそれぞれラインカード232~23jへ出力する。たとえば、PHY/MAC部740におけるMAC層の送信処理において、ラインカード231~23jへの各イーサネットフレームにFCSが付与される。
(実施の形態にかかるEgress側のラインカード)
図8は、実施の形態にかかるEgress側のラインカードの一例を示す図である。図8においてはラインカード231について説明するが、ラインカード232~23jについてもラインカード231と同様である。ラインカード231は、FIC810と、OTNフレーマ820と、回線インタフェースモジュール831~834と、を備える。
FIC810は、パケットスイッチ221~224から送信された各セグメント(イーサネットフレーム)に対して物理層およびMAC層の受信処理を行うPHY/MAC部811を有する。PHY/MAC部811によるMAC層の受信処理にはFCSチェックが含まれる。このFCSチェックにおいてエラーが発生したセグメントはPHY/MAC部811において廃棄される。また、FIC810は、物理層およびMAC層の受信処理を行ったODUセグメントのリオーダ、パリティセグメントによるエラーセグメントや廃棄セグメントの復元などを行う。FIC810は、これらの処理により得られた各ODUセグメントをOTNフレーマ820へ出力する。FIC810の構成については後述する。
OTNフレーマ820は、FIC810から出力された各ODUセグメントに基づいて、ODU信号のリアセンブリ、ODU MUX、OTN信号の終端、クライアント信号へのデマッピングなどを行う。そして、OTNフレーマ820は、これらの処理により再生されたOTU信号やイーサネットフレームなどのクライアント信号を回線インタフェースモジュール831~834へ出力する。
回線インタフェースモジュール831~834は、OTNフレーマ820から出力されたクライアント信号を出力する回線インタフェースモジュールである。たとえば、回線インタフェースモジュール831~834は、QSFP28/QSFP+などである。
図8に示したラインカード231において、パケットスイッチ221~224により転送されるM個の部分データおよび水平パリティを受信する受信部は、たとえばFIC810により実現することができる。また、受信されたM個の部分データおよび水平パリティの少なくともいずれかに基づいて、ラインカード211へ入力されたデータを復元し、復元したデータを出力する処理部は、たとえばFIC810およびOTNフレーマ820により実現することができる。
(実施の形態にかかるFIC)
図9は、実施の形態にかかるFICの一例を示す図である。たとえば図6に示したFIC630および図8に示したFIC810のそれぞれは、図9に示すFIC900により実現することができる。FIC900は、OFPインタフェース901と、ヘッダ挿入部902と、パリティセグメント生成部903と、FECエンコーダ904と、レーン振分部905と、を備える。また、FIC900は、絶対優先制御部906~909と、PHY/MAC部910~917と、パーサ918~921と、OAM抽出/挿入部922と、を備える。また、FIC900は、FECデコーダ923と、第1ヘッダエラー検出部924と、セグメントXOR演算部925と、リオーダバッファ926と、ペーサ/セグメントリカバリ部927と、第2ヘッダエラー検出/除去部928と、を備える。
FECはForward Error Correction(前方誤り訂正)の略である。OAMはOperation Administration Maintenance(保守管理機能)の略である。
図6に示したFIC630のIngress側の処理には、たとえば、OFPインタフェース901、ヘッダ挿入部902、パリティセグメント生成部903およびFECエンコーダ904の各処理が含まれる。また、図6に示したFIC630のIngress側の処理には、たとえば、レーン振分部905、絶対優先制御部906~909およびPHY/MAC部910~913の各処理が含まれる。また、図6に示したPHY/MAC部631の処理はPHY/MAC部910~913により実現される。ここでは図6に示したFIC630にFIC900を適用した場合の処理について説明する。
OFPインタフェース901には、OTNフレーマ620から出力されたODUセグメントが入力される。OFPインタフェース901は、入力されたODUセグメントをヘッダ挿入部902へ出力する。一例としては、OFPインタフェース901には、通信システムのコンポーネント間でパケットを転送するための標準プロトコルであるInterlakenのインタフェースを用いることができる。この場合に、OFPインタフェース901は、InterlakenのBCW(Control[63]=1、Type[62]=1)のChannel Number[39:32]フィールドから受信したODUセグメントのODUチャネルを識別する。BCWはBurst Control Wordの略である。ODU(OFP)セグメントは、たとえばOFPヘッダ+ODUペイロードである。
ヘッダ挿入部902は、OFPインタフェース901から出力されたODUセグメントに対して、PWE3へのカプセル化を行い、パケットスイッチ221~224がスイッチングに用いるためのヘッダを付与する。PWE3はPseudo Wire Emulation Edge to Edgeの略である。ヘッダ挿入部902は、カプセル化してヘッダを付与したODUセグメントをパリティセグメント生成部903へ出力する。
パリティセグメント生成部903は、ヘッダ挿入部902から出力されたODUセグメントに基づくパリティセグメントを生成する。たとえば、パリティセグメント生成部903は、3連続のODUセグメント毎に、その3連続のODUセグメントをビット毎にXOR演算することによりパリティセグメントを生成する。そして、パリティセグメント生成部903は、3連続のODUセグメントと、その3連続のODUセグメントに基づいて生成したパリティセグメントと、をFECエンコーダ904へ出力する。
3連続のODUセグメントは、たとえばPWMCWのシーケンス番号の上位14ビット(Sequence Number[16:29])が共通の3個のODUセグメントである(たとえば図14参照)。PWMCWはPseudo Wire MPLS Control Wordの略である。MPLSはMulti Protocol Label Switchingの略である。パリティセグメント生成部903は、この3連続のODUセグメントのDemultiplexer、PWMCW、OFPヘッダ、ODUペイロードおよびパディング領域をビット毎にXOR演算した結果をパリティセグメントとする。パリティセグメントに挿入されるこれらのヘッダの値は、対応するODUセグメントへ挿入されるヘッダの値と同一である。
FECエンコーダ904は、パリティセグメント生成部903から出力されたODUセグメントおよびパリティセグメントの各ヘッダに対してFEC符号を付与する。FECエンコーダ904は、FEC符号を付与したODUセグメントおよびパリティセグメントをレーン振分部905へ出力する。FEC符号には、たとえばRS符号やBCH符号などの各符号を用いることができる。RSはReed-Solomon(リードソロモン)の略である。BCHはBose Chaudhuri Hocquenghem(ボーズ チョドーリ ボッケンジェム)の略である。
たとえば、上述のDemultiplexerやSequence Numberが誤ってしまうと喪失セグメントの復元が不可能なだけでなく、誤復元により他の正常ODUチャネルへ悪影響を及ぼす可能性があるため、ヘッダに対するFECを付与する。FECの演算範囲は、たとえば、Demultiplexer(PW label)、PWMCWおよびOFPヘッダの12オクテットとすることができる。
レーン振分部905(Lane Distribution)は、FECエンコーダ904から出力された各セグメントを絶対優先制御部906~909へ振り分けて出力する。たとえば、レーン振分部905は、各セグメントのPWMCWのシーケンス番号の下位2ビット(Sequence Number[30:31])に従って、各セグメントを絶対優先制御部906~909へ固定的に振り分けて出力する。
一例としては、レーン振分部905は、PWMCWのシーケンス番号の下位2ビットが“00”であるセグメントを絶対優先制御部906へ出力し、PWMCWのシーケンス番号の下位2ビットが“01”であるセグメントを絶対優先制御部907へ出力する。また、レーン振分部905は、PWMCWのシーケンス番号の下位2ビットが“10”であるセグメントを絶対優先制御部908へ出力し、PWMCWのシーケンス番号の下位2ビットが“11”であるセグメントを絶対優先制御部909へ出力する。これにより、上述した3連続のODUセグメントをそれぞれ絶対優先制御部906~908に出力し、その3連続のODUセグメントに基づくパリティセグメントを絶対優先制御部909へ出力することができる。
絶対優先制御部906~909(SP:Strict Priority)は、それぞれレーン振分部905から出力されたセグメントをそれぞれPHY/MAC部910~913へ出力する。また、絶対優先制御部906~909は、OAM抽出/挿入部922から出力された監視制御フレームを、レーン振分部905から出力されたセグメントより低優先でそれぞれPHY/MAC部910~913へ出力する。これにより、セグメントのQoS(Quality of Service)を制御しつつ監視制御フレームを伝送することができる。
PHY/MAC部910~913は、それぞれ絶対優先制御部906~909から出力された各セグメントおよび監視制御フレームに対してイーサネット(100GBASE-SR4/CR4など)のMAC層および物理層の送信処理を行う。そして、PHY/MAC部910~913は、送信処理を行った各セグメントおよび監視制御フレームをそれぞれパケットスイッチ221~224へ出力する。
PHY/MAC部910~913によるMAC層の送信処理には、たとえばMAC DAおよびMAC SAの挿入(たとえば図12,図13参照)が含まれる。SAはSource Address(送信元アドレス)の略である。DAはDestination Address(宛先アドレス)の略である。
MAC DAの挿入は、たとえば、ARPテーブルを参照し、NextHop(パケットスイッチ)のイーサネットインタフェースのMACアドレスをMAC DAフィールドに挿入することにより実行される。ARPはAddress Resolution Protocol(アドレス解決プロトコル)の略である。MAC SAの挿入は、たとえば、各イーサネットインタフェースのMACアドレスをMAC SAフィールドに挿入することにより行われる。
また、PHY/MAC部910~913によるMAC層の送信処理には、イーサネットフレームに対するエラー監視用のFCSの付与が含まれる。
図8に示したFIC810のEgress側の処理には、たとえばPHY/MAC部914~917、パーサ918~921、FECデコーダ923、第1ヘッダエラー検出部924およびセグメントXOR演算部925の各処理が含まれる。また、図8に示したFIC810のEgress側の処理には、たとえばリオーダバッファ926、ペーサ/セグメントリカバリ部927および第2ヘッダエラー検出/除去部928の各処理が含まれる。また、図8に示したPHY/MAC部811の処理は、PHY/MAC部914~917により実現される。ここでは図8に示したFIC810にFIC900を適用した場合の処理について説明する。
PHY/MAC部914~917は、それぞれパケットスイッチ221~224から送信された各セグメントおよび監視制御フレームに対してイーサネット(100GBASE-SR4/CR4など)の物理層およびMAC層の受信処理を行う。そして、PHY/MAC部914~917は、受信処理を行った各セグメントおよび監視制御フレームをそれぞれパーサ918~921へ出力する。
PHY/MAC部914~917によるMAC層の受信処理には、イーサネットフレームに対するFCSのチェックが含まれる。FCSエラーが検出されたイーサネットフレームは、たとえば廃棄(セグメント廃棄)される。
パーサ918~921は、それぞれPHY/MAC部914~917から出力されたセグメントをFECデコーダ923へ出力する。また、パーサ918~921は、それぞれPHY/MAC部914~917から出力された監視制御フレームをOAM抽出/挿入部922へ出力する。パーサ918~921によるセグメントと監視制御フレームの判別は、たとえば受信フレームのMAC DAやEtherTypeフィールド値を参照することにより実行される。
OAM抽出/挿入部922は、パーサ918~921から出力された監視制御フレームを抽出する。監視制御フレームは、たとえばIEEE 802.1ABにおいて規定されたLLDPや、IEEE 802.1agにおいて規定されたイーサネットOAMフレームなどである。IEEEはthe Institute of Electrical and Electronics Engineersの略である。LLDPはLink Layer Discovery Protocolの略である。また、OAM抽出/挿入部922は、LLDPやイーサネットOAMフレームなどの監視制御フレームを生成し、生成した監視制御フレームを絶対優先制御部906~909の少なくともいずれかへ出力する。
FECデコーダ923は、パーサ918~921から出力された各セグメントのヘッダについて、RS符号やBCH符号などのFEC符号に基づく誤り訂正処理を行う。また、FECデコーダ923は、誤り訂正によってエラーを検出し、誤りを訂正できなかったセグメントについては廃棄する。そして、FECデコーダ923は、誤り訂正処理を行った各セグメントを第1ヘッダエラー検出部924へ出力する。
FECデコーダ923から第1ヘッダエラー検出部924へ出力される各セグメントには、3連続のODUセグメントと、その3連続のODUセグメントに基づくパリティセグメントと、が含まれる。この3連続のODUセグメントおよびパリティセグメントは、同一のパリティグループの各セグメントである。
第1ヘッダエラー検出部924は、FECデコーダ923から出力されたセグメントリカバリ前の各セグメントのヘッダエラー(ヘッダ内容の規定違反)を検出し、ヘッダエラーを検出したセグメントを廃棄する。そして、第1ヘッダエラー検出部924は、エラーを検出せず廃棄しなかった各セグメントをセグメントXOR演算部925へ出力する。
セグメントXOR演算部925は、第1ヘッダエラー検出部924から出力された各セグメントのうちのODUセグメントをリオーダバッファ926のODUセグメント側のメモリ926aに書き込む。また、セグメントXOR演算部925は、第1ヘッダエラー検出部924から出力された各セグメント(ODUチャネル毎の同一のパリティグループに属する4連続セグメント)を到着順にビット毎にXOR演算する。そして、セグメントXOR演算部925は、XOR演算により得られたセグメント(XOR’dセグメント)をリオーダバッファ926のXOR’dセグメント側のメモリ926bに書き込む。
たとえば、セグメントXOR演算部925は、各セグメントのDemultiplexerからODUチャネルを識別する。また、セグメントXOR演算部925は、各セグメントのPWMCWのシーケンス番号の上位14ビット(SequenceNumber[16:29])からパリティグループを識別する。また、セグメントXOR演算部925は、各セグメントのPWMCWのシーケンス番号の下位2ビット(SequenceNumber[30:31])からセグメント種別(ODUまたはパリティ)を識別する。
セグメントXOR演算部925による各ODUチャネルのパリティグループ毎のセグメント到着順のビット毎のXOR演算の一例について説明する。セグメントXOR演算部925は、パリティグループ内で最初のセグメントの到着時にはビット毎のXOR演算をせず、そのセグメントをXOR’dセグメントとしてXOR’dセグメント側のメモリ926bにそのまま書き込む。この時点でそのODUチャネルのパリティグループのXOR’dセグメント側のリオーダバッファ926にはそのセグメントそのものが書き込まれる。
また、セグメントXOR演算部925は、パリティグループ内で2番目以降のセグメントの到着時には、先にXOR’dセグメント側のメモリ926bに一時書き込みしたXOR’dセグメントを読み出す。そして、セグメントXOR演算部925は、到着したセグメントと読み出したXOR’dセグメントとをビット毎にXOR演算した結果を再度XOR’dセグメント側のメモリ926bに書き込む。
これにより、各ODUチャネルの同一のパリティグループに属するODUセグメントが2つとパリティセグメントが到着した時点で、XOR’dセグメント側のメモリ926bに残りのひとつのODUセグメントと同じセグメントが書き込まれる。このXOR’dセグメント側のメモリ926bに書き込まれたセグメントは、後段のペーサ/セグメントリカバリ部927において、エラーで廃棄されてメモリ926aに未書き込みのODUセグメントの代わりに読み出される。
また、各ODUチャネルの同一のパリティグループに属するODUセグメントが3つ到着した時点で、XOR’dセグメント側のメモリ926bにパリティセグメントが書き込まれる。ただし、この場合は、ODUセグメントは全て正常受信されておりセグメントリカバリは不要なためこのパリティセグメントは読み出されない。
また、各ODUチャネルの同一のパリティグループに属する全てのセグメント(ODUセグメントが3つとパリティセグメント)が到着すると、XOR’dセグメント側のメモリ926bに書き込まれたセグメントはオールゼロになる。この場合も、ODUセグメントは全て正常受信されておりセグメントリカバリは不要なため、XOR’dセグメント側のメモリ926bに書き込まれたセグメントは読み出されない。
また、各ODUチャネルの同一のパリティグループに属するセグメントの正常受信数が2以下の場合は、XOR’dセグメント側のメモリ926bには意味を成さないXOR’dセグメントが書き込まれる。この場合は、セグメントリカバリが不可であるため、このXOR’dセグメントは読み出されない。
リオーダバッファ926は、パケットスイッチ221~224からのODUセグメント、ODUチャネル毎に、PWMCWのシーケンス番号(Sequence Number[16:31])の順序に並び替えるリオーダを行う。
たとえば、リオーダバッファ926は、ODUセグメントを書き込むためのODUセグメント側の書き込みポートと、XOR’dセグメントを書き込むためのXOR’dセグメント側の書き込みポートと、を有する。また、リオーダバッファ926は、ODUセグメント側の書き込みポートから書き込まれたODUセグメントを格納するメモリ926aと、XOR’dセグメント側の書き込みポートから書き込まれたXOR’dセグメントを格納するメモリ926bと、を有する。
一例として、OFPヘッダのタイムスタンプ(Time Stamp[0:15])が125[μs]までの時刻を識別可能なことから、リオーダバッファ926の深さも125[μs]であると想定する。また、ODUセグメント側のメモリ926aは、セグメントXOR演算部925からの書き込みと、ペーサ/セグメントリカバリ部927からの読み出しと、が可能なように1個の読み出しポートおよび1個の書き込みポートを有する。また、XOR’dセグメント側のメモリ926bは、セグメントXOR演算部925からの書き込みおよび読み出しと、ペーサ/セグメントリカバリ部927からの読み出しと、が可能なように2個の読み出しポートおよび1個の書き込みポートを有する。
ペーサ/セグメントリカバリ部927(Pacer and Segment Recovery)は、リオーダバッファ926から一定のペース(速度)でODUチャネル毎にODUセグメントを読み出すペーサ(Pacer)処理を行う。また、ペーサ/セグメントリカバリ部927は、次に読み出すODUセグメントが正常受信されなかった際に、同一のパリティグループ内の正常受信セグメント数が3の場合はメモリ926bから復元されたセグメントを読み出すセグメントリカバリ処理を行う。そして、ペーサ/セグメントリカバリ部927は、ペーサ処理またはセグメントリカバリ処理により読み出したODUセグメントを第2ヘッダエラー検出/除去部928へ出力する。
ペーサ/セグメントリカバリ部927による初期化中のペーサ処理について説明する。初期化中とは、たとえばODUチャネルのクロスコネクトの設定後や、リオーダバッファ926のアンダーフローまたはオーバーフローの発生後などである。初期化中において、ペーサ/セグメントリカバリ部927は、ODUチャネル毎に最初に読み出される先頭のODUセグメントのOFPヘッダのタイムスタンプ(Time Stamp[0:15])をスヌーピングする。そして、ペーサ/セグメントリカバリ部927は、スヌーピングにより得られたタイムスタンプ値に基づいて、タイムスタンプ値+Δ(レジスタ設定値)の時刻に読み出しを行う。ここで、タイムスタンプ値はODUセグメントの生成時刻を表し、Δは装置内パケット処理部分でのODU遅延の最大値に相当する。
たとえば、ペーサ/セグメントリカバリ部927は、装置内共通のリファレンスタイミングパルスを基準とした311.04[MHz]のリファレンスクロックのカウント数により基準となる時刻(リファレンスタイミング)を生成する。このカウント数は、たとえば0~38879とすることができる。リファレンスタイミングパルスとしては、たとえば125[μs]または250[μs]周期のタイミングパルスを用いることができる。
次に、ペーサ/セグメントリカバリ部927による通常時のペーサ処理について説明する。通常時とは、たとえば上述の初期化の完了後である。通常時において、ペーサ/セグメントリカバリ部927は、T(レジスタ設定値)×311.04[MHz]毎にODUセグメントを読み出す。TはODUセグメントの送出間隔を示すレジスタ設定値である。
ペーサ/セグメントリカバリ部927による実際の読み出しは、OFPインタフェース901側の輻輳などにより遅延することがある。このため、ペーサ/セグメントリカバリ部927は、初期化の完了後にはT×311.04[MHz]毎にトークンを1セグメントずつ加算し、トークンカウンタが1以上の場合に、セグメントリカバリ処理に対する読み出し指示を発行する。
次に、ペーサ/セグメントリカバリ部927によるセグメントリカバリ処理について説明する。次に読み出すODUセグメントが正常受信された際は、ペーサ/セグメントリカバリ部927は、リオーダバッファ926のODUセグメント側のメモリ926aからそのODUセグメントを読み出し、トークンカウンタを1セグメント分減算する。
次に読み出すODUセグメントが正常受信されなかったが、同一のパリティグループ内の正常受信セグメントが3つの場合には、これら3つのセグメントをビット毎にXOR演算した復元セグメントがメモリ926bに保持されている。この場合に、ペーサ/セグメントリカバリ部927は、メモリ926bからそのODUセグメント(復元セグメント)を読み出し、トークンカウンタを1セグメント分減算する。
次に読み出すODUセグメントが正常受信されておらず、同一のパリティグループ内の正常受信セグメント数が2つ以下の場合には、次に読み出すODUセグメントは復元不可である。この場合に、ペーサ/セグメントリカバリ部927は、読み出しは行わず、トークンカウンタを1セグメント分減算する。復元不可のため読み出されなかったODUセグメントは、OTNフレーマ820において、同一ODUチャネルの次のODUセグメントのOFPヘッダのPPSIフィールドを用いて同一セグメント長のダミーバイトが補填される。ダミーバイトは、たとえばB、B+1またはB-1[Byte]である。PPSIはPrevious Packet Size Indicatorの略である。
第2ヘッダエラー検出/除去部928は、ペーサ/セグメントリカバリ部927から出力されたセグメントリカバリ後のODUセグメントのヘッダエラー(ヘッダ内容の規定違反)を検出する。そして、第2ヘッダエラー検出/除去部928は、ヘッダエラーを検出したODUセグメントを廃棄する。
そして、第2ヘッダエラー検出/除去部928は、エラーを検出せず廃棄しなかったODUセグメントから、Ingress側(ヘッダ挿入部902)で付与されたヘッダを除去し、ODU(OFP)セグメントをデカプセル化する。たとえば、第2ヘッダエラー検出/除去部928は、Demultiplexer(PW label)を除去する。たとえば、ODUセグメントのDemultiplexerの値からODUチャネルが識別され、後段のOFPインタフェース901においてInterlakenのBCWのChannel Number[39:32]への変換が行われる。
また、第2ヘッダエラー検出/除去部928は、PWMCWを除去する。たとえば、第2ヘッダエラー検出/除去部928は、ODUセグメントのSLEN[8:9]の値に従ってODUペイロードに続く0、1または2オクテットのパディングを除去し、OFPヘッダおよびODUペイロードのみデカプセル化する。第2ヘッダエラー検出/除去部928は、デカプセル化したODUセグメントをOFPインタフェース901へ出力する。
OFPインタフェース901は、第2ヘッダエラー検出/除去部928から出力されたODUセグメントをOTNフレーマ820へ出力する。一例としては、OFPインタフェース901は、InterlakenのBCW(Control[63]=1、Type[62]=1)のChannel Number[39:32]フィールドをODUチャネル毎に設定する。そして、OFPインタフェース901は、Channel Number[39:32]フィールドを設定したODU(OFP)セグメントを出力する。このODU(OFP)セグメントは、たとえばOFPヘッダ+ODUペイロードである。
たとえば、後述のDemultiplexerやシーケンス番号などのヘッダが誤ってしまうと、喪失セグメントの復元が不可能なだけでなく、誤復元により他の正常なODUチャネルへ悪影響を及ぼす可能性がある。これに対して、図9に示したように、ヘッダに対するFEC符号を付与して誤り訂正処理を行い、さらにヘッダの内容の適格性を判定することで誤り検出確率を向上させることができる。
(実施の形態にかかるペーサ/セグメントリカバリ部によるペーサ処理)
図10は、実施の形態にかかるペーサ/セグメントリカバリ部によるペーサ処理の一例を示す図である。図9に示したペーサ/セグメントリカバリ部927は、上述したペーサ処理を、たとえば図10に示す各処理を実行することにより実行する。
まず、ペーサ/セグメントリカバリ部927は、たとえばODUチャネルのクロスコネクトの設定後や、リオーダバッファ926のアンダーフローまたはオーバーフローの発生後に初期化処理1001へ移行する。初期化処理1001において、ペーサ/セグメントリカバリ部927は、トークンカウンタを“0”に設定する。また、初期化処理1001において、ペーサ/セグメントリカバリ部927は、ODUチャネル毎に最初に読み出される先頭のODUセグメントのOFPヘッダのタイムスタンプ(Time Stamp[0:15])をスヌーピングする。このタイムスタンプは、Ingress側のOTNフレーマ620のセグメント化を行う処理において、装置内共通のリファレンスタイミングパルスを基準にセグメント生成時刻を挿入したものである。
また、ペーサ/セグメントリカバリ部927は、装置内共通のリファレンスタイミングパルスを基準としたクロックカウント数であるリファレンスタイムを参照する。そして、ペーサ/セグメントリカバリ部927は、リファレンスタイムが、スヌーピングにより得られたタイムスタンプに所定値Δ(レジスタ設定値)を加えたタイムスタンプ値+Δになるとトークン追加処理1002へ移行する。所定値Δは、装置内パケット処理部分でのODU最大遅延量(たとえば311.04[MHz]クロック数)に相当する値(レジスタ設定値)である。
トークン追加処理1002において、ペーサ/セグメントリカバリ部927は、トークンカウンタをインクリメントする(=+1)。また、ペーサ/セグメントリカバリ部927は、時間Tを計時するタイマを設定する(タイマ=T)。時間Tは、セグメント生成間隔(311.04[MHz]クロック数)に相当する時間(レジスタ設定値)である。すなわち、このタイマは、セグメント生成間隔(T)毎に満了(Expire)する減算カウンタである。たとえば、このタイマは、311.04[MHz]クロック毎に1だけ減算される。また、ペーサ/セグメントリカバリ部927は、トークンカウンタの値が1以上になるとセグメントリカバリ処理に対する読み出し指示を発行する。
そして、ペーサ/セグメントリカバリ部927は、時間Tを計時するタイマが満了(タイマ=0)するとトークン追加処理1002へ再度移行する。これにより、時間T毎にトークンカウンタをインクリメントして読み出し指示を発行することができる。
(実施の形態にかかるペーサ/セグメントリカバリ部によるセグメントリカバリ処理)
図11は、実施の形態にかかるペーサ/セグメントリカバリ部によるセグメントリカバリ処理の一例を示すフローチャートである。図9に示したペーサ/セグメントリカバリ部927は、たとえば図11に示す各ステップを実行する。上述のように、ペーサ処理においてトークンカウンタの値が1以上になると読み出し指示が発行される。
まず、ペーサ/セグメントリカバリ部927は、図10に示したペーサ処理により読み出し要求が発行されたか否かを判断し(ステップS1101)、読み出し要求が発行されるまで待つ(ステップS1101:Noのループ)。読み出し要求が発行されると(ステップS1101:Yes)、ペーサ/セグメントリカバリ部927は、ステップS1102へ移行する。すなわち、ペーサ/セグメントリカバリ部927は、リオーダバッファ926のODUセグメント側のメモリ926aに読み出し対象のODUセグメントが書き込まれているか否かを判断する(ステップS1102)。
ステップS1102において、読み出し対象のODUセグメントが書き込まれている場合(ステップS1102:Yes)は、ペーサ/セグメントリカバリ部927は、ステップS1103へ移行する。すなわち、ペーサ/セグメントリカバリ部927は、リオーダバッファ926のODUセグメント側のメモリ926aから読み出し対象のODUセグメントを読み出す(ステップS1103)。つぎに、ペーサ/セグメントリカバリ部927は、トークンカウンタを1セグメント分減算し(ステップS1104)、ステップS1101へ戻る。
ステップS1102において、読み出し対象のODUセグメントが書き込まれていない場合(ステップS1102:No)は、読み出し対象のODUセグメントは廃棄済みである。また、読み出し対象のODUセグメントと同一のパリティグループ内のセグメントの受信数は3以下である。この場合に、ペーサ/セグメントリカバリ部927は、読み出し対象のODUセグメントと同一のパリティグループ内のセグメントの受信数が3であるか否かを判断する(ステップS1105)。
ステップS1105において、セグメントの受信数が3である場合(ステップS1105:Yes)は、読み出し対象のODUセグメントと同一のパリティグループ内の2つのODUセグメントおよびパリティセグメントが受信済みである。そして、これらのセグメントに基づくXOR’dセグメントがリオーダバッファ926のXOR’dセグメント側のメモリ926bに書き込まれており、このXOR’dセグメントは読み出し対象のODUセグメントと同一である。この場合に、ペーサ/セグメントリカバリ部927は、リオーダバッファ926のXOR’dセグメント側のメモリ926bから読み出し対象のODUセグメント(XOR’dセグメント)を読み出し(ステップS1106)、ステップS1104へ移行する。
ステップS1105において、セグメントの受信数が3でない場合(ステップS1105:No)は、読み出し対象のODUセグメントと同一のパリティグループ内のセグメントの受信数は2以下(≦2)である。この場合は読み出し対象のODUセグメントと同一のXOR’dセグメントはリオーダバッファ926のXOR’dセグメント側のメモリ926bに書き込まれていない。この場合に、ペーサ/セグメントリカバリ部927は、読み出し対象のODUセグメントの読み出しを行わずにステップS1104へ移行する。このように、ペーサ/セグメントリカバリ部927は、ODUセグメントの読み出しの有無には関わらずにトークンカウンタを1セグメント分減算する。
(実施の形態にかかるODUセグメントの送信フォーマット)
図12は、実施の形態にかかるODUセグメントの送信フォーマットの一例を示す図である。ラインカード211~21iとラインカード231~23jとの間のODUセグメントの送信フォーマットには、たとえば図12に示すODUセグメント1200を用いることができる。図12に示すODUセグメント1200は、パケットスイッチ221~224がMPLSスイッチ(Pルータ)の場合用のPWE3/MPLSベースのフォーマットである。
たとえば、ODUセグメント1200は、OFPヘッダ1201と、ODUペイロード1202と、PWMCW1203と、Demultiplexer1204と、ELI1205と、Entropyラベル1206と、を含む。また、ODUセグメント1200は、P2P/P2MPトンネリングラベル1207と、EtherType1208と、MAC宛先アドレス1209と、MAC送信元アドレス1210と、FEC符号1220と、FCS1230と、を含む。ELIはEntropy Label Indicatorの略である。
OFPヘッダ1201(OFP Header)およびODUペイロード1202(ODUk/ODUflex/ODUCn Payload)は、たとえば図9に示したOFPインタフェース901からヘッダ挿入部902へ出力されるODUセグメントである。ODUペイロード1202は、たとえば、ODUk、ODUflexまたはODUCnのペイロードである。ODUkはOptical-channel Data Unit-kの略である。ODUflexはOptical-channel Data Unit-flexの略である。ODUCnはOptical-channel Data Unit 100G×nの略である。
たとえば、ヘッダ挿入部902は、OFPインタフェース901から出力されたODUセグメントに対して、ODUのPWMCW1203(ODU PW MPLS Control Word)をヘッダとして挿入する。たとえば、ヘッダ挿入部902は、PWMCW1203として、PWMCW識別子(0000[0:3])、フラグ(Flags[4:7])、セグメント長(SLEN[8:9])、シーケンス番号(Sequence Number[16:31])を挿入する。セグメント長(SLEN[8:9])は、ODUセグメントのデータ長を示す。
すなわち、ODUセグメントはクライアント信号を分割して生成されるため、各ODUセグメントのデータ長はクライアント信号のデータ長に応じて可変である。このため、ODUペイロード1202にパディング1202aを設けることにより全体のデータ長はB+1バイトに固定される。これに対して、セグメント長(SLEN[8:9])は、ODUセグメントの元々のデータ長を示す。これにより、受信側は、ODUセグメント1200におけるパディング1202aの長さを判定し、パディング1202aを正しく再生することが可能になる。
また、ヘッダ挿入部902は、ODUセグメントのシーケンス番号の下位2ビット(Sequence Number[30:31])については“00”、“01”または“10”とし、“11”はパリティセグメント用にする。
また、ヘッダ挿入部902は、挿入したセグメント長(SLEN[8:9])に従って、ODUペイロード1202にパディング1202a(Padding)を挿入する。パディング1202aは、0オクテット、1オクテットまたは2オクテットの領域である。ヘッダ挿入部902は、ODUペイロード1202とパディング1202aの合計サイズがB+1オクテット(バイト)となるようにパディング1202aを挿入する。
また、ヘッダ挿入部902は、Demultiplexer1204(PW label)をヘッダとして挿入する。たとえば、ヘッダ挿入部902は、各トンネル(LSPまたはVLAN/Ethernet接続)内の個々のPWE3(=ODUチャネル)の識別用のDemultiplexer1204(PW label)を挿入する。LSPはLabel Switched Pathの略である。VLANはVirtual Local Area Network(仮想構内通信網)の略である。
また、ヘッダ挿入部902は、設定に従い、ECMPの負荷分散用のELI1205およびEntropyラベル1206(Entropy Label)をヘッダとして挿入してもよい。なお、ELI1205およびEntropyラベル1206は、ラインカード211~21iからパケットスイッチ221~224への振り分けを、シーケンス番号の下位2ビット(Sequence Number[30:31])に従って固定的に行う場合には使用されない領域である。
また、ヘッダ挿入部902は、P2P/P2MPトンネリングラベル1207(P2P/P2MP tunnel label)をヘッダとして挿入する。P2P/P2MPトンネリングラベル1207は、たとえばODUチャネルをカプセル化したPWの宛先ピアへのLSPに対応したMPLSラベルである。
また、ヘッダ挿入部902は、EtherType1208をヘッダとして挿入する。図12に示すPWE3/MPLSベースのフォーマットにおいては、EtherType1208は、“0x8847”である。なおEtherType1208はヘッダ挿入部902ではなく後段のPHY/MAC部910~913のMAC処理において挿入することも可能である。
図9に示したFECエンコーダ904は、たとえばOFPヘッダ1201、ODUペイロード1202およびDemultiplexer1204に基づくFEC符号1220を挿入する。一例としては、FEC符号1220には、符号シンボル長n=26、情報シンボル長k=20、誤り訂正可能シンボル数t=3、シンボル長m=5ビットのRS符号(RS(26,20,3,5)FEC)を用いることができる。RS(26,20,3,5)符号のパリティビットは30[bit]=5x(26-20)のため、2ビットのパディングを付与する。
図9に示したPHY/MAC部910~913のそれぞれは、たとえば、MAC層の送信処理において、ODUセグメント1200に対するエラー監視用のFCS1230を挿入する。
ODUセグメントの送信フォーマットについて説明したが、パリティセグメントの送信フォーマットについてもODUセグメントの送信フォーマットと同様である。たとえば、パリティセグメントのOFPヘッダ1201、ODUペイロード1202(パディング1202aを含む)およびPWMCW1203は、同一のパリティグループ内の各ODUセグメントの同じ領域のXORにより計算される(たとえば図14参照)。また、パリティセグメントのその他の領域(たとえばDemultiplexer1204)の値は、同一のパリティグループ内の各ODUセグメントの同じ領域と同一の値に設定される。
たとえば、上述したMをM=2m-1(m=2,3,4,…)とした場合は、同一のパリティグループ内の各ODUセグメントのSequence NumberのXORによりパリティセグメントのSequence Numberを生成することができる。なお、パリティセグメントのPWMCW1203は設定ベースの値としてもよい。
図13は、実施の形態にかかるODUセグメントの送信フレームのフォーマットの他の一例を示す図である。ラインカード211~21iとラインカード231~23jとの間のODUセグメントの送信フォーマットには、たとえば図13に示すODUセグメント1300を用いることができる。図13に示すODUセグメント1300は、パケットスイッチ221~224がL2スイッチ(MACブリッジ)の場合のMAC転送用のフォーマットである。本発明によれば、宛先であるEgress側ラインカードへの到達性に関わらずIngress側から静的なリンク振り分けが可能となるため、ルーティング・プロトコルなどを利用せずにMACアドレスに従ったL2転送させることも可能である。
図13に示すMAC転送用フォーマットにおいて、ヘッダ挿入部902は、図12に示したPWMCW1203と同様のCW1301(Control Word)を挿入する。また、MAC転送用フォーマットにおいて、ヘッダ挿入部902は、ODUチャネルの識別子として、図12に示したDemultiplexer1204相当のDemultiplexer1302を挿入する。ただし、図13に示したDemultiplexer1302は、図12に示したDemultiplexer1204のようなshimヘッダのフォーマットに従わなくてもよい。
また、ヘッダ挿入部902は、MAC宛先アドレス1209(MAC DA)およびMAC送信元アドレス1210(MAC SA)をヘッダとして挿入する。たとえば、ヘッダ挿入部902は、カプセル化されたODUチャネルの宛先(たとえばラインカード231~23jのいずれか)を表すMAC宛先アドレス1209を挿入する。このMAC宛先アドレス1209は、ユニキャストまたはマルチキャストのアドレスとすることができる。また、ヘッダ挿入部902は、自装置(たとえばラインカード211~21iのいずれか)を表すMAC送信元アドレス1210を挿入する。
また、ヘッダ挿入部902は、EtherType1208を挿入する。また、ヘッダ挿入部902は、設定に従い、VLANラベル1303をヘッダとして挿入してもよい。
(実施の形態にかかる水平パリティの計算)
図14は、実施の形態にかかる水平パリティの計算の一例を示す図である。図14においては、PWE3/MPLSベースのフォーマットを用いる場合(図12参照)について説明する。図14において、図12に示した部分と同様の部分については同一の符号を付して説明を省略する。図14に示すセグメント1400(#1~#3)は3個の連続するODUセグメントのそれぞれの一部である。図14に示すセグメント1400(#4)はセグメント1400(#1~#3)に基づいて計算されたパリティセグメントの一部である。すなわち、セグメント1400(#1~#4)は、同一のパリティグループの各セグメントである。
OFPヘッダ1201(#1~#4)は、それぞれセグメント1400(#1~#4)におけるOFPヘッダ1201である。ODUペイロード1202(#1~#4)は、それぞれセグメント1400(#1~#4)におけるODUペイロード1202である。パディング1202a(#1~#4)は、それぞれセグメント1400(#1~#4)におけるパディング1202aである。
PWMCW1203(#1~#4)は、それぞれセグメント1400(#1~#4)におけるPWMCW1203である。PWMCW識別子1203a(#1~#4)は、それぞれセグメント1400(#1~#4)におけるPWMCW1203のPWMCW識別子の0000[0:3]である。フラグ1203b(#1~#4)は、それぞれセグメント1400(#1~#4)におけるPWMCW1203のフラグ(Flags[4:7])である。セグメント長1203c(#1~#4)は、それぞれセグメント1400(#1~#4)におけるPWMCW1203のセグメント長(SLEN[8:9])である。レングス1203d(#1~#4)は、それぞれセグメント1400(#1~#4)におけるPWMCW1203のレングス(Length[10:15])である。シーケンス番号1203e(#1~#4)は、それぞれセグメント1400(#1~#4)におけるPWMCW1203のシーケンス番号(Sequence Number[16:31])である。
先ず、前述のようにセグメント1400(#1~#4)は、同一のパリティグループのセグメントであるため、セグメント1400(#1~#4)のDemultiplexer1204の値は同一の値である。同様に、セグメント1400(#1~#4)のシーケンス番号1203eの上位14ビット[16:29]の値も同一の値である。また、前述のように、セグメント1400(#1~#4)のシーケンス番号1203eの下位2ビット[30:31]はそれぞれ00、01、10、11である。
一方、セグメント1400(#4)のPWMCW識別子1203a、フラグ1203b、セグメント長1203cおよびレングス1203dはそれぞれ、セグメント1400(#1~#3)のPWMCW識別子1203a、フラグ1203b、セグメント長1203cおよびレングス1203dのそれぞれのXORの演算の結果である。また、たとえば、セグメント1400(#4)のOFPヘッダ1201(Parity)は、セグメント1400(#1~#3)のOFPヘッダ1201のXOR演算の結果である。また、セグメント1400(#4)のODUペイロード1202(Parity)は、セグメント1400(#1~#3)のODUペイロード1202のXOR演算の結果である。また、セグメント1400(#4)のパディング1202a(Parity)は、セグメント1400(#1~#3)のパディング1202aのXOR演算の結果である。
つまり、水平パリティの演算範囲、もしくは水平パリティによる復元処理の保護対象範囲は、一般に、シーケンス番号1203eを除くPWMCW1203からパディング1202aまでの範囲であり、シーケンス番号1203eおよびMPLSラベル(1207,1205,1206,1204)やEthernetフレームのヘッダ(1209,12010,1208,1230)はその対象外である。
ここで、上述したMをM=2m-1(m=2,3,4,…)とした場合は、セグメント1400(#4)のシーケンス番号1203eも含めたPWMCW1203全体は、セグメント1400(#1~#3)のPWMCW1203のXOR演算の結果と一致する。つまり、この場合は水平パリティの演算範囲をPWMCW1203からパディング1202aまでの範囲とできる。一方、セグメント1400(#4)のPWMCW識別子1203a、フラグ1203bおよびレングス1203dは、セグメント1400(#1~#3)のPWMCW識別子1203a、フラグ1203bおよびレングス1203dと同一の値となる。
たとえば、セグメント1400(#4)のPWMCW識別子1203a(#4)は、それぞれセグメント1400(#1~#3)のPWMCW識別子1203a(#1~#3)のXORにより計算される。図14に示す例ではPWMCW識別子1203a(#1~#3)はそれぞれ“0000”の同一の固定値であるためPWMCW識別子1203a(#4)も“0000”になる。したがって、PWMCW識別子1203a(#1~#4)には常に“0000”の固定値を挿入してもよい。
セグメント1400(#4)のフラグ1203b(#4)は、それぞれセグメント1400(#1~#3)のフラグ1203b(#1~#3)のXORにより計算される。図14に示す例ではフラグ1203b(#1~#3)はそれぞれ“XSF”の同一の固定値であるためフラグ1203b(#4)も“XSF”の同一の固定値になる。したがって、フラグ1203b(#1~#4)には設定に従った固定値を挿入してもよい。
セグメント1400(#4)のセグメント長1203c(#4)は、それぞれセグメント1400(#1~#3)のセグメント長1203c(#1~#3)のXORにより計算される。図14に示す例ではセグメント長1203c(#1~#3)はそれぞれ“pq”、“rs”および“tu”であるためセグメント長1203c(#4)は“vw”(0bpq XOR 0brs XOR 0btu=0bvw)になる。つまり、セグメント1400(#4)のセグメント長1203c(#4)は、OFPヘッダ1201(#4)、ODUペイロード1202(#4)、パディング1202a(#4)と同様にパリティセグメントによる復元処理の保護対象である。なお接頭語の“0b”は2進数を示す。
セグメント1400(#4)のレングス1203d(#4)は、それぞれセグメント1400(#1~#3)のレングス1203d(#1~#3)のXORにより計算される。図14に示す例ではレングス1203d(#1~#3)はそれぞれ“000000”の同一の固定値であるためレングス1203d(#4)も“000000”の同一の固定値になる。したがって、レングス1203d(#1~#4)には常に“000000”の固定値を挿入してもよい。
セグメント1400(#4)のシーケンス番号1203e(#4)は、それぞれセグメント1400(#1~#3)のシーケンス番号1203e(#1~#3)のXORにより計算することも可能である。図14に示す例ではシーケンス番号1203e(#1~#3)の[16:29]はそれぞれ“abcdefghijklmn”の同一の値であるためシーケンス番号1203e(#4)の[16:29]も“abcdefghijklmn”の同一の値になる。また、シーケンス番号1203e(#1~#3)の[30:31]はそれぞれ“00”、“01”および“10”であるためシーケンス番号1203e(#4)の[30:31]は“11”(0b00 XOR 0b01 XOR 0b10=0b11)になる。
(実施の形態にかかる各送信セグメント)
図15は、実施の形態にかかる各送信セグメントの一例を示す図である。図9に示したヘッダ挿入部902は、たとえば図15に示すODUセグメント1500~1502(0-0~0-2),1510~1512(1-0~1-2),1520~1522(2-0~2-2),1530~1532(3-0~3-2)を生成する。図15に示す例では、各セグメントのセグメント長を8バイトとし、1バイト(8ビット)毎に8行で図示している。
図9に示したパリティセグメント生成部903は、ODUセグメント1500~1502(0-0~0-2)をビット毎にXOR演算することによりパリティセグメント1503(0-P)を生成する。また、パリティセグメント生成部903は、ODUセグメント1510~1512(1-0~1-2)をビット毎にXOR演算することによりパリティセグメント1513(1-P)を生成する。
また、パリティセグメント生成部903は、ODUセグメント1520~1522(2-0~2-2)をビット毎にXOR演算することによりパリティセグメント1523(2-P)を生成する。また、パリティセグメント生成部903は、ODUセグメント1530~1532(3-0~3-2)をビット毎にXOR演算することによりパリティセグメント1533(3-P)を生成する。
そして、FIC900の送信側は、まず、ODUセグメント1500~1502(0-0~0-2)およびパリティセグメント1503(0-P)をそれぞれパケットスイッチ221~224へ送信する。つぎに、FIC900は、ODUセグメント1510~1512(1-0~1-2)およびパリティセグメント1513(1-P)をそれぞれパケットスイッチ221~224へ送信する。
つぎに、FIC900は、ODUセグメント1520~1522(2-0~2-2)およびパリティセグメント1523(2-P)をそれぞれパケットスイッチ221~224へ送信する。つぎに、FIC900は、ODUセグメント1530~1532(3-0~3-2)およびパリティセグメント1533(3-P)をそれぞれパケットスイッチ221~224へ送信する。
(実施の形態にかかる送信セグメントのビットエラー)
図16は、実施の形態にかかる送信セグメントのビットエラーの一例を示す図である。図16において、図15に示した部分と同様の部分については同一の符号を付して説明を省略する。図15に示した各送信セグメントのうち、バイト1601~1604においてビットエラーが発生したとする。
これらのビットエラーは、たとえば、ラインカード211とパケットスイッチ221~223との間や、パケットスイッチ221~223の内部や、パケットスイッチ221~223とラインカード231との間において発生する。
バイト1601は、ODUセグメント1500の第4バイトである。バイト1601は、元は“11000110”であったがビットエラーにより“10000110”になっている(第2ビットが反転している)。バイト1602は、ODUセグメント1512の第5バイトである。バイト1602は、元は“11101001”であったがビットエラーにより“11101011”になっている(第7ビットが反転している)。
バイト1603は、パリティセグメント1523の第3バイトである。バイト1603は、元は“10000011”であったがビットエラーにより“10000111”になっている(第6ビットが反転している)。バイト1604は、ODUセグメント1531の第8バイトである。バイト1604は、元は“01001011”であったがビットエラーにより“01101011”になっている(第3ビットが反転している)。
このような場合に、バイト1601~1604を含むODUセグメント1500,1512,1531およびパリティセグメント1523は、パケットスイッチ221~223またはラインカード231において廃棄される。
(実施の形態にかかる送信セグメントの廃棄セグメントの復旧)
図17は、実施の形態にかかる送信セグメントの廃棄セグメントの復旧の一例を示す図である。図17において、図15,図16に示した部分と同様の部分については同一の符号を付して説明を省略する。Egress側のラインカード231は、図17に示すように、たとえば、ODUセグメント1501,1502およびパリティセグメント1503のXOR演算を行うことにより元のODUセグメント1500を復元することができる。
また、ラインカード231は、ODUセグメント1510,1511およびパリティセグメント1513のXOR演算を行うことにより元のODUセグメント1512を復元することができる。また、ラインカード231は、ODUセグメント1520~1522のXOR演算を行うことにより元のパリティセグメント1523を復元することができる。
また、ラインカード231は、ODUセグメント1530,1532およびパリティセグメント1533のXOR演算を行うことにより元のODUセグメント1531を復元することができる。これにより、ラインカード231は、廃棄されたODUセグメント1500,1512,1531を含む正常な各ODUセグメントを得ることができる。なお、ラインカード231は、パリティセグメント1523についてはODUセグメントではないため復元を行わなくてもよい。
(実施の形態にかかるクロスコネクト装置のハードウェア構成)
図18は、実施の形態にかかるクロスコネクト装置のハードウェア構成の一例を示す図である。図2に示したクロスコネクト装置200は、たとえば図18に示すクロスコネクト装置1800により実現することができる。ただし、図18に示す例では、クロスコネクト装置1800が、パケットスイッチ221~224を備えず、外部のパケットスイッチ221~224を用いてスイッチングを行う構成について説明する。
図18に示すように、クロスコネクト装置1800は、ブレードマザーボード1801と、PIU1802(#1~#4)と、CPU1809と、フラッシュメモリ1810と、DRAM1811と、PCIeスイッチ1812と、を備える。また、クロスコネクト装置1800は、LANスイッチ1813と、同期信号生成部1814と、コネクタ1815と、セレクタ1816と、を備える。また、クロスコネクト装置1800は、直流電源1817と、ファン1818,1819と、監視制御インタフェース1820と、コネクタ1821と、を備える。
CPUはCentral Processing Unit(中央処理装置)の略である。DRAMはDynamic Random Access Memoryの略である。LANはLocal Area Network(構内通信網)の略である。PCIeはPeripheral Component Interconnect Expressの略である。
ブレードマザーボード1801は、4枚のPIU1802(#1~#4)を収容するシャーシである。PIU1802(#1~#4)のそれぞれは、たとえば図2に示したラインカード211~21i,231~23jに対応する構成である。PIU1802(#1~#4)は、それぞれOTNフレーマ1803(#1~#4)、FIC1804(#1~#4)、回線インタフェースモジュール1805(#1~#4)および回線インタフェースモジュール1806(#1~#4)を備える。また、PIU1802(#1~#4)は、それぞれパワーコネクタ1807(#1~#4)およびコネクタ1808(#1~#4)を備える。
OTNフレーマ1803(#1~#4)のそれぞれは、たとえば図6,図8に示したOTNフレーマ620,820に対応する構成である。FIC1804(#1~#4)のそれぞれは、たとえば図6,図8に示したFIC630,810に対応する構成である。回線インタフェースモジュール1805(#1~#4)のそれぞれは、たとえば図6,図8に示した回線インタフェースモジュール611~614,831~834に対応する構成であり、たとえばQSFP28/QSFP+やQSFP+である。回線インタフェースモジュール1806(#1~#4)のそれぞれは、たとえば図6,図8に示したFIC630,810におけるパケットスイッチ221~224の側のインタフェースであり、たとえばQSFP28である。
たとえば、上述したIngress側のラインカード211がPIU1802(#1)であり、上述したEgress側のラインカード231がPIU1802(#3)であるとする。この場合、回線インタフェースモジュール1805(#1)からPIU1802(#1)へ入力されたデータはOTNフレーマ1803(#1)およびFIC1804(#1)によりセグメントとして回線インタフェースモジュール1806(#1)から送信される。
回線インタフェースモジュール1806(#1)から送信されたデータ(セグメント)は、パケットスイッチ221~224によってPIU1802(#3)へ転送される。PIU1802(#3)へ転送されたデータは、回線インタフェースモジュール1806(#3)から入力され、FIC1804(#3)およびOTNフレーマ1803(#3)によって回線インタフェースモジュール1805(#3)から出力される。
パワーコネクタ1807(#1~#4)は、直流電源1817からの電源をそれぞれPIU1802(#1~#4)へ供給するコネクタ(PWR CN)である。コネクタ1808(#1~#4)は、それぞれPIU1802(#1~#4)におけるPCIeスイッチ1812およびセレクタ1816との間のコネクタである。
また、ブレードマザーボード1801には、PIU1802(#1~#4)の監視制御のために、CPU1809と、フラッシュメモリ1810やDRAM1811などのメモリ類と、が搭載される。たとえば、CPU1809は、PCIeスイッチ1812を介したPCIeバスによりPIU1802(#1~#4)の監視制御を行う。PIU1802(#1~#4)の監視制御には、たとえばOTNフレーマ1803(#1~#4)やFIC1804(#1~#4)などの監視制御が含まれる。また、CPU1809は、LANスイッチ1813を介してクロスコネクト装置1800の外部との間で通信を行う。
同期信号生成部1814(SYNC)は、上述した装置内のリファレンスクロック(Clock)およびリファレンスタイミングパルス(Frame Timing)を生成する。このリファレンスクロックおよびリファレンスタイミングパルスは、OIF OFPのパケットスイッチ221~224によるODUスイッチ(CE技術)を実現するための信号である。OIFはOptical Internetworking Forum(オプティカルインターネットワーキングフォーラム)の略である。同期信号生成部1814は、生成したリファレンスクロックおよびリファレンスタイミングパルスを、コネクタ1815を介してセレクタ1816へ出力する。
また、同期信号生成部1814(SYNC)は、現用(W)および冗長(P)が設けられ、リファレンスクロックおよびリファレンスタイミングパルスをそれぞれ2系統出力する。セレクタ1816は、2系統のリファレンスクロックおよびリファレンスタイミングパルスのうち1系統のリファレンスクロックおよびリファレンスタイミングパルスを選択してPIU1802(#1~#4)へ分配する。
直流電源1817は、ブレードマザーボード1801の各部品やPIU1802(#1~#4)に対して直流電源を供給する。また、直流電源1817は、直流電源の電圧変換を行うDC/DCコンバータを備え、電圧変換後の直流電源を供給してもよい。ファン1818,1819は、クロスコネクト装置1800の内部を強制的に冷却する。
監視制御インタフェース1820は、クロスコネクト装置1800の外部のEMSやNMSなどからの監視制御用パケットを受信する。そして、監視制御インタフェース1820は、受信した監視制御用パケットを、コネクタ1821およびLANスイッチ1813を介してCPU1809へ出力する。EMSはElement Management System(監視制御局)の略である。NMSはNetwork Management System(ネットワーク管理システム)の略である。
このように、クロスコネクト装置200によれば、たとえばラインカード211へ入力されるデータ(クライアント信号)の分割により得られた連続する3(M)個のODUセグメント毎に、以下の処理を行うことができる。すなわち、その3個のODUセグメントと、その3個のODUセグメントに基づくパリティセグメントと、をパケットスイッチ221~224に振り分けて送信することができる。これにより、たとえばラインカード231が、パケットスイッチ221~224により転送される3個のODUセグメントおよびパリティセグメントの少なくとも3個の情報に基づいて、パケットスイッチ221へ入力されたデータを復元して出力することができる。
たとえば、装置内の障害やエラーにより3個のODUセグメントおよびパリティセグメントのうち1個の情報がラインカード231によって正常に受信されなくても、残りの3個の情報のXOR演算によりその1個の情報を算出し、データを復元することができる。
また、たとえば1+1の冗長構成と比べて、総スイッチ容量および総リンク帯域が狭く、コストおよび消費電力の面で有利になる。また、1:3冗長が採られたスイッチファブリックの余剰帯域を活用するため、パリティセグメントを送受信するためのリンク帯域の増設は不要である。また、簡単な回路(たとえばXOR演算回路)の追加で廃棄セグメントやエラーセグメントの復元が可能になる。
また、スイッチ故障、リンク障害、パケット廃棄のそれぞれ共通の仕組みで対応することができる(図3~図5参照)。たとえば、障害が発生したスイッチやリンクを回避するための切替制御や、廃棄パケットやエラーパケットの再送が不要である。また、Egress側で廃棄パケットやエラーパケットを復元できるため、ヒットレス(Hitless)な切り替えおよびエラーフリー(Error-Free)を実現することができる。
また、廃棄またはエラーが発生したセグメントの再送待ち合わせが不要であるため、ODU latencyの増加が少ない。なお、上述したパリティセグメントの待ち合わせによるODU latencyの増加はODU0でも3.2[μs]程度である。
また、ラインカード211~21iからパケットスイッチ221~224への振り分けは静的にすることができるため、ロードシェア(Load Share)などの動的な振り分け回路が不要になる他、ラインカード211~21iにスイッチ故障やリンク障害を通知するための障害通知プロトコル、ないしは宛先ラインカード231~23iへの到達性を通知するルーティング・プロトコルやシグナリング・プロトコルが不要になる。
また、上述したMについて、MをM=2m-1(mは2以上の自然数)としてもよい。図2等に示した例ではM=3(m=2)である。これにより、同一のパリティグループ内の各ODUセグメントのシーケンス番号のXORによりパリティセグメントのシーケンス番号を生成することができる。また、同一パリティグループになるM+1個のセグメントが、PWMCWのシーケンス番号の上位(16-Log2(M+1))ビットにより識別可能になる。また、同一パリティグループ内のM個のODUセグメントおよびパリティセグメントをPWMCWのシーケンス番号の下位Log2(M+1)ビットにより識別可能になる。
また、上述したNについて、N+1=2(m+k)(kは0以上の自然数)としてもよい。図2等に示した例ではN=3(m=2、k=0)である。これにより、入力部111は、シーケンス番号の下位(m+k)ビットを参照することにより、連続するM個のODUセグメントおよび対応するパリティセグメントの組み合わせをパケットスイッチ221~224へ固定的に振り分けて送信することが可能になる。このため、たとえばラインカード211の回路の簡単化を図ることができる。
以上説明したように、伝送装置、伝送方法および処理装置によれば、伝送遅延およびサービス中断を抑制することができる。
上述した各実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数の入力部から入力される各データを、N+1個(Nは2以上の自然数)のスイッチを用いてそれぞれ複数の出力部のいずれかから出力する伝送装置であって、
前記複数の入力部に含まれる第1入力部であって、入力されるデータを所定単位の部分データに分割し、分割により得られた連続するM個(Mは2以上かつN以下の自然数)の部分データ毎に、前記M個の部分データと、前記M個の部分データに基づく水平パリティと、を前記N+1個のスイッチに振り分けて送信する第1入力部と、
前記複数の出力部に含まれる出力部であって、前記第1入力部により前記N+1個のスイッチに振り分けて送信され前記N+1個のスイッチにより転送される前記M個の部分データおよび前記水平パリティの少なくともいずれかに基づいて、前記第1入力部へ入力された前記データを復元し、復元した前記データを出力する出力部と、
を含むことを特徴とする伝送装置。
(付記2)前記N+1個のスイッチにより処理可能なデータの総帯域は、前記複数の入力部から送信される各データの総帯域より広く、かつ前記複数の入力部から送信される各データの総帯域の2倍より狭いことを特徴とする付記1に記載の伝送装置。
(付記3)M=2m-1(mは2以上の自然数)であり、
前記第1入力部は、前記M個の部分データ毎に、それぞれシーケンス番号を含むヘッダを付した前記M個の部分データと、前記M個の部分データに付した各シーケンス番号の排他的論理和であるシーケンス番号を含むヘッダを付した前記水平パリティと、を前記N+1個のスイッチに振り分けて送信する
ことを特徴とする付記1または2に記載の伝送装置。
(付記4)N+1=2(kは0以上の自然数)であることを特徴とする付記3に記載の伝送装置。
(付記5)前記第1入力部は、前記M個の部分データ毎に、前記M個の部分データに付した前記ヘッダと、前記水平パリティに付した前記ヘッダと、にそれぞれ前方誤り訂正符号を付し、前記前方誤り訂正符号を付した前記M個の部分データおよび前記水平パリティを送信し、
前記出力部は、前記M個の部分データおよび前記水平パリティについて前記前方誤り訂正符号に基づく誤り訂正処理を行い、前記誤り訂正処理を行った前記M個の部分データおよび前記水平パリティにそれぞれ付された前記ヘッダの内容の適格性を判定する
ことを特徴とする付記3または4に記載の伝送装置。
(付記6)前記部分データは、前記部分データのデータ長が一定になるように挿入されたパディングと、前記パディングの挿入前の前記部分データのデータ長を示すヘッダと、を含むことを特徴とする付記1~5のいずれか一つに記載の伝送装置。
(付記7)複数の入力部から入力される各データを、N+1個(Nは2以上の自然数)のスイッチを用いてそれぞれ複数の出力部のいずれかから出力する伝送方法であって、
前記複数の入力部に含まれる第1入力部が、入力されるデータを所定単位の部分データに分割し、分割により得られた連続するM個(Mは2以上かつN以下の自然数)の部分データ毎に、前記M個の部分データと、前記M個の部分データに基づく水平パリティと、を前記N+1個のスイッチに振り分けて送信し、
前記複数の出力部に含まれる出力部が、前記第1入力部により前記N+1個のスイッチに振り分けて送信され前記N+1個のスイッチにより転送される前記M個の部分データおよび前記水平パリティの少なくともいずれかに基づいて、前記第1入力部へ入力された前記データを復元し、復元した前記データを出力する
ことを特徴とする伝送方法。
(付記8)複数の入力部から入力される各データを、N+1個(Nは2以上の自然数)のスイッチを用いてそれぞれ複数の出力部のいずれかから出力する伝送装置の前記複数の入力部に含まれる第1入力部に適用される処理装置であって、
前記第1入力部へ入力されるデータを所定単位の部分データに分割する処理部と、
前記処理部の分割により得られた連続するM個(Mは2以上かつN以下の自然数)の部分データ毎に、前記M個の部分データと、前記M個の部分データに基づく水平パリティと、を前記N+1個のスイッチに振り分けて送信する送信部と、
を備えることを特徴とする処理装置。
(付記9)複数の入力部から入力される各データを、N+1個(Nは2以上の自然数)のスイッチを用いてそれぞれ複数の出力部のいずれかから出力する伝送装置の前記複数の出力部に含まれる出力部に適用される処理装置であって、
前記複数の入力部に含まれる第1入力部であって、入力されるデータを所定単位の部分データに分割し、分割により得られた連続するM個(Mは2以上かつN以下の自然数)の部分データ毎に、前記M個の部分データと、前記M個の部分データに基づく水平パリティと、を前記N+1個のスイッチに振り分けて送信する第1入力部により前記N+1個のスイッチに振り分けて送信され前記N+1個のスイッチにより転送される前記M個の部分データおよび前記水平パリティを受信する受信部と、
前記受信部によって受信された前記M個の部分データおよび前記水平パリティの少なくともいずれかに基づいて、前記第1入力部へ入力された前記データを復元し、復元した前記データを出力する処理部と、
を備えることを特徴とする処理装置。