Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SONiCコミュニティにアップストリームしてみた.pdf

 SONiCコミュニティにアップストリームしてみた.pdf

SONiC Workshop Japan 2024
https://sonic.connpass.com/event/313138/
SONiCコミュニティにアップストリームしてみた
NTT 中野寛二

Tweet

More Decks by SONiC Users Group Japan

Other Decks in Technology

Transcript

  1. 3 Copyright 2024 NTT CORPORATION SONiCへのアップストリーム方法 • SONiCに機能提案を行う際に次の開発サイクルを行う。 • 当該ブランチのリリース日までに完成しなかった機能が次

    のリリース以降に実装される。 https://github.com/sonic-net/SONiC/wiki/release_train Plan : 次回リリースのロードマップに追加するように、コミュニティに機 能提案する。 また、HLDの概要を提案するのとレビューの日付 を決定する。 Design review : HLDには詳細なデザインとSONiCアーキテクチャへの適合性 を記載することが必要になる。HLDはコミュニティからレビュー が行われる。 Coding & Test : HLDに従ってコーディングとテスト行う。HLDレビュー結果に よってコード修正が必要となる。 Release : 機能を実装したブランチがリリース日に提供される。ブランチの 動作検証/コード修正期間(1-2ヶ月)が設けてあり、その間に当 該機能の検証/修正作業を行う。 Plan Design Coding & Test Release
  2. 5 Copyright 2024 NTT CORPORATION • SONiCにコントリビューション する際はLinux Foundationの ICLA(Individual

    CLA)にサイン する必要がある。(企業名で活動 する際は、属する企業のポリ シーに従って上記に署名) • 初めてPRを送る際にEasyCLAシ ステムでCLA署名を求められ、 署名しないとCIが回らない。 (Plan前準備) CLAの確認 https://docs.linuxfoundation.org/lfx/easycla/v2-current/contributors/individual-contributor
  3. 7 Copyright 2024 NTT CORPORATION (Plan, Design review)機能提案 • SONiC

    communityのメーリングリストに対して機能提案の実 施を行いHLDのレビューを実施する • HLDレビューの結果、詳細の議論を各種WGで行う。
  4. 8 Copyright 2024 NTT CORPORATION (Coding & Test)コードの提出 • HLDレビューの実施後、実装コードをGithubにPRを行いコード

    レビューを実施する。 • コードレビューの結果、問題なければマージ承認を貰いマージ をする。
  5. 11 Copyright 2024 NTT CORPORATION SONiCの課題 プレーン 分類 コミュニティSONiCの状況/課題 検討したアプローチ

    マネジメント 設定変更コマンド体系 コマンド数が少ない。 KLISH CLI拡張 (Management Framework) L2/L3設定コマンド体系が異なる 外部制御プロトコル 設定項目が限定的 YANG拡張 (Management Framework) REST, gNMIのみ。旧来から利用するNETCONF に対応不可。相互接続性に難あり。 NETCONF拡張 (Management Framework) コントロール ルーティングプロトコル 標準ではBGPのみ利用可。OSPF等のIGPサポート 不可。 COPP関連の設定ファイル変更 ECMP経路処理 旧来の経路追加メッセージのみ利用可。Nexthop Group (netlinkメッセージ)が利用不可。 Fpmsyncd機能*拡張 *fpm形式のnetlinkメッセージの経路更新メッ セージをRedis DBに同期する機能 データ 伝送機能のサポート • Alibabaによる伝送機能のサポートの議論して いるが対応ハードウェアの入手性に難あり。 • 市中製品による伝送機能の実装 SAIのサポート • SAIサポートの対応状況がASIC毎に異なる。 • BroadcomはSAIフルスペックをサポート不可 • SAIの多くのAPIに準拠していた Intel Tofinoが開発中止。機能拡 張には他チップ検討要 • Broadcomはコミュニティ版 libsaiに意図的に制限があるため メーカとの連携検討要 • 2022年からSONiCの取り組みをしていく中で検討してきた課題
  6. 12 Copyright 2024 NTT CORPORATION SONiCへのアップストリーム方法 • 202311リリースまでのスケジュール https://lists.sonicfoundation.dev/g/sonic- dev/message/317?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Acreated%2C0%2C202311%2C20%2C2%2C40%2C99214915

    2023年 5 6 7 8 9 10 11 HLD PR HLDの公開 & 機能提案 HLDレビュー Routing WG HLDレビューUMF WG, Routing WG HLDレビュー SONiC community Meeting Code PR HLDレビュー日の打診 HLD 修正 Code 修正 & Test 機能提案期間 HLDレビュー期間 Code PR作成 release コミュニティのマイルストーン NTTの状況
  7. 16 Copyright 2024 NTT CORPORATION 機能提案 • SONiCコミュニティのメーリングリストに対して機能提案の実 施を行う https://lists.sonicfoundation.dev/g/sonic-

    dev/message/362?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Arecentpostdate%2Fsticky%2C%2CNETCONF%2C20%2C2%2C20%2C99844211 マイクロソフトのYanzhaoさん(SONiC PM)
  8. 17 Copyright 2024 NTT CORPORATION オンラインでの議論 • SONiC community Meeting(毎週水曜日0:00-1:00)で

    HLDのレビューの実施 • HLDレビューを通じてWGで詳細議論を行うことになった • NETCONFの提案: UMF WG (不定期木曜日 0:30-1:30) • fpmsyncdの提案: Routing WG (毎週金曜日 9:30-10:30) https://lists.sonicfoundation.dev/g/sonic-dev/subgroups
  9. 18 Copyright 2024 NTT CORPORATION 提案したNETCONFの概要 • NETCONFを対応することで相互接続性の向上を行う。 • NETCONF

    ServerにNetopeer2を使用している。NETCONF ServerはNETCONFの設定値をRESTに 変換してSONiC内部のRESTを操作する。 対応している機能 RFC Operation Name Supported edit-config Partially get-config Partially get No copy-config No delete-config No lock No unlock No close-session Yes kill-session Yes
  10. 19 Copyright 2024 NTT CORPORATION NETCONFのアップストリーム状況(1/2) • NETCONFのHLDをPRしたところフランスのテレコム会社のOrangeから連絡があり、 Orangeが自社でクローズドにSONiCへNETCONFの実装をしていることが判明した。 •

    Orangeのデザインは既存のManagement Frameworkに影響がない実装をしていた。 • OrangeとNTTでNETCONFについて議論を実施していくことになった Orangeのデザイン NTTのデザイン
  11. 21 Copyright 2024 NTT CORPORATION 提案したfpmsyncd拡張の概要 • 経路処理の効率化であるNext Hop GroupにDBからASICまでは対応している。

    • FRRとAPPL_DB間のfpmsyncdはNext Hop Groupに非対応である。 • fpmsyncdをNext Hop Group対応を行い経路処理の効率化を目指す。 bgp container (FRR) staticd bgpd zabra [dplane_fpm_nl] [zebra.conf] fpmsyncd Tcp.port 2620 format: netlink database container (radis-server) CONFIG_DB APPL_DB ASIC_DB ①設定有効化 ② fpm use-nexthop-group オプションの有効化 ③ fpmメッセージ処理の有効化 ④ fpmメッセージ処理の実行 ⑤NEXTHOP_GROUP_TABLE エントリを作成 2 1 3 4 5
  12. 22 Copyright 2024 NTT CORPORATION Fpmsyncd拡張のアップストリーム状況(1/3) • PRしたfpmsyncd拡張のHLDはコミュニティミーティング及びRouting WGで のレビューにて、Next

    Hop Group機能の必要性が認められ機能追加が承認さ れた • HLDレビューでは、次の確認があり対応を行った • デフォルトはDisable動作が必要 • Enable/Disableの追加するため修正 • Warm boot時の動作確認 • コード修正⇔コードレビュー対応に想定以上に時間がかかり、202311リリー スでは間に合わなかったため、202405リリースでも継続して提案を実施した
  13. 26 Copyright 2024 NTT CORPORATION Fpmsyncd拡張のアップストリーム状況(3/3) 火曜日にNVIDIAの方から連絡がきた FRRの問題でNextHop Groupに必要な dplen_fpm_nlは無効化することになった

    中野 Nexthop Groupにはdplen_fpm_nlは必須だ こんな話をして2日がたったころ パフォーマンスの調査をしたらdplen_fpm_nl は問題ではなかったので有効化する
  14. 27 Copyright 2024 NTT CORPORATION Fpmsyncd拡張のアップストリーム状況(3/3) 火曜日にNVIDIAの方から連絡がきた FRRの問題でNextHop Groupに必要な dplen_fpm_nlは無効化することになった

    中野 Nexthop Groupにはdplen_fpm_nlは必須だ こんな話をして2日がたったころ パフォーマンスの調査をしたらdplen_fpm_nl は問題ではなかったので有効化する 結局、Fpmsyncd拡張には問題なかった
  15. 30 Copyright 2024 NTT CORPORATION まとめ • SONiCの取り組みをしていく中で課題の抽出を行った。 • 課題に対して提案を行い。一定のコントリビューション成果を得ることができた。

    • NETCONFに関してSONiCのデザイン原則に合わなかったが Orangeも同じ機能提案を実施していたためOrangeと議論しながら進めている • ルーティングの効率化に関してはDC事業者からも賛同が得られたが PR承認者からの承認が得られずマージされていない状況 • コントリビューションを行う中で得られた知見 • (実装)既存機能に影響を与えないことが重要 › 機能ごとにコンテナを作成するデザインが原則 › 既存機能に組み込む場合は初期動作は無効にする › 設定の有効化/無効化機能が必要 • (設計)実装前のデザイン段階からコミュニティと議論を行うことが重要 • 仲間づくり・コミュニケーションが重要 本研究成果は、国立研究開発法人情報通信研究機構(NICT)の 助成事業(JPJ012368G60401)により得られたものです。