Hi,
I am currently working on a component that needs a lot of statistical
information about the current network state.
In fact, I need the packet lLoss rate and the delay of single links
between OpenFlow-switches.
The PLR can be computed quite easily from the statistics that the switch
gives me (tx_packets and rx_packets of switches that are connected via a
link), but the delay turns out to be a problem.
I have the following idea:
I might use the discovery module and install an organizationally
specific TLV that simply carries a timestamp and with every received
LLDP packet, I can measure the time it takes for a packet to travel from
controller to switchA to switchB and back to the controller. The links
from the controller to the switches can be measured easily, so I can get
a rough estimate of the Delay on the link (we don't talk about accuracy
in the first place here :))
The discovery module can then deliver the delay for a specific link via
an API function.
What do you think? Is this feasible? Is this way ok or do I abuse the
LLDP protocol?
If it's ok, the implementation might be relatively straight forward,
adding a class to nox.lib.packet.lldp for my tlv and add a parser, then
modify the discovery module and I should be fine?!
If yes, do you have any other suggestions on how to implement this? I
also thought about a custom component that builds a packet containing a
timestamp and sends it out every switch port that is connected to
another switch and install an Action on the target switch to forward
that packet back to the controller. I don't know if this is feasible and
would work in the first place (addressing and type of the packet
carrying the timestamp for example would be a problem).
Or am I completely wrong here? Is there anything that gives me this
information?
What do you think? I'm open for suggestions :)
Thanks in advance!
Bernd
_______________________________________________
nox-dev mailing list
nox-dev@noxrepo.org
http://noxrepo.org/mailman/listinfo/nox-dev