LLDP_PORT テーブル¶
概要¶
LLDP_PORT は ポート単位の LLDP 設定 を保持する CONFIG_DB テーブル1。lldp (lldpd / lldpmgrd) コンテナが CONFIG_DB から読み、各物理ポートで LLDP を有効化するか、また RX / TX どちらのモードで動かすかを決める。
LLDP (グローバル) テーブルが hello_time / multiplier / system_name / system_description 等のシャーシ全体の設定を持つのに対し、本テーブルはポート単位の上書き設定。
データフロー (自動生成)¶
flowchart LR
CDB[("CONFIG_DB<br/>LLDP_PORT")]
DM["lldpmgrd"]
CDB --> DM
凡例
CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。
key 構造¶
<ifname>:PORT.nameへの leafref (例:Ethernet0)
フィールド¶
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
ifname (key) |
leafref → PORT.name |
- | 対象ポート |
enabled |
boolean | true |
このポートで LLDP を有効化するか |
mode |
enum RECEIVE/TRANSMIT |
- | LLDP フレームの RX/TX モード |
enabled と mode は sonic-lldp の lldp_mode_config grouping から uses されている共通フィールド。mode を省略した場合は lldpd のデフォルト (双方向) で動作する実装が多い。
制約¶
ifnameはPORT_LIST.nameへの leafref のため、存在しないポートは validation でエラー。modeはRECEIVEまたはTRANSMITのみ。BOTHなどの値は無く、双方向はmodeを未指定にすることで表現する。
購読者¶
lldpmgrd(docker-lldp): CONFIG_DB →lldpcliコマンドに変換しlldpdに投入lldpd: 実際の LLDPDU 送受信
関連 CONFIG_DB / YANG / CLI¶
- 関連 CONFIG_DB:
LLDP(グローバル設定),PORT,DEVICE_NEIGHBOR(静的隣接) - 関連 CLI:
config lldp interface enable/disable,show lldp neighbors,show lldp table - 関連 YANG:
sonic-lldp
関連リファレンス¶
- YANG:
sonic-lldp - CLI:
config lldp/show lldp
引用元¶
関連ページ¶
運用ヒント¶
典型値¶
- key 形式:
LLDP_PORT|<Ethernet>。 admin_status:rx_and_tx。descriptionを物理配線管理用に活用する。
よくある誤設定¶
- LLDP を
disabledにしている port は DEVICE_NEIGHBOR 自動学習されないため minigraph と乖離する。
確認コマンド¶
値依存挙動マトリクス¶
enabled¶
| 値 | 挙動 |
|---|---|
true(デフォルト) |
このポートで LLDP フレームの送受信を有効化 |
false |
LLDP 送受信を停止。DEVICE_NEIGHBOR 自動学習が発生せず minigraph との乖離リスク |
mode¶
| 値 | 挙動 |
|---|---|
RECEIVE |
RX のみ。送信しないため自ノードが対向スイッチのトポロジーに映らない |
TRANSMIT |
TX のみ。受信しないため対向の LLDP 情報を学習しない |
| 未設定 | lldpd デフォルト(双方向)。BOTH 等の値は存在しない |
| 不正値 | lldpcli がエラー。CONFIG_DB には書けるが lldpd に反映されない |
例外条件・特殊挙動¶
| 条件 | 挙動 |
|---|---|
admin_status に不正値 |
lldpcli configure ports ... lldp status <value> が失敗。CONFIG_DB にはバリデーションなしで書けるが lldpd には反映されない |
admin_status=disabled |
LLDP フレームの送受信停止。DEVICE_NEIGHBOR テーブルへの自動学習が発生せず minigraph との乖離が生じる |
| 実在しないポート名でエントリ投入 | lldpd に対応ポートが存在しないため設定無視。エントリは CONFIG_DB に残存 |
description の反映タイミング |
lldpmgrd のポーリング周期(数秒)に依存する非同期反映 |
-
YANG 定義:
sonic-lldp.yang(revision 2021-07-08). https://github.com/sonic-net/sonic-buildimage/blob/9ea932ec2e18f35e58268ec2e4456b1d4afd65cd/src/sonic-yang-models/yang-models/sonic-lldp.yang ↩