コンテンツにスキップ

BMP テーブル

概要

BGP Monitoring Protocol (BMP, RFC 7854) の テーブルダンプ機能のオンオフを設定するテーブル1。 BMP collector への接続自体は BGP_MONITORS で定義し、BMP テーブルは「どのテーブルダンプ (BGP neighbor / Adj-RIB-In / Adj-RIB-Out) を送るか」のフラグだけを持つ。

openbmpd(BMP collector 側)ではなく、SONiC スイッチ側の BMP exporter を制御する想定。

データフロー (自動生成)

flowchart LR
  CDB[("CONFIG_DB<br/>BMP")]
  DM["bmpcfgd"]
  CDB --> DM

凡例

CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。

key 構造

BMP|table

table シングルトン。

フィールド

フィールド 既定 説明
bgp_neighbor_table boolean true BGP neighbor テーブルダンプを送る
bgp_rib_in_table boolean false Adj-RIB-In テーブルダンプを送る
bgp_rib_out_table boolean false Adj-RIB-Out テーブルダンプを送る

購読者

  • BMP exporter(bmpcfgd 系。BGP container 内のサイドカー)が CONFIG_DB を購読し、FRR の BMP プラグインに反映

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: BGP_MONITORS(BMP collector 接続定義)
  • 関連 YANG: sonic-bmp

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: BMP|table
  • bgp_neighbor_table: truebgp_rib_in_table: truebgp_rib_out_table: false(負荷軽減)。

よくある誤設定

  • rib_out まで true にすると BMP collector への帯域が想定以上に膨らむ。

確認コマンド

sonic-db-cli CONFIG_DB hgetall 'BMP|table'
show bmp

値依存挙動マトリクス

このテーブルには enum フィールドはない。全フィールドは boolean。

boolean フィールドの共通挙動 (bmpcfgd.py)

フィールド true false
bgp_neighbor_table openbmpd が BGP_NEIGHBOR テーブルダンプを BMP_STATE_DB に書く ダンプを送らない
bgp_rib_in_table Adj-RIB-In テーブルダンプを送る ダンプを送らない
bgp_rib_out_table Adj-RIB-Out テーブルダンプを送る ダンプを送らない

副作用: 任意のフィールドを変更すると bmpcfgd は常に openbmpd を stop → BMP_STATE_DB をクリア → start する。部分的な変更でも全テーブルが再構築される。

例外条件・特殊挙動

条件 挙動 ソース
不明なフィールドが設定される common_config.get('bgp_neighbor_table', 'false') 等のデフォルト補完で false 扱い。スキーマ外フィールドは silently ignored bmpcfgd.py L41-43
"True" / "TRUE" / "1" 等の値 is_true()str(val).lower() == 'true' のみ受理。"true" 小文字のみ有効 bmpcfgd.py L28
設定変更ごとに openbmpd を再起動 stop → BMP_STATE_DB クリア → start の順序。supervisorctl 失敗時は例外 catch なし → bmpcfgd クラッシュの可能性 bmpcfgd.py L46-49
CONFIG_DB 接続不可 retry_on=True で無限リトライ (CONFIG_DB 起動まで待機) bmpcfgd.py L78