Bug 2216062

Summary: Add tc package to overcloud images
Product: Red Hat OpenStack Reporter: ldenny
Component: openstack-tripleo-puppet-elementsAssignee: OSP Team <rhos-maint>
Status: CLOSED ERRATA QA Contact: Nobody <nobody>
Severity: low Docs Contact:
Priority: low    
Version: 16.2 (Train)CC: averdagu, drosenfe, hbrock, jslagle, mariel, mburns, pgrist, ramishra
Target Milestone: z1Keywords: Triaged
Target Release: 17.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-puppet-elements-14.1.3-1.20230221221304.el9ost tripleo-ansible-3.3.1-1.20230518201538.el9ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 2230214 (view as bug list) Environment:
Last Closed: 2023-09-20 00:29:44 UTC 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.

Comment 14 David Rosenfeld 2023-09-01 12:51:28 UTC
iproute-tc package is seen on overcloud nodes:

[tripleo-admin@ceph-0 ~]$ sudo yum list installed | grep iproute-tc
iproute-tc.x86_64                               6.1.0-1.el9                              @anaconda 

[tripleo-admin@compute-0 ~]$ sudo yum list installed | grep iproute-tc
iproute-tc.x86_64                               6.1.0-1.el9                              @anaconda 

[tripleo-admin@controller-0 ~]$ sudo yum list installed | grep iproute-tc
iproute-tc.x86_64                               6.1.0-1.el9                              @anaconda

Example of command working:

[tripleo-admin@controller-0 ~]$ sudo tc -s qdisc show dev enp1s0
qdisc fq_codel 0: root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 32Mb ecn drop_batch 64 
 Sent 112325491 bytes 194897 pkt (dropped 0, overlimits 0 requeues 0) 
 backlog 0b 0p requeues 0
  maxpacket 17373 drop_overlimit 0 new_flow_count 176 ecn_mark 0
  new_flows_len 0 old_flows_len 0

Comment 20 errata-xmlrpc 2023-09-20 00:29:44 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Release of components for Red Hat OpenStack Platform 17.1.1 (Wallaby)), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:5138