はじめに
SONiCはホワイトボックススイッチで動作するソフトウェアコレクションです。NOSと言ってもいいかもしれません。特定のハードウェアにインストールして使うのですが、当然ながらハードウェアは永遠ではありません。個体だけで考えるなら壊れれば買い直せば済むのですが、そうもいかないことが多々あります。
スイッチ本体が製造中止になることもあれば、ハードウェアベンダーが撤退、あるいはASIC自体の製造中止、買収による事業の停止など、手元でハードウェアが動作していても将来ベンダーによるサポートが受けられなくなる可能性は常につきまといます。
SONiCに関して言えば、オープンソースだから最悪自前で保守すれば大丈夫、という力技もありといえばあり(のようで実質無理)なのですが、新しいハードウェアに乗り換えられるなら乗り換えたほうが将来的に安心できるのは確かです。
そんなこんなで、SONiCでサポートされている、あるいはかつてサポートされていたプラットフォームに関して、気が向く範囲わかる範囲で紹介したいと思います。順不同。
Cavium XPliant
ぜんぶまとめると量が大変なことになりそうなので複数記事にわけます。第1回は、自分が初めてまともに触ったスイッチASICであるCavium XPliantです。
概要
Cavium Networksはシリコンバレーの企業で、ネットワーク処理に適したマルチコアMIPSプロセッサであるOcteonや、セキュリティプロセッサであるNitroxなどのラインナップを持ち、かつてXPliantというプログラマブルASIC製品をラインナップしていました。XPliantは100G✕32ポート、3.2Tbpsのスイッチ容量で、P4以前でパケットのパイプライン処理をプログラムできる唯一のスイッチASICでした。「OpenFlowの次」としてP4が囁かれ始めたころ、P4対応も検討されていたようです。
SONiCはこのXPliantを搭載したホワイトボックススイッチAccton AS7512-32Xをサポートしていました。なおXPliantのSDKソースコードはNDAベースで提供される非公開のもので、SONiCでは公開されているライブラリのビルド済みバイナリ(OpenXPS)を利用しています。
買収とEOL
しかしCavium Networksは2018年7月、Marvellに買収されました。Marvell自身が持つネットワークシリコンとの兼ね合いで、XPliantは予定されていたラインナップ拡充の新規開発が凍結され、事実上EOLとなってしまいました。
元々は2014年にXPliant Inc.をCavium Networksが買収してプログラマブルASICをラインナップに加えていたのですが、諸行無常です。
XPliant向けSONiCはどうなったか
MarvellによるCavium買収の結果、SONiCが必要としているAPIであるSAIは更新されなくなり、新しいバージョンのSAIへの対応ができなくなりました。SONiCは新しいバージョンのSAIに対応する形で機能拡張が続けられていますので、つまり新しいバージョンのSONiCは使えないということになります。よって現在では、JenkinsによるCI/CDの対象外となっています。
SONiCの開発リポジトリにおけるXPliant向けSAIの最終更新は下記commitになります。
Author: Nadiya <Nadiya.Stetskovych@cavium.com>
Date: Fri Aug 25 09:46:14 2017 +0300
[cavm]Update sai revision and packet driver (#914)
Signed-off-by: Nadiya Stetskovych <Nadiya.Stetskovych@cavium.com>
日付から考えるに、対応するSAIのバージョンは1.0と思われます。ちなみにSONiCが現在サポートしているSAIバージョンは1.6.4、公開されているSAI仕様の最新は1.7.1(ちょうど1週間前の2020年11月26日にリリース)です。
サポートされない機能の一例を紹介します。
XPliantのチップやSDKではNATがサポートされていましたが、当時のSAIやSONiCではNATのサポートがありませんでした。したがってビルド済みCavium向けSONiCを入手してもNATを使うことができません。また、当時のSONiC (201712) はVRFをサポートしていなかったため、VRFも使えません。CLIによるインクリメンタルな設定もできなかったと思います。
※12/9追記: すでにSONiCオフィシャルのJenkinsからCavium platformがjobごと削除されていて、古いイメージの入手すら不可能になっていました。イメージを所持していない場合、残念ながらXPliant搭載スイッチでSONiCを動かすことは事実上不可能でした。
最後に
XPliantを搭載したスイッチAccton AS7512-32Xは2018年1月でEOLとなっているため、現在では入手困難と思います。XPliantを搭載した新製品が発売されることもありません。すでに所持している場合を除き、XPliant搭載スイッチの実機に触れる機会は今後なさそうです。なお、万一入手できそうな場合、ファンが相当うるさいのでどうかお気をつけください。