On 5/13/24 2:48 PM, Ilya Maximets wrote:
On 5/13/24 13:10, Adrian Moreno wrote:
On 5/13/24 12:44 PM, Eelco Chaudron wrote:
On 13 May 2024, at 9:01, Adrian Moreno wrote:
On 5/10/24 12:06 PM, Eelco Chaudron wrote:
On 24 Apr 2024, at 21:53, Adrian Moreno wrote:
This simple program reads from psample and prints the packets to stdout.
It's useful for quickly collecting sampled packets.
See some comments below, did not review the actual sample application in detail.
//Eelco
Signed-off-by: Adrian Moreno <[email protected]>
---
Documentation/automake.mk | 1 +
Documentation/conf.py | 2 +
Documentation/ref/index.rst | 1 +
Documentation/ref/ovs-psample.8.rst | 47 ++++
include/linux/automake.mk | 1 +
include/linux/psample.h | 64 ++++++
rhel/openvswitch-fedora.spec.in | 2 +
rhel/openvswitch.spec.in | 1 +
utilities/automake.mk | 9 +
utilities/ovs-psample.c | 330 ++++++++++++++++++++++++++++
10 files changed, 458 insertions(+)
create mode 100644 Documentation/ref/ovs-psample.8.rst
create mode 100644 include/linux/psample.h
create mode 100644 utilities/ovs-psample.c
diff --git a/Documentation/automake.mk b/Documentation/automake.mk
index 47d2e336a..c22facfd6 100644
--- a/Documentation/automake.mk
+++ b/Documentation/automake.mk
@@ -165,6 +165,7 @@ RST_MANPAGES = \
ovs-l3ping.8.rst \
ovs-parse-backtrace.8.rst \
ovs-pki.8.rst \
+ ovs-psample.8.rst \
ovs-tcpdump.8.rst \
ovs-tcpundump.1.rst \
ovs-test.8.rst \
diff --git a/Documentation/conf.py b/Documentation/conf.py
index 15785605a..75efed2fc 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -134,6 +134,8 @@ _man_pages = [
u'convert "tcpdump -xx" output to hex strings'),
('ovs-test.8',
u'Check Linux drivers for performance, vlan and L3 tunneling
problems'),
+ ('ovs-psample.8',
+ u'Print packets sampled by psample'),
('ovs-vlan-test.8',
u'Check Linux drivers for problems with vlan traffic'),
('ovsdb-server.7',
diff --git a/Documentation/ref/index.rst b/Documentation/ref/index.rst
index 03ada932f..d1076435a 100644
--- a/Documentation/ref/index.rst
+++ b/Documentation/ref/index.rst
@@ -46,6 +46,7 @@ time:
ovs-pki.8
ovs-sim.1
ovs-parse-backtrace.8
+ ovs-psample.8
ovs-tcpdump.8
ovs-tcpundump.1
ovs-test.8
diff --git a/Documentation/ref/ovs-psample.8.rst
b/Documentation/ref/ovs-psample.8.rst
new file mode 100644
index 000000000..c849c83d8
--- /dev/null
+++ b/Documentation/ref/ovs-psample.8.rst
@@ -0,0 +1,47 @@
+==========
+ovs-sample
Interesting, here you call it all ovs-sample here, which is like ;)
Yes, at the begining I called it ovs-sample as I thought to make some generic tool, but
since it ended up being very psample-specific I added the "p" (and missed this
one).
You could add options like —local-kernel --local-userspace (--ipfix, --sflow)
and it will eventually work on each datapath.
You mean implementing an IPFIX and sFlow collector?
?
If you want to keep this a separate psample utility, I would not have ovs in
the name, as it's rather general and not OVS specific. Maybe just
psample/psample_mon, as we also have nlmon.
Well, the way the cookie is decoded into observation_domain_id and
observation_point_id is ovs-specific.
In fact, for the next iteration of the series I will remove the filtering API
since its getting removed from the kernel series as well and add some kind of
BPF code that does the filtering. Also I was considering looking into the
OVSDB to ensure that we filter on groups configured in it or else we could
wrongly interpet a sampled packet that comes from some other subsystem.
I would prefer to have this as an ova-sample application, which can be extended
with other sample methods as we see fit. So when we added userspace support we
can add it here. If we find someone crazy enough to do a simple IPFIX and/or
sFlow collector it can be added too.
So my request would be to remove the (p) from ovs-psample, and have a switch to
select --psample (the only supported (MANDATORY) option for now).
Oh, ok. Now I undestand, thank you. We want to leave room for the userspace
implementation. Will do.
FYI, we do have sflow and netflow basic collectors in tests/test-sflow.c and
tests/test-netflow.c.
And I'm not convinced we should maintain an actual collector for any of these.
It's not OVS'es job as a project. Like we're not shipping nlmon, we probably
shouldn't ship psample or any other collector. But we can and should have basic
implementations for testing purposes in tests/test-psample.c for example.
Fair enough, I could move it to tests directory. After all, the original reason
why I wrote this was testing the series. Is that OK with you as well Eelco?
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev