|WARNING| lpm6, fib6, rib6, table: remove deprecated functions and macros

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Fri Jul 24 11:20:41 CEST 2026


Test-Label: ai-code-review
Test-Status: WARNING
https://dpdk.org/patch/166928

_AI Code Review_

=== Patch Review: series.patch (via Claude) ===
Review date: 2026-07-24

# DPDK Patch Review

## Summary

This patch removes deprecated IPv6 functions and macros from lpm6, fib6, rib6, and table libraries. The changes are mostly clean, but there are several issues with the release notes and one minor API concern.

---

## Errors

**Release notes macro list incorrect**

The release notes list deprecated macros removed, but this is misleading. The patch removes **macro definitions**, not function symbols. The listed items are `#define` constants being removed from headers, not exported functions. Additionally, three of the items (`get_msk_part`, `rte_rib6_copy_addr`, `rte_rib6_is_equal`) are inline static functions, not macros.

**Suggested fix:**
```rst
* Deprecated macros and inline functions removed from IPv6 routing libraries:

  Macros removed:
  - ``RTE_FIB6_IPV6_ADDR_SIZE`` (use ``RTE_IPV6_ADDR_SIZE``)
  - ``RTE_FIB6_MAXDEPTH`` (use ``RTE_IPV6_MAX_DEPTH``)
  - ``RTE_LPM6_IPV6_ADDR_SIZE`` (use ``RTE_IPV6_ADDR_SIZE``)
  - ``RTE_LPM6_MAX_DEPTH`` (use ``RTE_IPV6_MAX_DEPTH``)
  - ``RTE_LPM_IPV6_ADDR_SIZE`` (use ``RTE_IPV6_ADDR_SIZE``)
  - ``RTE_RIB6_IPV6_ADDR_SIZE`` (use ``RTE_IPV6_ADDR_SIZE``)

  Inline functions removed:
  - ``get_msk_part()`` (use manual bit masking)
  - ``rte_rib6_copy_addr()`` (use direct struct assignment or ``rte_memcpy()``)
  - ``rte_rib6_is_equal()`` (use ``rte_ipv6_addr_eq()``)
```

---

## Warnings

**Incomplete ABI change documentation**

While the release notes mention removed symbols, they should be in the "ABI Changes" section, not "Removed Items". The deprecation notice should also specify which release deprecated these (stated as 24.11 in commit message but not in release notes).

**Suggested addition to release notes:**
```rst
ABI Changes
-----------

* **lpm6, fib6, rib6, table: Removed deprecated IPv6 symbols**

  Deprecated macros and functions marked in DPDK 24.11 have been removed:
  - Applications using ``RTE_FIB6_IPV6_ADDR_SIZE`` should use ``RTE_IPV6_ADDR_SIZE``
  - Applications using ``RTE_FIB6_MAXDEPTH`` should use ``RTE_IPV6_MAX_DEPTH``
  - Applications using inline helpers ``rte_rib6_copy_addr()``, ``rte_rib6_is_equal()``,
    or ``get_msk_part()`` should migrate to standard alternatives as documented
    in the deprecation messages.
```

**`get_msk_part()` has no documented replacement**

The function `get_msk_part()` is marked deprecated but its `__rte_deprecated` attribute doesn't include a `_msg` explaining what to use instead. Unlike the other two inline functions which have clear migration paths (`rte_rib6_copy_addr` - direct assignment, `rte_rib6_is_equal` - `rte_ipv6_addr_eq`), there's no guidance for users of `get_msk_part()`.

While this patch is removing it (which is fine for a deprecation cycle completion), the original deprecation should have documented the replacement. This is a procedural note for historical record, not a blocker for this patch.

---

## Info

**Release notes placement**

Release notes are correctly placed in the `release_26_11.rst` file (current release). The "Removed Items" section is appropriate, though as noted above, some content might better fit in "ABI Changes".

**Deprecation cycle appears complete**

The commit message states these were deprecated in 24.11, and this is 26.11, providing a full major release cycle for users to migrate (24.11 - 25.03 - 25.07 - 25.11 - 26.03 - 26.07 - 26.11). This follows DPDK's deprecation policy.

---

## Correctness Review: PASS

No correctness bugs identified:
- No resource leaks
- No use-after-free
- No race conditions
- No forbidden tokens
- No ABI breaks without versioning (these are intentional removals after deprecation)
- Code removal only, no new logic introduced


More information about the test-report mailing list