librdmacm/libibverbs: Add bnxtre RDMA provider to OFED build infrastructure
Extend the FreeBSD OFED build framework to include the Broadcom bnxtre RDMA
provider library.
This change:
-Registers libbnxtre in src.libnames.mk so it is built and installed as part
of the OFED libraries.
-Adds bnxtre to the OFED pcap dependency set when MK_OFED is enabled.
-Declares proper dependency mappings for bnxtre (ibverbs, pthread).
-Introduces LIBBNXTREDIR for consistent object directory handling.
-Updates libibverbs and librdmacm build rules to link against libbnxtre,
enabling Broadcom RoCE device support at runtime.
-libbnxtre library uses below constructor to register with the libibverbs,
static attribute((constructor)) void bnxt_re_register_driver(void)
These updates ensure that applications using libibverbs and librdmacm can
discover and use Broadcom bnxt RDMA devices on FreeBSD.
[6 lines not shown]
libpcap: Fix dependency definitions for libpcap
Commit 35dd53a9e132 ("librdmacm/libibverbs: Statically bound libbnxtre.so.1 to rping")
causes a build failure, since src.libnames.mk declares a depencency on
libbnxtre.so, but the libpcap Makefile and prebuild lib dependencies
were not updated accordingly. Fix the declarations.
Fixes: 35dd53a9e132 ("librdmacm/libibverbs: Statically bound libbnxtre.so.1 to rping")
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54048
(cherry picked from commit 73e8fe62466a8ae5576473d9be4c6df9a6eedab0)
bnxt_re: Fix active_speed value when two ports are aggregated
Currently driver is not considering the active_lanes while
displaying the speed & width of port and hence it showing
invalid active_speed and active_width values in the ibv_devinfo
command output when two ports are aggregated at hardware level.
Fixed the driver to consider the active_lanes while determining
the active_speed & active_width values.
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54523
MFC after: 3 days
(cherry picked from commit b7d6334df61a559e98191f90fd5e611e0d077def)
bnxt_en/re: Use FW defined resource limit for RoCE
Check FW flags for status of Resource Limits. If bit
FUNC_QCAPS_RESP_FLAGS_EXT2_SW_MAX_RESOURCE_LIMITS_SUPPORTED
is set, that means FW set the resource limit for L2 and RoCE.
We'll then do the following:
L2 driver would allocate context memory based on what FW reported.
RoCE driver uses FW reported values without capping. These values
are the total FW reported value minus L2 and other components shares.
For example:
FW reported max_qps = 137217 in L2 query, this includes:
5120 for L2
1025 for QP1
131072 for RoCE
L2 will allocate backing store memory for the total.
In RoCE query, we'll get max_qp = 131072 and use it
[7 lines not shown]
bnxt_re/libbnxtre: Add support for Variable WQE on BCM576xx controllers
Variable size WQE means that each send Work Queue Entry to
HW can use different WQE sizes as opposed to the static WQE
size on the current devices. Set variable WQE mode for BCM576xx
devices. Depth of the Queue will be a multiple of slot which
is 16 bytes. The number of slots should be a multiple of 256
as per the HW requirement.
Initialize the Software shadow queue to hold requests equal to
the number of slots.
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54525
MFC after: 3 days
(cherry picked from commit 823f158a01330484f83f69c31d695035c607f8ee)
bnxt_re: Add support to display board_id in ibv_devinfo output
Added support to display board_id in ibv_devinfo output.
ibv_devinfo util reads the board_id from below sysctl
attribute, so added this sysctl attribute.
sys.class.infiniband.bnxt_reX.board_id
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54524
MFC after: 3 days
(cherry picked from commit 3a9565c2a8e4f1b3da698bf6a8af5889dc4fefbd)
bnxt_re/libbnxtre: Add RoCE support for BCM576xx controllers
Added RoCE support for BCM576xx controllers with below changes,
1. Update the BAR offsets for handling BCM576xx controllers.
Use the values populated by the L2 driver for getting the
Doorbell offsets.
2. Use msn index instead of tail to pull psn table entry.
3. Temporarily disable dbr pacing feature untill it is
fully implemented.
4. Add support for 400G speed.
Reviewed by: ssaxena
Differential Revision: https://reviews.freebsd.org/D54521
MFC after: 3 days
(cherry picked from commit 92ba9b2fe58910b1d2cd6cd34b5ec093f0d9f700)
devel/py-python-discovery: Add new port
You may have multiple Python versions installed on your machine – system
Python, versions from pyenv, mise, asdf, uv, or the Windows registry (PEP 514).
python-discovery finds the right one for you.
Give it a requirement like python3.12 or >=3.11,<3.13, and python-discovery
searches all known locations, verifies each candidate, and returns detailed
metadata about the match. Results are cached to disk so repeated lookups are
fast.
https://pypi.org/project/python-discovery/
ngctl: Fix getline loop
I misremembered when I wrote this code: getline() returns -1 on EOF, not
zero, so the loop condition and the error check are both incorrect
(though in practice getline() will never return 0).
MFC after: 3 days
Fixes: 3cbdcabf714d ("ngctl: Modernize code somewhat")
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D55487
(cherry picked from commit 6c4777c59325c2cfefcce0c466b3bf475404a550)
ngctl.8: fix incorrect synopsis
Tiny manpage bug I caused in D50241
I left a line in the manpage that shouldn't be there.
MFC after: 3 days
Fixes: 72d01e62b082 ("netgraph: teach ngctl to attach and run itself in a jail")
Reviewed by: des, markj
Differential Revision: https://reviews.freebsd.org/D55485
(cherry picked from commit 9ed56cd8d6929e3ee733e1e61d2e0c6b81122983)
textproc/oyo: Add new port
Oyo is a terminal diff viewer that combines a classic scrollable diff with a
step-through way to review changes.
This tool has different diff modes, such as a dual mode for scrolling through
diffs or stepping incrementally, a unified mode where code transforms in one
pane, a split mode for side-by-side old and new versions, has an evolution
mode with deletions fading out and a blame mode for Git annotations per line.
Other features of oyo include handling hunk navigation to jump between change
groups, multi-file support, regex search across diffs, a command palette for
quick actions, syntax highlighting, word-level diff marking, animated steps,
line wrapping, Git integration as a difftool, autoplay at set speeds and
helpful keyboard bindings.
https://github.com/ahkohd/oyo
dpaa2: improve error messages and log requested cluster size
If m_getjcl() fails we want to know the size we requested in order to
have a chance to evaluate the problem better.
MFC after: 3 days
Reviewed by: tuexen
Differential Revision: https://reviews.freebsd.org/D55555