https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298108

            Bug ID: 298108
           Summary: dummynet: support link rates above UINT32_MAX bit/s
           Product: Base System
           Version: 16.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: [email protected]
          Reporter: [email protected]

Overview
========

Dummynet cannot directly configure link bandwidths above UINT32_MAX
bits/s (4,294,967,295 bit/s).

This prevents dummynet from shaping currently available multi-gigabit
links at their full rates. My immediate use case is applying an FQ_CODEL
limiter to an 8 Gbit/s residential Internet connection.

Steps to Reproduce
==================

On an unmodified FreeBSD main userland:

    # dnctl pipe 1 config bw 8Gbit/s
    dnctl: bandwidth too large

Actual result
=============

The command rejects bandwidth values above UINT32_MAX.

Expected result
===============

Dummynet should be able to configure and report link rates above
UINT32_MAX, including an 8 Gbit/s rate, while retaining compatibility
with existing userland and kernel interfaces where practical.

Technical details
=================

In the current source:

* sbin/ipfw/dummynet.c:read_bandwidth() returns the parsed bandwidth
  through a uint32_t and rejects values greater than UINT_MAX.
* sys/netinet/ip_dummynet.h defines struct dn_link.bandwidth as
  uint32_t.
* The kernel scheduler state embeds struct dn_link, so the 32-bit
  representation is also carried into the kernel implementation.

PR 194453 fixed the earlier signed 2 Gbit/s limit by changing the field
to uint32_t, but this retained the current 4.29 Gbit/s ceiling:

bug #194453

Design discussion
=================

I started an RFC on freebsd-ipfw covering compatibility and ABI options,
including a possible DN_LINK64 object, normalization into private 64-bit
kernel state, API-version negotiation, and legacy GET behaviour:

https://lists.freebsd.org/archives/freebsd-ipfw/2026-September/000623.html

The precise ABI approach is intentionally left open pending feedback
from the IPFW/dummynet maintainers.

Work in progress
================

I have drafted an experimental implementation and ATF tests for
UINT32_MAX, UINT32_MAX+1, 10 Gbit/s, and 100 Gbit/s, including
FQ_CODEL. The implementation has not yet completed FreeBSD-CURRENT
build and ATF validation, so I am not attaching it as a proposed patch
yet.

The implementation and tests will be submitted for formal review after
the ABI direction has been discussed and they have been validated on
FreeBSD-CURRENT.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to