2009-07-08 13:19:16 -07:00
|
|
|
bin_PROGRAMS += \
|
|
|
|
utilities/ovs-appctl \
|
2014-08-15 10:32:50 -07:00
|
|
|
utilities/ovs-testcontroller \
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities/ovs-dpctl \
|
|
|
|
utilities/ovs-ofctl \
|
2010-05-26 10:25:19 -07:00
|
|
|
utilities/ovs-vsctl
|
2014-10-14 00:51:52 -07:00
|
|
|
bin_SCRIPTS += utilities/ovs-docker \
|
2018-06-22 20:04:10 +02:00
|
|
|
utilities/ovs-pki \
|
2018-08-03 20:28:08 +02:00
|
|
|
utilities/ovs-pcap \
|
|
|
|
utilities/ovs-tcpdump \
|
2019-09-20 08:30:42 -07:00
|
|
|
utilities/ovs-tcpundump \
|
2013-09-13 15:50:48 -07:00
|
|
|
utilities/ovs-dpctl-top \
|
2012-06-28 15:52:40 -07:00
|
|
|
utilities/ovs-l3ping \
|
2012-10-15 12:42:48 -07:00
|
|
|
utilities/ovs-parse-backtrace \
|
2011-10-31 14:56:08 -07:00
|
|
|
utilities/ovs-test \
|
2010-12-07 18:49:28 -08:00
|
|
|
utilities/ovs-vlan-test
|
2012-05-01 15:36:44 -07:00
|
|
|
scripts_SCRIPTS += \
|
|
|
|
utilities/ovs-check-dead-ifs \
|
|
|
|
utilities/ovs-ctl \
|
2018-06-01 14:28:44 -04:00
|
|
|
utilities/ovs-kmod-ctl \
|
2012-05-01 15:36:44 -07:00
|
|
|
utilities/ovs-save
|
2011-12-08 23:36:05 -08:00
|
|
|
scripts_DATA += utilities/ovs-lib
|
2022-12-08 10:48:06 +01:00
|
|
|
usdt_SCRIPTS += \
|
|
|
|
utilities/usdt-scripts/bridge_loop.bt \
|
2024-08-29 11:23:58 +02:00
|
|
|
utilities/usdt-scripts/dpif_op_nl_monitor.py \
|
revalidator: Add a USDT probe during flow deletion with purge reason.
During normal operations, it is useful to understand when a particular flow
gets removed from the system. This can be useful when debugging performance
issues tied to ofproto flow changes, trying to determine deployed traffic
patterns, or while debugging dynamic systems where ports come and go.
Prior to this change, there was a lack of visibility around flow expiration.
The existing debugging infrastructure could tell us when a flow was added to
the datapath, but not when it was removed or why.
This change introduces a USDT probe at the point where the revalidator
determines that the flow should be removed. Additionally, we track the
reason for the flow eviction and provide that information as well. With
this change, we can track the complete flow lifecycle for the netlink
datapath by hooking the upcall tracepoint in kernel, the flow put USDT, and
the revalidator USDT, letting us watch as flows are added and removed from
the kernel datapath.
This change only enables this information via USDT probe, so it won't be
possible to access this information any other way (see:
Documentation/topics/usdt-probes.rst).
Also included is a script (utilities/usdt-scripts/flow_reval_monitor.py)
which serves as a demonstration of how the new USDT probe might be used
going forward.
Co-authored-by: Aaron Conole <aconole@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: Kevin Sprague <ksprague0711@gmail.com>
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
2024-03-05 10:44:41 -05:00
|
|
|
utilities/usdt-scripts/flow_reval_monitor.py \
|
2023-09-27 11:18:59 +02:00
|
|
|
utilities/usdt-scripts/kernel_delay.py \
|
|
|
|
utilities/usdt-scripts/kernel_delay.rst \
|
2023-01-23 12:03:29 +01:00
|
|
|
utilities/usdt-scripts/reval_monitor.py \
|
2022-12-08 10:48:06 +01:00
|
|
|
utilities/usdt-scripts/upcall_cost.py \
|
2025-03-31 21:27:01 +02:00
|
|
|
utilities/usdt-scripts/upcall_monitor.py \
|
|
|
|
utilities/usdt-scripts/usdt_lib.py
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2015-03-18 14:32:23 -07:00
|
|
|
completion_SCRIPTS += \
|
|
|
|
utilities/ovs-appctl-bashcomp.bash \
|
|
|
|
utilities/ovs-vsctl-bashcomp.bash
|
|
|
|
|
2015-02-11 11:08:57 -08:00
|
|
|
check_SCRIPTS += \
|
|
|
|
utilities/ovs-appctl-bashcomp.bash \
|
|
|
|
utilities/ovs-vsctl-bashcomp.bash
|
2014-11-24 11:15:45 -08:00
|
|
|
|
2018-05-17 12:31:45 -07:00
|
|
|
EXTRA_DIST += utilities/ovs-sim.in
|
2015-06-16 08:38:46 -07:00
|
|
|
noinst_SCRIPTS += utilities/ovs-sim
|
|
|
|
|
2013-11-19 11:02:08 -08:00
|
|
|
utilities/ovs-lib: $(top_builddir)/config.status
|
|
|
|
|
2009-07-08 13:19:16 -07:00
|
|
|
EXTRA_DIST += \
|
utilities: Add some GDB macros for ovs-vswitchd
This commit adds basic GDB macro's for ovs-vswitchd:
- ovs_dump_bridge [ports|wanted]
- ovs_dump_bridge_ports <struct bridge *>
- ovs_dump_dp_netdev [ports]
- ovs_dump_dp_netdev_ports <struct dp_netdev *>
- ovs_dump_netdev
These dump functions show limited info, but you can simply cut/paste
the address and get the full structure info. For example:
(gdb) ovs_dump_netdev
(struct netdev *) 0x555771ed89e0: name = ovs-netdev , auto_classified = false, netdev_class = 0x5557714413c0 <netdev_tap_class>
(struct netdev *) 0x555771fc62a0: name = ovs_pvp_br0 , auto_classified = false, netdev_class = 0x5557714413c0 <netdev_tap_class>
(struct netdev *) 0x555771fc9660: name = vnet0 , auto_classified = true , netdev_class = 0x555771445e00 <netdev_linux_class>
(struct netdev *) 0x555771fc78d0: name = virbr0 , auto_classified = true , netdev_class = 0x555771445e00 <netdev_linux_class>
(struct netdev *) 0x7fbefffb5540: name = dpdk0 , auto_classified = false, netdev_class = 0x5557714419e0 <dpdk_class>
(struct netdev *) 0x555771fc98b0: name = em3 , auto_classified = true , netdev_class = 0x555771445e00 <netdev_linux_class>
(struct netdev *) 0x7fbea0a31c40: name = vhost0 , auto_classified = false, netdev_class = 0x555771442040 <dpdk_vhost_client_class>
(gdb) p *((struct netdev *) 0x7fbefffb5540)
$1 = {name = 0x555771ecef70 "dpdk0", netdev_class = 0x5557714419e0 <dpdk_class>, auto_classified = false, mtu_user_config = true, ref_cnt = 2, change_seq = 12,
reconfigure_seq = 0x555771ecf2e0, last_reconfigure_seq = 110, n_txq = 2, n_rxq = 1, node = 0x555771efafe0, saved_flags_list = {prev = 0x7fbefffb5580, next = 0x7fbefffb5580}}
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: Ben Pfaff <blp@ovn.org>
2018-05-09 13:47:26 +02:00
|
|
|
utilities/gdb/ovs_gdb.py \
|
2015-02-10 11:06:11 -08:00
|
|
|
utilities/ovs-appctl-bashcomp.bash \
|
2015-03-26 12:52:42 -07:00
|
|
|
utilities/ovs-check-dead-ifs.in \
|
2011-10-26 16:06:37 -07:00
|
|
|
utilities/ovs-ctl.in \
|
2013-07-06 18:55:45 -07:00
|
|
|
utilities/ovs-dev.py \
|
2014-10-14 00:51:52 -07:00
|
|
|
utilities/ovs-docker \
|
2013-09-13 15:50:48 -07:00
|
|
|
utilities/ovs-dpctl-top.in \
|
2018-06-01 14:28:44 -04:00
|
|
|
utilities/ovs-kmod-ctl.in \
|
2012-06-28 15:52:40 -07:00
|
|
|
utilities/ovs-l3ping.in \
|
2011-12-08 23:36:05 -08:00
|
|
|
utilities/ovs-lib.in \
|
2012-10-15 12:42:48 -07:00
|
|
|
utilities/ovs-parse-backtrace.in \
|
2011-10-26 16:06:37 -07:00
|
|
|
utilities/ovs-pcap.in \
|
2015-03-26 12:52:42 -07:00
|
|
|
utilities/ovs-pipegen.py \
|
2011-10-26 16:06:37 -07:00
|
|
|
utilities/ovs-pki.in \
|
|
|
|
utilities/ovs-save \
|
2016-06-08 17:49:55 -04:00
|
|
|
utilities/ovs-tcpdump.in \
|
2011-10-26 16:06:37 -07:00
|
|
|
utilities/ovs-tcpundump.in \
|
2011-10-31 14:56:08 -07:00
|
|
|
utilities/ovs-test.in \
|
2015-03-05 13:42:04 -08:00
|
|
|
utilities/ovs-vlan-test.in \
|
2015-03-26 12:52:42 -07:00
|
|
|
utilities/ovs-vsctl-bashcomp.bash \
|
2019-08-17 00:21:45 -07:00
|
|
|
utilities/checkpatch.py \
|
2025-07-15 09:41:02 -04:00
|
|
|
utilities/checkpatch_dict.txt \
|
2021-12-22 10:17:44 +01:00
|
|
|
utilities/docker/Makefile \
|
|
|
|
utilities/docker/ovs-override.conf \
|
|
|
|
utilities/docker/start-ovs \
|
|
|
|
utilities/docker/create_ovs_db.sh \
|
|
|
|
utilities/docker/debian/Dockerfile \
|
|
|
|
utilities/docker/debian/build-kernel-modules.sh \
|
2021-12-22 10:18:23 +01:00
|
|
|
utilities/usdt-scripts/bridge_loop.bt \
|
2024-08-29 11:23:58 +02:00
|
|
|
utilities/usdt-scripts/dpif_op_nl_monitor.py \
|
revalidator: Add a USDT probe during flow deletion with purge reason.
During normal operations, it is useful to understand when a particular flow
gets removed from the system. This can be useful when debugging performance
issues tied to ofproto flow changes, trying to determine deployed traffic
patterns, or while debugging dynamic systems where ports come and go.
Prior to this change, there was a lack of visibility around flow expiration.
The existing debugging infrastructure could tell us when a flow was added to
the datapath, but not when it was removed or why.
This change introduces a USDT probe at the point where the revalidator
determines that the flow should be removed. Additionally, we track the
reason for the flow eviction and provide that information as well. With
this change, we can track the complete flow lifecycle for the netlink
datapath by hooking the upcall tracepoint in kernel, the flow put USDT, and
the revalidator USDT, letting us watch as flows are added and removed from
the kernel datapath.
This change only enables this information via USDT probe, so it won't be
possible to access this information any other way (see:
Documentation/topics/usdt-probes.rst).
Also included is a script (utilities/usdt-scripts/flow_reval_monitor.py)
which serves as a demonstration of how the new USDT probe might be used
going forward.
Co-authored-by: Aaron Conole <aconole@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: Kevin Sprague <ksprague0711@gmail.com>
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
2024-03-05 10:44:41 -05:00
|
|
|
utilities/usdt-scripts/flow_reval_monitor.py \
|
2023-09-27 11:18:59 +02:00
|
|
|
utilities/usdt-scripts/kernel_delay.py \
|
|
|
|
utilities/usdt-scripts/kernel_delay.rst \
|
2023-01-23 12:03:29 +01:00
|
|
|
utilities/usdt-scripts/reval_monitor.py \
|
2021-12-22 10:19:02 +01:00
|
|
|
utilities/usdt-scripts/upcall_cost.py \
|
2025-03-31 21:27:01 +02:00
|
|
|
utilities/usdt-scripts/upcall_monitor.py \
|
|
|
|
utilities/usdt-scripts/usdt_lib.py
|
|
|
|
|
2011-10-26 16:06:37 -07:00
|
|
|
MAN_ROOTS += \
|
2014-08-15 10:32:50 -07:00
|
|
|
utilities/ovs-testcontroller.8.in \
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities/ovs-dpctl.8.in \
|
2013-09-13 15:50:48 -07:00
|
|
|
utilities/ovs-dpctl-top.8.in \
|
2018-06-01 14:28:44 -04:00
|
|
|
utilities/ovs-kmod-ctl.8 \
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities/ovs-ofctl.8.in \
|
ofproto: Add "ofproto/trace" command to help debugging flow tables.
With an appropriate flow table, output from a command like this:
ovs-appctl ofproto/trace system@dp0 0 0 ffffffffffff000c29f49d5c080600010
80006040001000c29f49d5cac10008a000000000000ac1004df00000000000000000000000000000
0000000
resembles the following:
Packet: -8:00:00.000000 00:0c:29:f4:9d:5c > ff:ff:ff:ff:ff:ff, ethertype ARP (0x
0806), length 60: arp who-has 172.16.4.223 tell 172.16.0.138
Flow: tunnel0:in_port0000:tci(0) mac00:0c:29:f4:9d:5c->ff:ff:ff:ff:ff:ff type080
6 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
Rule: cookie=0 in_port=65534
OpenFlow actions=resubmit:1,mod_vlan_vid:5,resubmit:2,mod_vlan_pcp:6,strip_vlan
Resubmitted flow: unchanged
Rule: cookie=0 in_port=1
OpenFlow actions=resubmit:3,resubmit:4
Resubmitted flow: unchanged
No match
Resubmitted flow: unchanged
No match
Resubmitted flow: tunnel0:in_port0000:tci(vlan5,pcp0) mac00:0c:29:f4:9d:
5c->ff:ff:ff:ff:ff:ff type0806 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
No match
Final flow: tunnel0:in_port0000:tci(0) mac00:0c:29:f4:9d:5c->ff:ff:ff:ff:ff:ff t
ype0806 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
Datapath actions: set_tci(vid=5,pcp=0),set_tci(vid=5,pcp=6),strip_vlan
2010-12-09 15:00:36 -08:00
|
|
|
utilities/ovs-pcap.1.in \
|
2009-12-08 17:18:12 -08:00
|
|
|
utilities/ovs-vsctl.8.in
|
2017-02-13 17:20:56 -08:00
|
|
|
CLEANFILES += \
|
2011-06-17 12:24:31 -07:00
|
|
|
utilities/ovs-ctl \
|
2012-05-10 09:37:11 -07:00
|
|
|
utilities/ovs-check-dead-ifs \
|
2014-08-15 10:32:50 -07:00
|
|
|
utilities/ovs-testcontroller.8 \
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities/ovs-dpctl.8 \
|
2013-09-13 15:50:48 -07:00
|
|
|
utilities/ovs-dpctl-top \
|
|
|
|
utilities/ovs-dpctl-top.8 \
|
2018-06-01 14:28:44 -04:00
|
|
|
utilities/ovs-kmod-ctl \
|
2012-06-28 15:52:40 -07:00
|
|
|
utilities/ovs-l3ping \
|
2011-12-08 23:36:05 -08:00
|
|
|
utilities/ovs-lib \
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities/ovs-ofctl.8 \
|
2012-10-15 12:42:48 -07:00
|
|
|
utilities/ovs-parse-backtrace \
|
ofproto: Add "ofproto/trace" command to help debugging flow tables.
With an appropriate flow table, output from a command like this:
ovs-appctl ofproto/trace system@dp0 0 0 ffffffffffff000c29f49d5c080600010
80006040001000c29f49d5cac10008a000000000000ac1004df00000000000000000000000000000
0000000
resembles the following:
Packet: -8:00:00.000000 00:0c:29:f4:9d:5c > ff:ff:ff:ff:ff:ff, ethertype ARP (0x
0806), length 60: arp who-has 172.16.4.223 tell 172.16.0.138
Flow: tunnel0:in_port0000:tci(0) mac00:0c:29:f4:9d:5c->ff:ff:ff:ff:ff:ff type080
6 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
Rule: cookie=0 in_port=65534
OpenFlow actions=resubmit:1,mod_vlan_vid:5,resubmit:2,mod_vlan_pcp:6,strip_vlan
Resubmitted flow: unchanged
Rule: cookie=0 in_port=1
OpenFlow actions=resubmit:3,resubmit:4
Resubmitted flow: unchanged
No match
Resubmitted flow: unchanged
No match
Resubmitted flow: tunnel0:in_port0000:tci(vlan5,pcp0) mac00:0c:29:f4:9d:
5c->ff:ff:ff:ff:ff:ff type0806 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
No match
Final flow: tunnel0:in_port0000:tci(0) mac00:0c:29:f4:9d:5c->ff:ff:ff:ff:ff:ff t
ype0806 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
Datapath actions: set_tci(vid=5,pcp=0),set_tci(vid=5,pcp=6),strip_vlan
2010-12-09 15:00:36 -08:00
|
|
|
utilities/ovs-pcap \
|
|
|
|
utilities/ovs-pcap.1 \
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities/ovs-pki \
|
2015-06-23 07:31:41 -07:00
|
|
|
utilities/ovs-sim \
|
2016-06-08 17:49:55 -04:00
|
|
|
utilities/ovs-tcpdump \
|
ofproto: Add "ofproto/trace" command to help debugging flow tables.
With an appropriate flow table, output from a command like this:
ovs-appctl ofproto/trace system@dp0 0 0 ffffffffffff000c29f49d5c080600010
80006040001000c29f49d5cac10008a000000000000ac1004df00000000000000000000000000000
0000000
resembles the following:
Packet: -8:00:00.000000 00:0c:29:f4:9d:5c > ff:ff:ff:ff:ff:ff, ethertype ARP (0x
0806), length 60: arp who-has 172.16.4.223 tell 172.16.0.138
Flow: tunnel0:in_port0000:tci(0) mac00:0c:29:f4:9d:5c->ff:ff:ff:ff:ff:ff type080
6 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
Rule: cookie=0 in_port=65534
OpenFlow actions=resubmit:1,mod_vlan_vid:5,resubmit:2,mod_vlan_pcp:6,strip_vlan
Resubmitted flow: unchanged
Rule: cookie=0 in_port=1
OpenFlow actions=resubmit:3,resubmit:4
Resubmitted flow: unchanged
No match
Resubmitted flow: unchanged
No match
Resubmitted flow: tunnel0:in_port0000:tci(vlan5,pcp0) mac00:0c:29:f4:9d:
5c->ff:ff:ff:ff:ff:ff type0806 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
No match
Final flow: tunnel0:in_port0000:tci(0) mac00:0c:29:f4:9d:5c->ff:ff:ff:ff:ff:ff t
ype0806 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
Datapath actions: set_tci(vid=5,pcp=0),set_tci(vid=5,pcp=6),strip_vlan
2010-12-09 15:00:36 -08:00
|
|
|
utilities/ovs-tcpundump \
|
2011-10-31 14:56:08 -07:00
|
|
|
utilities/ovs-test \
|
2010-12-07 18:49:28 -08:00
|
|
|
utilities/ovs-vlan-test \
|
2009-09-14 10:05:13 -07:00
|
|
|
utilities/ovs-vsctl.8
|
2009-07-08 13:19:16 -07:00
|
|
|
|
|
|
|
man_MANS += \
|
2014-08-15 10:32:50 -07:00
|
|
|
utilities/ovs-testcontroller.8 \
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities/ovs-dpctl.8 \
|
2013-09-13 15:50:48 -07:00
|
|
|
utilities/ovs-dpctl-top.8 \
|
2018-06-01 14:28:44 -04:00
|
|
|
utilities/ovs-kmod-ctl.8 \
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities/ovs-ofctl.8 \
|
ofproto: Add "ofproto/trace" command to help debugging flow tables.
With an appropriate flow table, output from a command like this:
ovs-appctl ofproto/trace system@dp0 0 0 ffffffffffff000c29f49d5c080600010
80006040001000c29f49d5cac10008a000000000000ac1004df00000000000000000000000000000
0000000
resembles the following:
Packet: -8:00:00.000000 00:0c:29:f4:9d:5c > ff:ff:ff:ff:ff:ff, ethertype ARP (0x
0806), length 60: arp who-has 172.16.4.223 tell 172.16.0.138
Flow: tunnel0:in_port0000:tci(0) mac00:0c:29:f4:9d:5c->ff:ff:ff:ff:ff:ff type080
6 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
Rule: cookie=0 in_port=65534
OpenFlow actions=resubmit:1,mod_vlan_vid:5,resubmit:2,mod_vlan_pcp:6,strip_vlan
Resubmitted flow: unchanged
Rule: cookie=0 in_port=1
OpenFlow actions=resubmit:3,resubmit:4
Resubmitted flow: unchanged
No match
Resubmitted flow: unchanged
No match
Resubmitted flow: tunnel0:in_port0000:tci(vlan5,pcp0) mac00:0c:29:f4:9d:
5c->ff:ff:ff:ff:ff:ff type0806 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
No match
Final flow: tunnel0:in_port0000:tci(0) mac00:0c:29:f4:9d:5c->ff:ff:ff:ff:ff:ff t
ype0806 proto1 tos0 ip172.16.0.138->172.16.4.223 port0->0
Datapath actions: set_tci(vid=5,pcp=0),set_tci(vid=5,pcp=6),strip_vlan
2010-12-09 15:00:36 -08:00
|
|
|
utilities/ovs-pcap.1 \
|
2009-09-14 10:05:13 -07:00
|
|
|
utilities/ovs-vsctl.8
|
2009-07-08 13:19:16 -07:00
|
|
|
|
|
|
|
utilities_ovs_appctl_SOURCES = utilities/ovs-appctl.c
|
2014-03-04 13:23:53 -08:00
|
|
|
utilities_ovs_appctl_LDADD = lib/libopenvswitch.la
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2014-08-15 10:32:50 -07:00
|
|
|
utilities_ovs_testcontroller_SOURCES = utilities/ovs-testcontroller.c
|
|
|
|
utilities_ovs_testcontroller_LDADD = lib/libopenvswitch.la $(SSL_LIBS)
|
|
|
|
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities_ovs_dpctl_SOURCES = utilities/ovs-dpctl.c
|
2014-03-04 13:23:53 -08:00
|
|
|
utilities_ovs_dpctl_LDADD = lib/libopenvswitch.la
|
2009-07-08 13:19:16 -07:00
|
|
|
|
|
|
|
utilities_ovs_ofctl_SOURCES = utilities/ovs-ofctl.c
|
2011-04-11 15:08:19 -07:00
|
|
|
utilities_ovs_ofctl_LDADD = \
|
2013-12-13 18:54:28 +01:00
|
|
|
ofproto/libofproto.la \
|
2014-03-04 13:23:53 -08:00
|
|
|
lib/libopenvswitch.la
|
2009-07-08 13:19:16 -07:00
|
|
|
|
2012-03-15 17:10:41 -07:00
|
|
|
utilities_ovs_vsctl_SOURCES = utilities/ovs-vsctl.c
|
2014-03-04 13:23:53 -08:00
|
|
|
utilities_ovs_vsctl_LDADD = lib/libopenvswitch.la
|
2009-12-08 17:18:12 -08:00
|
|
|
|
2014-01-23 15:35:22 -08:00
|
|
|
if LINUX
|
2010-05-26 10:25:19 -07:00
|
|
|
noinst_PROGRAMS += utilities/nlmon
|
2009-07-08 13:19:16 -07:00
|
|
|
utilities_nlmon_SOURCES = utilities/nlmon.c
|
2014-03-04 13:23:53 -08:00
|
|
|
utilities_nlmon_LDADD = lib/libopenvswitch.la
|
2010-05-26 10:25:19 -07:00
|
|
|
endif
|
2011-07-06 10:43:03 -07:00
|
|
|
|
2016-03-31 10:45:35 -04:00
|
|
|
FLAKE8_PYFILES += utilities/ovs-pcap.in \
|
2016-06-08 17:49:55 -04:00
|
|
|
utilities/checkpatch.py utilities/ovs-dev.py \
|
utilities: Add another GDB macro for ovs-vswitchd.
This commit adds a basic packet metadata macro to the already existing
macros in ovs_gdb.py, ovs_dump_packets will print out information about
one or more packets. It feeds packets into tcpdump, and the user can
pass in tcpdump options to modify how packets are parsed or even write
out packets to a pcap file.
Example usage:
(gdb) break fast_path_processing
(gdb) commands
ovs_dump_packets packets_
continue
end
(gdb) continue
Thread 1 "ovs-vswitchd" hit Breakpoint 2, fast_path_processing ...
12:01:05.962485 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has
10.1.1.1 tell 10.1.1.2, length 28
Thread 1 "ovs-vswitchd" hit Breakpoint 1, fast_path_processing ...
12:01:05.981214 ARP, Ethernet (len 6), IPv4 (len 4), Reply 10.1.1.1
is-at a6:0f:c3:f0:5f:bd (oui Unknown), length 28
Signed-off-by: Mike Pattrick <mkp@redhat.com>
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
2021-12-17 09:09:17 -05:00
|
|
|
utilities/gdb/ovs_gdb.py \
|
2019-09-13 13:29:03 -04:00
|
|
|
utilities/ovs-check-dead-ifs.in \
|
2018-03-13 15:58:59 -04:00
|
|
|
utilities/ovs-tcpdump.in \
|
2021-12-22 10:18:23 +01:00
|
|
|
utilities/ovs-pipegen.py \
|
2024-08-29 11:23:58 +02:00
|
|
|
utilities/usdt-scripts/dpif_op_nl_monitor.py \
|
revalidator: Add a USDT probe during flow deletion with purge reason.
During normal operations, it is useful to understand when a particular flow
gets removed from the system. This can be useful when debugging performance
issues tied to ofproto flow changes, trying to determine deployed traffic
patterns, or while debugging dynamic systems where ports come and go.
Prior to this change, there was a lack of visibility around flow expiration.
The existing debugging infrastructure could tell us when a flow was added to
the datapath, but not when it was removed or why.
This change introduces a USDT probe at the point where the revalidator
determines that the flow should be removed. Additionally, we track the
reason for the flow eviction and provide that information as well. With
this change, we can track the complete flow lifecycle for the netlink
datapath by hooking the upcall tracepoint in kernel, the flow put USDT, and
the revalidator USDT, letting us watch as flows are added and removed from
the kernel datapath.
This change only enables this information via USDT probe, so it won't be
possible to access this information any other way (see:
Documentation/topics/usdt-probes.rst).
Also included is a script (utilities/usdt-scripts/flow_reval_monitor.py)
which serves as a demonstration of how the new USDT probe might be used
going forward.
Co-authored-by: Aaron Conole <aconole@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Aaron Conole <aconole@redhat.com>
Signed-off-by: Kevin Sprague <ksprague0711@gmail.com>
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
2024-03-05 10:44:41 -05:00
|
|
|
utilities/usdt-scripts/flow_reval_monitor.py \
|
utilities: Add upcall statistics to the kernel_delay.py script.
This patch installs a kernel return probe on ovs_dp_upcall() to record
all successful and failed calls per CPU. The statistics are reported
when the script exits, providing insights into the upcall behavior.
This is an example output:
# UPCALL STATISTICS (TOTAL [CPU_ID: N_UPCALLS_PER_CPU, ...]):
Total upcalls : 183247 [0: 8937, 2: 14464, 4: 10372, 6: 4254, ...]
Successfull upcalls : 120195 [0: 5945, 2: 6379, 4: 5966, 6: 4254, ...]
Failed upcalls : 63052 [0: 2992, 2: 8085, 4: 4406, 8: 2275, ...]
11, EAGAIN : 63052 [0: 2992, 2: 8085, 4: 4406, 8: 2275, ...]
Tested-by: Adrian Moreno <amoreno@redhat.com>
Reviewed-by: Adrian Moreno <amoreno@redhat.com>
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
2024-12-19 15:29:43 +01:00
|
|
|
utilities/usdt-scripts/kernel_delay.py \
|
2021-12-22 10:19:02 +01:00
|
|
|
utilities/usdt-scripts/upcall_monitor.py \
|
|
|
|
utilities/usdt-scripts/upcall_cost.py
|
2015-12-21 20:24:34 -05:00
|
|
|
|
2011-07-06 10:43:03 -07:00
|
|
|
include utilities/bugtool/automake.mk
|