Bug 2216062

Summary: Add tc package to overcloud images
Product: Red Hat OpenStack Reporter: ldenny
Component: openstack-tripleo-puppet-elementsAssignee: Takashi Kajinami <tkajinam>
Status: MODIFIED --- QA Contact: Nobody <nobody>
Severity: low Docs Contact:
Priority: low    
Version: 16.2 (Train)CC: averdagu, hbrock, jslagle, mburns, ramishra, tkajinam
Target Milestone: z2Keywords: Triaged
Target Release: 17.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: tripleo-ansible-3.3.1-17.1.20230810142236.effbc05.el9osttrunk openstack-tripleo-puppet-elements-14.1.3-17.1.20230810141019.b4e0cbd.el9osttrunk Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2230214 (view as bug list) Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2230214    

Description ldenny 2023-06-20 00:13:55 UTC
Description of problem:
Hi Team, 

Just wanted to open a bug to discuss adding the tc command to the overcloud base image.

We had an interesting high level evaluation that came down to packets dropping in qdisc drop counter and you need tc to check that.

It's collected by sos but with the package not installed we just get `command not found` as you can imagine.

I'm not sure where to open this bug so please redirect if this is the incorrect component!

Cheers!

Version-Release number of selected component (if applicable):
16.*
17.*
18.*

Comment 1 ldenny 2023-06-20 00:42:38 UTC
I can't say for sure how often we would use this command but I see it as being along the same lines as `ethtool`, `ip` etc.

The command has a few uses but the one I'm referencing is checking the qdisc statistics like `tc -s qdisc show dev eth1`

Some more details here (Internal Red Hat comment): https://bugzilla.redhat.com/show_bug.cgi?id=2209774#c30

Some details on the package:

[root@compute-0 heat-admin]# dnf info iproute-tc
Updating Subscription Management repositories.
Last metadata expiration check: 0:01:49 ago on Tue 20 Jun 2023 00:37:01 UTC.
Available Packages
Name         : iproute-tc
Version      : 5.18.0
Release      : 1.el8
Architecture : x86_64
Size         : 466 k
Source       : iproute-5.18.0-1.el8.src.rpm
Repository   : rhel-8-for-x86_64-baseos-rpms
Summary      : Linux Traffic Control utility
URL          : https://kernel.org/pub/linux/utils/net/iproute2/
License      : GPLv2+
Description  : The Traffic Control utility manages queueing disciplines, their classes and
             : attached filters and actions. It is the standard tool to configure QoS in
             : Linux.

Comment 3 Ihar Hrachyshka 2023-06-26 15:47:51 UTC
Here is the package that provides the tool.

Available Packages
Name         : iproute-tc
Version      : 5.18.0
Release      : 1.el8
Architecture : x86_64
Size         : 466 k
Source       : iproute-5.18.0-1.el8.src.rpm
Repository   : rhel-8-for-x86_64-baseos-rpms
Summary      : Linux Traffic Control utility
URL          : https://kernel.org/pub/linux/utils/net/iproute2/
License      : GPLv2+
Description  : The Traffic Control utility manages queueing disciplines, their classes and
             : attached filters and actions. It is the standard tool to configure QoS in
             : Linux.

The dependencies are very lean:

[ihrachys@hardprov-fx2-6 ~]$ rpm -qR iproute-tc
iproute(x86-64) = 5.15.0-4.el8_6.1
libbpf.so.0()(64bit)
libbpf.so.0(LIBBPF_0.0.1)(64bit)
libbpf.so.0(LIBBPF_0.0.6)(64bit)
libbpf.so.0(LIBBPF_0.1.0)(64bit)
libbpf.so.0(LIBBPF_0.2.0)(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libcap.so.2()(64bit)
libdl.so.2()(64bit)
libdl.so.2(GLIBC_2.2.5)(64bit)
libelf.so.1()(64bit)
libelf.so.1(ELFUTILS_1.0)(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libmnl.so.0()(64bit)
libmnl.so.0(LIBMNL_1.0)(64bit)
libselinux.so.1()(64bit)
libxtables.so.12()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1
rtld(GNU_HASH)

Comment 4 Ihar Hrachyshka 2023-06-26 15:50:06 UTC
We discussed the matter today during Networking Bug Triage call, and we believe that while this may not help in the majority cases, it will help with the tiny number of very peculiar low-level issues for which we may especially benefit from tc logs collected. And yes, we would like to see this on all supported releases, incl. 16.x. Thanks.

Comment 5 Takashi Kajinami 2023-06-28 02:09:54 UTC
Based on the endorsement from networking side, I'll work on adding the package.
I'll cover 17.1 and 16.2 while I won't cover 17.0 and 16.1, because this is not a critical functional problem.