This is an automated email from the ASF dual-hosted git repository. bmahler pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mesos.git
commit f09d6aca43f6bc8de95be24f25162350bd93698b Author: Devin Leamy <[email protected]> AuthorDate: Wed Jan 24 19:42:28 2024 +0000 [LIB UPDATE] Add preprocessor check for libnl3 >= 3.5 in HTB. HTB makes use of the libnl3 3.5 >= APIs: ```c rtnl_htb_set_ceil64() rtnl_htb_set_rate64() ``` This commit enforces the that the correct version is used where this new 64 bit API is used. --- src/linux/routing/queueing/htb.hpp | 6 ++++++ src/slave/containerizer/mesos/isolators/network/port_mapping.cpp | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/linux/routing/queueing/htb.hpp b/src/linux/routing/queueing/htb.hpp index 74b408aa0..ea4fd9cc0 100644 --- a/src/linux/routing/queueing/htb.hpp +++ b/src/linux/routing/queueing/htb.hpp @@ -28,6 +28,12 @@ #include "linux/routing/handle.hpp" +#include <netlink/version.h> + +#if LIBNL_VER_MAJ < 3 || (LIBNL_VER_MAJ == 3 && LIBNL_VER_MIN < 5) +#error libnl3 >= 3.5 required. Please update your installed libnl3 version. +#endif + namespace routing { namespace queueing { namespace htb { diff --git a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp index 603825d4e..06f04d10f 100644 --- a/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp +++ b/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp @@ -5294,10 +5294,10 @@ string PortMappingIsolatorProcess::scripts(Info* info) script << "tc class add dev " << eth0 << " parent " << CONTAINER_TX_HTB_HANDLE << " classid " << CONTAINER_TX_HTB_CLASS_ID << " htb rate " - << static_cast<uint64_t>(info->egressConfig->rate) * 8 << "bit"; + << info->egressConfig->rate * 8 << "bit"; if (info->egressConfig->ceil.isSome()) { script << " ceil " - << static_cast<uint64_t>(info->egressConfig->ceil.get()) * 8 + << info->egressConfig->ceil.get() * 8 << "bit"; if (info->egressConfig->burst.isSome()) { // Use bytes here because tc command borks at bits.
