retis-org / retis

Tracing packets in the Linux networking stack & friends
https://retis.readthedocs.io/en/stable/
94 stars 13 forks source link

OVS: Extract flow information #439

Open amorenoz opened 1 week ago

amorenoz commented 1 week ago

Currently, the OVS module hooks into the ovs_do_execute_action tracepoint and extracts some basic action information.

However, in order to get a more complete picture of what OVS is doing with the packet, it would be nice to get some datapath flow information. Even if we don't implement a full key parsing library, extracting the UFID will be helpful as it can then be enriched by OVS.

Unfortunately, the UFID is not easily available in a tracepoint so some kprobe/kretprobe workaround will be needed (until OVS developers add a good tracepoint, wink wink).

atenart commented 1 week ago

Unfortunately, the UFID is not easily available in a tracepoint so some kprobe/kretprobe workaround will be needed (until OVS developers add a good tracepoint, wink wink).

FYI noinline_for_tracing is currently under discussion, which is a good starting point before adding a tracepoint.

vlrpl commented 1 week ago

Unfortunately, the UFID is not easily available in a tracepoint so some kprobe/kretprobe workaround will be needed (until OVS developers add a good tracepoint, wink wink).

FYI noinline_for_tracing is currently under discussion, which is a good starting point before adding a tracepoint.

Interesting. Fortunately, the symbol can be probed, it should just be inconvenient to retrieve the data. This is the case where fexit shines (args access).