On Mon, Sep 30, 2024 at 01:52:13PM GMT, Harald Albrecht via discuss wrote: > My "quest" is to discover the topology of OVS switches and their netdev ports > to provide some (albeit limited) OVS-related information to users of the > Ghostwire Linux kernel networking discovery engine > (https://github.com/siemens/ > ghostwire). This engine is used, for instance, by containerlab (https:// > containerlab.dev/) users to quickly pick and "shoot" their capture targets in > containers acting as routers. > > Before asking here I've searched for information in the OVS documentation > itself, trying to find other sources, and looked at the ovs_vport NETLINK > generic family description (https://docs.kernel.org/networking/netlink_spec/ > ovs_vport.html). > > What I would like to achieve: discover which netdev-based network interfaces > are related to which OVS bridge instances. What I have to avoid is bringing in > user-space CLI binaries that produce stdout output and then having to parse > this output, as it is at least slow and has turned out to be a nightmare in > other similar situations (podman is an infamous example here). > > The current discovery sees a "master"-"slave" relationship between the > "system" > OVS kernel bridge and all netdev-based ports of all the other OVS kernel > bridges. This differs from Linux stock kernel bridges where this relationship > uniquely represents the switch-port topology. Reading https://docs.kernel.org/ > networking/netlink_spec/ovs_vport.html I'm at a loss at how to figure out > which > OVS kernel bridge a netdev port has been attached to. Can you please be so > kind > as to point me to information that I've missed or maybe give me here more > information on how I can discover this topology without the need for > user-space > CLI tools? > > With best regards, > TheDiveO >
Hi Harald, A similar discussion occurred on netdev recently. The OVS kernel datapath does not contain any "logical" topology information (i.e: bridges, ports, etc). Furthermore, internal interfaces called after OpenFlow bridges are not stacked under "ovs-system". From netlink, the best you can get is the list of OVS-managed netdevs. To extract the OpenFlow topology, you need to use the OpenFlow API, in userspace or look at the OVSDB. You should be able to access both programatically without parsing the output of CLI tools. Thanks. Adrián > _______________________________________________ > discuss mailing list > disc...@openvswitch.org > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss