OpenNMS, via linkd, can't seem to figure out the path relations between a good number of the switches on my network [of the Cisco, Dell, and Arista varieties] and the endpoint devices - at least for the Arista and Dell cases, it's certainly possible to associate this topological information by mapping the MAC of an endpoint device across the network using e.g. Q-BRIDGE-MIB::dot1qTpFdbStatus on the different switches, along with the STP and port status to enumerate a path relationship to the given device(s).
I tried this in a constrained environment by handing linkd an explicit enumeration of a dozen devices, to ensure rapid runtime - all but one of the switches on the path between two of the three endpoint devices (Arista DCS-7140T-8S, a few Dell 2816s, a Dell 6248, a Cisco 2960 stack, and a Cisco Nexus 7000-series), two switches not in that path, and 3 endpoint devices. OpenNMS enumerated all the relevant devices and failed to find any path information between any of them.
If it may be necessary, I can write such a thing [though I realize that the combinatoric explosion innate to the description involved may cause the memory usage to exceed most people's desired use case], but I'm genuinely surprised this is not existing functionality...