サイト内検索

SONiC Workshop~SONiCソースコードについて生成AIに聞いてみた編~

はじめに
本記事は、2025年5月16日に開催されたSONiC workshopで講演した内容です。
様々な生成AIを使ってSONiCソースコードの理解促進が目的で特定コードの詳細説明や生成AIの性能比較の意図はありません。
なお生成AIも間違える事(ハルシネーション)が在りますので、内容が正しいか必ずご確認して下さい。

プレゼンテーション資料をご希望の方は下記よりダウンロード可能ですのでぜひご参照ください。

SONiCソースコードについて生成AIに聞いてみた

SONiCソースコードについて チャットベースで聞いてみた結果

まず最初にSONiCソースコードについてチャットベースで聞いてみた内容をご紹介します。

Open AIのChatGPT4oに、
「SONiCソースコードはどこで公開されている?」
と聞いてみました。

ChatGPT回答は、以下のGitHubリポジトリで公開されていますと、
”github.com”,” sonic-net”,” SONiC” を紹介してくれました。

次にGoogle Gemini2.0 Flash Deep Researchで
「SONiC公式GitHubリポジトリを参照して、202305から202505までの全てのリリースについて新規追加機能を表形式でまとめて」
と依頼してみました。

概ね間違いはなさそうですが、内容の詳細は確認の必要がありますのでご注意ください。

次に Anthoropicの Claude 3.7 Sonnetに
「SONiCソースコードのコンパイル方法を10行でまとめて」
と依頼したら分かり易く10行にまとめてくれました。

  1. 必要なビルドツール(make,gcc/g++,pkg-config)とライブラリ(libwebpb,libfltk,libtiff,libpng,libjpeg)をインストールする
  2. SONiCのソースコードをリポジトリからダウンロードする(git clone)
  3. ソースコードのディレクトリに異動する(cd sonic)
  4. configureスクリプトを実行して環境設定を行う(./configure)
  5. makeコマンドでビルドする(make)
  6. make installコマンドでシステムにインストールする(sudo make install)
  7. 依存関係に問題がある場合は、./configure --helpで必要なオプションを確認する
  8. デバッグビルドを行う場合は、CFLAGS="-g -O0"./configureを実行する
  9. 特定のコンポ―ネントのみをビルドする場合は、make[コンポーネント]を実行する
  10. ビルド後に問題が発生した場合は、make cleanを事項してから再ビルドする

                                               参考:https://claude.ai/new


このように、SONiCソースコードについてチャットベースで聞いてみた結果、チャットで聞いただけでも有益な情報入手が可能でした。

SONiCソースコードを参照しながら聞いてみた結果

次にSONiCソースコードを参照しながら聞いてみました。

ChatGPTが教えてくれた通り、GitHubの sonic-netにソースコードリポジトリーがあります。

Sonic-mgmtリポジトリに移動して、右上にある Copilotボタンを押して、
「このリポジトリの概要を教えて」と聞くと
「SONiCのネットワーク管理と自動化を目的としたソフトウエアがあります」と教えてくれました。

さらに tests, vlanに移動し、test_vlan.py を開いて
「test_vlan.pyの使い方を教えて」と聞いてみると
「構成と機能や実際の使い方」を説明してくれました。

次に sonic-mgmtリポジトリに対する Pull Requestを一つ開いて
「このPull Requestの概要」を質問してみると、
「このPRはPython3用の docker-ptfに関連するコードの追加・削除を行う」
と解説してくれました。

MicrosoftのVisual Studio Codeエディタ

MicrosoftのVisual Studio Codeエディタを使った例です。

VS Codeで GitHubのリポジトリをLocalにCloneして参照することが出来ます。

VS Codeは様々な拡張機能を追加でインストールすることができますので、
GitHub Copilot Chat拡張機能を追加し、
Sonic-swssの bgp関連ファイルを開いて「ファイルの概要」を質問すると
「BGPのウォームリブート中にEnd of Initial Updateマーカーを設定するスクリプトです」と解説してくれました。

GitHub Copilot Chatと類似の拡張機能として
Gemini Code Assist Chatを追加インストールして、
Sonic-swssの teamsyncd関連の cppファイルを開いて「ファイルの概要」を聞いてみました。
すると「LAGの状態と設定データベース、状態データベースの同期をとる」と説明してくれました。

GitHubや VS CodeでSONiCソースコードを参照しながら聞いてみた結果、知りたいソースコードに基づいて回答してくれました。

NotebookLMに取り込んで 聞いてみた結果

NotebookLMはGoogleが提供しているAIリサーチアシスタントです。

PDFやウェブページ、Youtube動画などを読み込んで、ドキュメントの内容を要約したり、ドキュメントに基づいた回答をしてくれます。
質問をしなくてもドキュメント内容に基づいて、概要やFAQ、理解するためのガイドのメモを生成してくれます。
資料が手元になくてもWEB情報を検索してくれたり、マインドマップ形式にまとめてくれたり、男女二人のポッドキャスト音声で説明してくれます。

NotebookLMにアクセスしてソースを追加できます。
PDFや、ウェブサイト、Youtube動画やテキストをアップロードできますし、手元に資料が無い場合は、
「SONiCソースコード」と入力すると、
自動で10個の SONiCソースコード関連のWebページやドキュメントを取り込んで、数分で概要メモや理解するためのガイドやマインドマップを作成してます。

また音声概要をクリックすると数分で、男女二人の掛け合いでポッドキャスト音声で解説してくれるので目でなく耳から理解することも可能です。

SONiCソースコード関連情報を NotebookLMに取り込んで聞いてみた結果、質問をしなくても概要をまとめてくれるので全体を理解したい時に使えます。

DeepWikiで 聞いてみた結果

次に DeepWikiで聞いてみました。
DeepWikiは Cognition Labsが提供しいてる GitHubリポジトリを自動解析して説明してくれるサービスです。
自動的に解析して、コードベースの機能の説明やアーキテクチャー図やフローチャート図で視覚的に理解を助ける図を生成してくれたり、チャットで質問も可能です。

使い方は非常に簡単で GitHubの URLにある githubを deepwikiに置き換えるだけです。

たとえば githubのsonic-net / sonic-sairedisリポジトリを開くとこんな形ですが

githubを deepwikiに変えると sonic-sairedisについて概要、アーキテクチャー等を詳細に説明してくれます。
この例では Chromeブラウザで日本語翻訳したものです。

例えば、Deepwikiのチャット画面で 「SAIとREDISの関係を説明して」と依頼すると
「REDISをSAI API実装の通信メカニズムとして使用しています」と説明してくれました。

SONiCリポジトリについて DeepWikiで聞いてみた結果、リポジトリにあるソースコードを分かり易く解説してくれるのでリポジトリの理解促進に最適だと分かりました。

SONiC設定CLIコマンドを 生成させてみた結果

最後に、SONiC設定CLIコマンドを生成させてみた結果を御紹介します。
ChatGPTで 「SONiCで Ethenert1とEthernet2を vlan10の untagメンバーに追加するCLIスクリプトを生成して」とお願いした結果、
3行のCLIコマンドを生成してくれました。

最初はエラーになったのですが、 sudo をつけて実行するとエラーなく実行され、VLAN設定結果も期待通りとなっていました。

次に「 ecSONiCで以下のACLを構成するための CLIスクリプトを生成し、
Sudoも付けてTable名、Priority、Ethernet0で受信したIPがある値の時に廃棄」
と依頼すると3行のCLIコマンドを生成してくれました。

実行してみると、ACLルール設定コマンドの引数設定が違っているようでエラーとなりました。
ACLテーブルは作成されましたが Ethernet0指定が行われず全ポート指定となっていました。

試しに正しいCLIスクリプトを実行すると期待通りのACL設定となりました。

SONiC設定CLIコマンドを ChatGPTで生成させてみた結果、簡単なVLAN設定は出来ましたが、少し複雑なACL設定はエラーとなりました。
今後生成AIが、より多くのSONiC CLI情報を学んで更に賢くなれば、複雑な設定も出来るようになると思われますが、それにはもう少しかかりそうです。

まとめ

・コーディングの世界でも生成AIの活用が広がっています
・SONiCソースコードも生成AIを使えば分かり易く解説可能です
・ソースコードを読み解いてSONiCの動作理解を深めましょう
・設定CLIスクリプトの生成も出来つつあります

AIを味方につけて Happy SONiC Life を楽しみましょう!


資料一覧はこちら

資料一覧

マクニカが取り扱う製品のご紹介のほか、
BGPクロスネットワーク自動構築ファイルやネットワーク運用試験評価レポートなど、オープンネットワーキングに関する資料を掲載しております。

詳細はこちら

製品ページTopへ

Aviz Networks

オープンソースネットワークOSであるSONiCのパイオニアであり、可観測性や設定自動化ツール、SONiCエキスパートチームによるサポートを提供しています。

Edgecore Networks

OpenNetworking/ホワイトボックススイッチ関連製品を先行して開発・販売し、オープンネットワーキングの先駆者であり続けています。

IP Infusion

オープンネットワーキングプロバイダのマーケットリーダーとして、キャリア、サービスプロバイダ、データセンターなど600社以上のお客様に信頼性の高いネットワークソリューションを提供しています。

お問い合わせ・資料請求

株式会社マクニカ Edgecore Networks 担当

平日 9:00~17:00