OVS LLDP
The Link Layer Discovery Protocol (LLDP) is a vendor-neutral link layer protocol used by network devices for advertising their identity, capabilities, and neighbors on ethernet networks. The protocol is formally referred to by the IEEE as Station and Media Access Control Connectivity Discovery specified in standards document IEEE 802.1AB
Figure1: LLDP packet format and the mandatory LLDP PDUs
The LLDP frame consists of the following:
- a well know destination multicast address (01:80:C2:00:00:0E)
- ether type of 0x88cc
- LLDP PDU consisting of the following mandatory LLDP TLVs:
- Chassis TLV: Identifies the 802 LAN device's chassis.
- Port-ID TLV: Identifies the port from which the LLDPDU is transmitted.
- TTL TLV: Indicates how long (in seconds) the LAN device's information received in the LLDPDU is to be treated as valid information. Non-zero information indicates the device's information is to be updated in the LLDP remote system MIB. A value of 0 indicates the information associated with the LAN device is no longer valid and should be removed.
- End-of-LLDP TLV: Indicates the end of TLVs in the LLDPDU.
Typically, an open flow controller uses LLDP messages to discover neighbor devices, active links and hosts connected to the open flow switches. Following represents a typical flow used to relay LLDP messages from an open flow switch to the controller
dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc, actions:CONTROLLER
Alternatively LLDP can be enabled in PicOS. PicOS supports the following LLDP TLVs:
- Port Description TLV
- System Name TLV
- System Description TLV
- System Capabilities TLV
- Management Address TLV.802.1
- Organizationally Specific TLV includes:
- PVID TLV (The default value is false)
- MAC PHY TLV (The default value is false)
- MDI TLV (The default value is false)
- Max Frame Size TLV (The default value is false)
PicOS supports LLDP from version 2.6.
LLDP commands
Enable or disable lldp on bridge
admin@PicOS-OVS$ovs-vsctl set bridge br0 lldp_enable=true admin@PicOS-OVS$ovs-vsctl clear bridge br0 lldp_enable
LLDP admin status
admin@PicOS-OVS$ovs-vsctl set interface ge-1/1/1 lldp_admin_status=RxTx admin@PicOS-OVS$ovs-vsctl set interface ge-1/1/1 lldp_admin_status=RxOnly admin@PicOS-OVS$ovs-vsctl set interface ge-1/1/1 lldp_admin_status=TxOnly admin@PicOS-OVS$ovs-vsctl set interface ge-1/1/1 lldp_admin_status=disabled
LLDP transmit parameters
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-msg-tx-hold=4 admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-msg-tx-interval=30 admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-reinit-delay=2 admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tx-delay=2
LLDP transmit parameters on a per interface
ovs-vsctl set interface te-1/1/25 lldp_tx_interval=4 ovs-vsctl set interface te-1/1/25 lldp_tx_delay=2 clear commands: ovs-vsctl clear interface te-1/1/14 lldp_tx_interval ovs-vsctl clear interface te-1/1/14 lldp_tx_delay
Optional TLVs in lldpdu
Port Description TLV (The default value is true)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-port-desc=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-port-desc=false
System Name TLV (The default value is true)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-name=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-name=false
System Description TLV (The default value is true)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-desc=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-desc=false
System Capabilities TLV (The default value is true)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-cap=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-cap=false
Management Address TLV (The default value is true)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-mgmt-addr=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-mgmt-addr=false
PVID TLV (802.1 Organizationally Specific TLV) (The default value is false)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-pvid=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-pvid=false
MAC PHY TLV (802.3 Organizationally Specific TLV) (The default value is false)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-mac-phy=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-mac-phy=false
Power Via MDI TLV (802.3 Organizationally Specific TLV) (The default value is false)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-power-via-mdi=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-power-via-mdi=false
Link Aggregation TLV (802.3 Organizationally Specific TLV) (The default value is false)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-link-aggregation=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-link-aggregation=false
Max Frame Size TLV (802.3 Organizationally Specific TLV) (The default value is false)
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-max-frame-size=true admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-max-frame-size=false
show configuration
admin@PicOS-OVS$ovs-vsctl list bridge br0 admin@PicOS-OVS$ovs-vsctl list interface ge-1/1/1
show LLDP remote neighbors
admin@PicOS-OVS$ovs-vsctl list lldp_neighbor
show LLDP using "ovs-appctl"
admin@PicOS-OVS$ovs-appctl lldp/show br0 admin@PicOS-OVS$ovs-appctl lldp/show br0 ge-1/1/1
Examples
topology
default port status test
Cisco3560 (mac 00:22:BE:96:F5:94):
Switch#configure terminal Switch(config)#lldp run(default status is TXRx) Switch(config)#monitor session 1 source interface gigabitEthernet 0/20 rx Switch(config)#monitor session 1 destination interface gigabitEthernet 0/19
P3297 (mac 00:e0:ec:25:2d:5e):
admin@PicOS-OVS$ovs-vsctl set bridge br0 lldp_enable=true not set lldp_admin_status(default value is RxTx) admin@PicOS-OVS$ovs-vsctl list lldp_neighbor _uuid : dc8a0cba-aefd-4b54-b02f-e53b315fd783 local_id : "<00:e0:ec:25:2d:5e>:<ge-1/1/20>" mgmt_address : {"10.10.51.132"=0} port_description : "GigabitEthernet0/20" remote_id : "<00:22:be:96:f5:80>:<Gi0/20>" system_description : "Cisco IOS Software, C3560E Software (C3560E-UNIVERSALK9-M), Version 15.0(2)SE2, RELEASE SOFTWARE (fc1)\nTechnical Support: http://www.cisco.com/techsupport\nCopyright (c) 1986-2013 by Cisco Systems, Inc.\nCompiled Tue 05-Feb-13 12:04 by prod_rel_team" system_name : Switch admin@PicOS-OVS$
Result:
7/1: receive the lldp from both Cisco3560 and P3297
7/2: only receiving the lldp with src mac 00:e0:ec:25:2d:5e
note
1. LLDP only works on physical ports;
2. PicOS does not support power-via-mdi TLV;
3. 1=<lldp-tx-delay<=0.25*msg-tx-interval;
Copyright © 2024 Pica8 Inc. All Rights Reserved.