コンテンツにスキップ

PORTCHANNEL_MEMBER テーブル

概要

PORTCHANNEL とその物理メンバ PORT の対応を保持する。teammgrd がこの関係を読み、teamdenslave 操作を実行する1

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

flowchart LR
  CDB[("CONFIG_DB<br/>PORTCHANNEL_MEMBER")]
  DM["teammgrd"]
  CDB --> DM
  APPDB[("APP_DB<br/>APP_LAG_MEMBER_TABLE")]
  DM --> APPDB
  SYNCD["syncd"]
  APPDB --> SYNCD
  SAI["SAI<br/>sai_lag_api"]
  SYNCD --> SAI

凡例

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

key 構造

PORTCHANNEL_MEMBER|<portchannel_name>|<port_name>

両 key とも leafref で、PORTCHANNEL.namePORT.name を参照する。

フィールド一覧

フィールド 必須 デフォルト 説明
name (key) leafref PORTCHANNEL.name - 親 PORTCHANNEL
port (key) leafref PORT.name - メンバ物理ポート

このテーブルは key のみで、付加フィールドを持たない。

購読者

  • teammgrd: メンバの追加・削除を teamd に伝達
  • orchagent LagOrch: SAI LAG member を生成・削除

関連 CONFIG_DB / YANG / CLI

  • 関連 CONFIG_DB: PORTCHANNELPORTVLAN_MEMBER (PORTCHANNEL_MEMBER に登録された port は VLAN_MEMBER に登録不可、must 制約は VLAN 側)
  • 関連 CLI: config portchannel member add/del
  • 関連 YANG: sonic-portchannel

値依存挙動マトリクス

PORTCHANNEL_MEMBER キー: name / port

フィールド 挙動
name 存在する PORTCHANNEL 名 teammgrd が teamd に enslave 要求、LagOrch が SAI LAG member 追加
name 存在しない PORTCHANNEL 名 YANG leafref 違反 reject
port 存在する PORT 名 物理ポートを LAG に bind
port 存在しない PORT 名 YANG leafref 違反 reject
port PHY / SYSTEM 型以外 LAG member port has to be of type PHY or SYSTEM SWSS_LOG_ERROR
port 異なる ASIC の switch_id (chassis) System lag switch id mismatch SWSS_LOG_ERROR

このテーブルはキー (name, port) のみで付加フィールドを持たない。enum なし。

例外条件・特殊挙動

YANG スキーマ検証

  • key (name, port) は PORTCHANNEL と PORT への leafref。参照先が存在しない場合は YANG validate で reject。

consumer (portsorch / teammgr) 例外動作

  • メンバーポートが PHY/SYSTEM 型以外: LAG member port has to be of type PHY or SYSTEM → SWSS_LOG_ERROR。
  • chassis 環境で switch id ミスマッチ: System lag switch id mismatch. Lag %s switch id: %d, Member %s switch id: %d → SWSS_LOG_ERROR。
  • DEL で存在しないメンバー: Member %s not found in LAG %s → SWSS_LOG_WARN。
  • SAI LAG member add 失敗: Failed to add member %s to LAG %s → SWSS_LOG_ERROR。
  • SAI LAG member remove 失敗: Failed to remove member %s from LAG %s → SWSS_LOG_ERROR。
  • teamd でポート未発見: Unable to find port %s → SWSS_LOG_WARN。

関連リファレンス

引用元

関連 Topics

運用ヒント

典型値

  • key 形式: PORTCHANNEL_MEMBER|PortChannel0001|Ethernet0
  • 値は空 hash(メンバ関係の存在自体が意味を持つ)。

よくある誤設定

  • VLAN_MEMBER に同じ Ethernet が残ったまま PORTCHANNEL_MEMBER に追加すると orchagent エラー。
  • L3 IP を持つポートを LAG メンバに入れると INTERFACE 側が孤立。

確認コマンド

sonic-db-cli CONFIG_DB keys 'PORTCHANNEL_MEMBER|PortChannel0001|*'
show interfaces portchannel