| LLDP Protocol |
| ============= |
| |
| This is a memo intended to contain documentation of the VPP LLDP (Link |
| Layer Discovery Protocol) implementation Everything that is not directly |
| obvious should come here. |
| |
| LLDP |
| ---- |
| |
| LLDP is a link layer protocol to advertise the capabilities and current |
| status of the system. |
| |
| There are 2 nodes handling LLDP |
| |
| 1.) input-node which processes incoming packets and updates the local |
| database 2.) process-node which is responsible for sending out LLDP |
| packets from VPP side |
| |
| Configuration |
| ~~~~~~~~~~~~~ |
| |
| LLDP has a global configuration and a per-interface enable setting. |
| |
| Global configuration is modified using the “set lldp” command |
| |
| set lldp [system-name ] [tx-hold ] [tx-interval ] |
| |
| system-name: the name of the VPP system sent to peers in the system-name |
| TLV tx-hold: multiplier for tx-interval when setting time-to-live (TTL) |
| value in the LLDP packets (TTL = tx-hold \* tx-interval + 1, if TTL > |
| 65535, then TTL = 65535) tx-interval: time interval between sending out |
| LLDP packets |
| |
| Per interface setting is done using the “set interface lldp” command |
| |
| set interface lldp \| if_index [port-desc ] [disable] |
| |
| interface: the name of the interface for which to enable/disable LLDP |
| if_index: sw interface index can be used if interface name is not used. |
| port-desc: port description disable: LLDP feature can be enabled or |
| disabled per interface. |
| |
| Configuration example |
| ~~~~~~~~~~~~~~~~~~~~~ |
| |
| Configure system-name as “VPP” and transmit interval to 10 seconds: |
| |
| set lldp system-name VPP tx-interval 10 |
| |
| Enable LLDP on interface TenGigabitEthernet5/0/1 with port description |
| |
| set interface lldp TenGigabitEthernet5/0/1 port-desc vtf:eth0 |
| |
| Operational data |
| ~~~~~~~~~~~~~~~~ |
| |
| The list of LLDP-enabled interfaces which are up can be shown using |
| “show lldp” command |
| |
| Example: DBGvpp# show lldp Local interface Peer chassis ID Remote port |
| ID Last heard Last sent Status GigabitEthernet2/0/1 never 27.0s ago |
| inactive TenGigabitEthernet5/0/1 8c:60:4f:dd:ca:52 Eth1/3/3 20.1s ago |
| 18.3s ago active |
| |
| All LLDP configuration data with all LLDP-enabled interfaces can be |
| shown using “show lldp detail” command |
| |
| Example: DBGvpp# show lldp detail LLDP configuration: Configured system |
| name: vpp Configured tx-hold: 4 Configured tx-interval: 30 |
| |
| LLDP-enabled interface table: |
| |
| Interface name: GigabitEthernet2/0/1 Interface/peer state: |
| inactive(timeout) Last known peer chassis ID: Last known peer port ID: |
| Last packet sent: 12.4s ago Last packet received: never |
| |
| Interface name: GigabitEthernet2/0/2 Interface/peer state: interface |
| down Last packet sent: never |
| |
| Interface name: TenGigabitEthernet5/0/1 Interface/peer state: active |
| Peer chassis ID: 8c:60:4f:dd:ca:52(MAC address) Remote port ID: |
| Eth1/3/3(Locally assigned) Last packet sent: 3.6s ago Last packet |
| received: 5.5s ago |