The sFlow data model includes information about which interfaces are combined in a bond/LAG/PortChannel (mostly because the collector may need to know this in order to resolve the end-to-end traffic matrix correctly, which is fundamental). So at some point we should consider how to propagate this information to hsflowd. All we need to do is tell hsflowd that port X is just a component of bond Y, where X and Y are both if_index numbers. Hsflowd will do the rest. That relationship can be sent on the UNIXSOCK netlink channel along with the counter-updates, so it’s just one extra integer per counter-update. The packet samples and counters we send will still be for the individual components only.
But does linux-cp present a whole bond as one Linux tap port, or does it create netdevs representing each of the components and another to represent the bond? I think we can adapt either way and still present a coherent picture, but understanding this is the first step.
If only the aggregated bond has a Linux if_index then the components can appear using the made-up-to-not-clash numbers that we default to if linux-cp is not running.
The sFlow data model includes information about which interfaces are combined in a bond/LAG/PortChannel (mostly because the collector may need to know this in order to resolve the end-to-end traffic matrix correctly, which is fundamental). So at some point we should consider how to propagate this information to hsflowd. All we need to do is tell hsflowd that port X is just a component of bond Y, where X and Y are both if_index numbers. Hsflowd will do the rest. That relationship can be sent on the UNIXSOCK netlink channel along with the counter-updates, so it’s just one extra integer per counter-update. The packet samples and counters we send will still be for the individual components only.
But does linux-cp present a whole bond as one Linux tap port, or does it create netdevs representing each of the components and another to represent the bond? I think we can adapt either way and still present a coherent picture, but understanding this is the first step.
If only the aggregated bond has a Linux if_index then the components can appear using the made-up-to-not-clash numbers that we default to if linux-cp is not running.