On 15 Jul 2025, at 10:33, Changliang Wu wrote:
> New appctl 'lldp/neighbor' displays lldp neighbor information. > Support json output with --format json --pretty > Supoort dot1 and dot3 tlv Hi Changliang, Unfortunately, I haven’t had time to do a proper review of the patch, as I’m about to go on PTO for a couple of weeks. One thing I personally don’t like is the current CLI and JSON output format. I understand they are structured around lldpd’s format, but I find them confusing, especially the JSON, which may not be straightforward to parse. Please see my earlier comments on the v5 version of this patch for more details. If others believe that lldpd compatibility (particularly on the JSON side) is more important, I'm okay with proceeding. Perhaps we can revisit and improve the CLI output later to make it more user-friendly, rather than a strict replica of lldpd. After all, the JSON output is the one intended for parsing. Cheers, Eelco > Example outputs would be: > $ ovs-appctl lldp/neighbor > LLDP neighbor: > Interface: p1 > Chassis: > Chassis ID: aa:aa:aa:aa:aa:aa > SysName: FakeSystemName > SysDescr: FakeSystemDesc > MgmtIP: 192.168.0.1 > MgmtIface: 635 > Capability: Bridge, on > Capability: Router, on > Port: > PortID: GigabitEthernet1/0/15 > PortDescr: GigabitEthernet1/0/15 Interface > TTL: 121 > MFS: 10240 > PMD autoneg: supported: yes, enabled: yes > Adv: 10Base-T, HD: yes, FD: yes > Adv: 100Base-TX, HD: yes, FD: yes > Adv: 1000Base-T, HD: no, FD: yes > MAU oper type: 30 > MDI Power: supported: yes, enabled: no, pair control: no > VLAN: 1, pvid: yes, VLAN 0001 > PPVID: supported: yes,enabled no > > $ ovs-appctl --format json --pretty lldp/neighbor > { > "lldp": { > "interface": { > "p1": { > "chassis": { > "FakeSystemName": { > "capability": [ > { > "enabled": true, > "type": "Bridge"}, > { > "enabled": true, > "type": "Router"}], > "descr": "FakeSystemDesc", > "id": { > "type": "mac", > "value": "aa:aa:aa:aa:aa:aa"}, > "mgmt-iface": [ > 635], > "mgmt-ip": [ > "192.168.0.1"]}}, > "port": { > "auto-negotiation": { > "current": 30, > "enabled": true, > "supported": true}, > "desc": "GigabitEthernet1/0/15 Interface", > "id": { > "type": "ifname", > "value": "GigabitEthernet1/0/15"}, > "mfs": 10240, > "power": { > "enabled": false, > "paircontrol": false, > "supported": true}, > "ttl": 121}, > "ppvid": { > "enabled": false, > "supported": true}, > "vlan": { > "pvid": true, > "value": "VLAN 0001", > "vlan-id": 1}}}}} > > v2: fix code lint and build warn > v3: fix more static analyze error > v4: fix build error > v5: add json output, add NEWS > v6: add dot1 and dot3, fix review problems > v7: split patch to patch set > v8: refactor dot1 and dot3 from lldpd, fix review problems > v9: clean dot1,dot3 list, fix review problems > > Changliang Wu (3): > lldp: Add ovs-appctl lldp/neighbor command. > lldp: Decode dot1,3 tlv and display in lldp/neighbor. > tests: lldp: Add testcases for lldp/neighbor. > > NEWS | 3 + > lib/lldp/lldp-const.h | 5 + > lib/lldp/lldp.c | 164 ++++++++- > lib/lldp/lldpd-structs.c | 31 ++ > lib/lldp/lldpd-structs.h | 69 ++++ > lib/ovs-lldp.c | 678 +++++++++++++++++++++++++++++++++++++ > tests/automake.mk | 1 + > tests/ovs-lldp.at | 227 +++++++++++++ > tests/testsuite.at | 1 + > vswitchd/ovs-vswitchd.8.in | 4 + > 10 files changed, 1181 insertions(+), 2 deletions(-) > create mode 100644 tests/ovs-lldp.at > > -- > 2.43.5 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev