🌊

G-SRv6 using P4, SONiC and ODL (P4 Workshop 2022, China Mobile)

2022/08/24に公開

中国の CENI: China Environment for Network Innovations という中国40都市を繋いだ実験ネットワーク上に G-SRv6 をデプロイした事例が 2022年5月の 2022 P4 Workshop [2] で紹介された。

要点は以下の通り:(個人的にはODLを活用している事に感激)

  • G-SRv6 ノード(Router/Switch)は P4 (Tofino ASIC) + SONiC を用いて実装
  • コントローラは OpenDaylight (ODL) を利用
  • 上記を用いて L3VPN over G-SRv6 サービスの実証実験を CENI で実施
  • CENI は SDN と Segment Routing の2プレーンからなる実験ネットワーク
  • "Open SRv6 Project: Open Source" と言っているが、P4 やコントローラの実装は見あたらない

発表動画(YouTube):Open SRv6 Project: Open Source for P4-based Edge Router

以降、スクリーンショットは動画から抜粋(スライドの公開は無し)

発表者は以下2名で、Weiqiang Cheng @ China Mobile は G-SRv6 [1] の著者。

  • Weiqiang Cheng, Principle Architect of IP Network, China Mobile
  • Jiang Liu, Professor, Beijing University of Posts and Telecommunications

[1] Generalized SRv6 Network Programming for SRv6 Compression

G-SRv6 Edge Router の実証試験内容

  • 北京(Beijing)と南京(Nanjing)にG-SRv6をサポートしたノードをデプロイ
  • コントローラから End-to-End トポロジーの追加・削除・検索が可能であることを確認
  • コントローラから L3VPN over G-SRv6 トンネルの設定を上記ノードに投入
  • VPNトラフィックが正しく流れる事を確認(Link Statistics等を元に)

システム アーキテクチャ(ODL + SONiC + P4 ASIC)

  • 最初はG-SRv6ノードに(SD-Fabricの)Fabric-TNAを利用し、コントローラにONOSを採用していた
  • その後、SONiC(SAI)をサポートし、コントローラをOpenDaylightに移行した

G-SRv6 ノード アーキテクチャ

  • 左が P4 Pipeline
  • 右が SONiC (Control Plane) と P4 ASIC 間の構成

P4実装の情報

  • Intel SDK バージョン:SDE 9.2.0
  • P4アーキテクチャ: TNA (Tofino Native Architecture)
  • プラットフォーム: Tradex S9180 32X (ASIC: Tofino BFN-T01-032D)

「リソースには余裕がある」と説明しているが、テーブルエントリ数や G-SRv6 以外の機能次第で大きく変わるので、P4 Source Code とパラーメタを見ないと何とも判断できない。

P4実装時のチャレンジと解決方法

  • Tofino ASIC パイプラインで G-SRv6 のように多くのフィールドをサポートするとステージが足りなくなる
    • 動画では解説していないが、PHVレジスタ容量と1ステージで利用可能なレジスタの組合せといった制約によると想像される(ebiken)
  • 利用されない SID を Header ではなく Meta(data) として格納する事により、サポート可能なSIDを23まで増やすことに成功
    • 詳細の解説は無いが、パケット毎の G-SID Index (SI) を見て、どのフィールドをヘッダとして保存しどれをメタデータとして保存するか振り分けていると思われる

参考情報

Discussion