PORTCHANNEL_MEMBER テーブル¶
概要¶
PORTCHANNEL とその物理メンバ PORT の対応を保持する。teammgrd がこの関係を読み、teamd の enslave 操作を実行する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 構造¶
両 key とも leafref で、PORTCHANNEL.name と PORT.name を参照する。
フィールド一覧¶
| フィールド | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
name (key) |
leafref PORTCHANNEL.name |
✅ | - | 親 PORTCHANNEL |
port (key) |
leafref PORT.name |
✅ | - | メンバ物理ポート |
このテーブルは key のみで、付加フィールドを持たない。
購読者¶
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
PORTCHANNEL、PORT、VLAN_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 側が孤立。
確認コマンド¶
-
YANG 定義:
sonic-portchannel.yang内PORTCHANNEL_MEMBER。https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-portchannel.yang#L130 ↩