|WARNING| [v2] fib, lpm, net, rib, table: remove deprecated functions and macros

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Fri Jul 24 14:15:24 CEST 2026


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

_AI Code Review_

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

# DPDK Patch Review

## Summary
This patch removes deprecated symbols from multiple libraries (fib, lpm, net, rib, table) that were marked for deprecation in DPDK 24.11. The changes are straightforward removals of macros and functions.

---

## Errors

None identified.

---

## Warnings

### 1. Missing API and ABI impact documentation

**File:** `doc/guides/rel_notes/release_26_11.rst`

The patch removes public API symbols but does not document the API/ABI impact in the standard release notes sections.

**Issue:** While the patch adds a "Removed Items" section listing the deprecated symbols, it should also have entries under:
- "API Changes" section to document the API removal
- "ABI Changes" section to document the ABI break

**Suggested addition to API Changes section:**
```rst
* **Removed deprecated IPv6-related macros and functions.**

  The following deprecated symbols were removed:

  * fib: ``RTE_FIB6_IPV6_ADDR_SIZE``, ``RTE_FIB6_MAXDEPTH``
  * lpm: ``RTE_LPM6_IPV6_ADDR_SIZE``, ``RTE_LPM6_MAX_DEPTH``
  * net: ``RTE_IP_ICMP_ECHO_REPLY``, ``RTE_IP_ICMP_ECHO_REQUEST``
  * rib: ``RTE_RIB6_IPV6_ADDR_SIZE``, ``get_msk_part()``,
    ``rte_rib6_copy_addr()``, ``rte_rib6_is_equal()``
  * table: ``RTE_LPM_IPV6_ADDR_SIZE``

  Applications should use the replacement symbols from ``rte_ip6.h``
  (``RTE_IPV6_ADDR_SIZE``, ``RTE_IPV6_MAX_DEPTH``) and standard operations
  (direct struct assignment instead of ``rte_rib6_copy_addr()``,
  ``rte_ipv6_addr_eq()`` instead of ``rte_rib6_is_equal()``).
```

**Suggested addition to ABI Changes section:**
```rst
* The removal of deprecated symbols from fib, lpm, net, rib, and table libraries
  constitutes an ABI break. Applications using the removed symbols must be updated
  to use the replacement symbols.
```

### 2. Removal of rte_common.h includes may affect downstream users

**Files:** `lib/fib/rte_fib6.h`, `lib/lpm/rte_lpm6.h`, `lib/rib/rte_rib6.h`, `lib/table/rte_table_lpm_ipv6.h`

The patch removes `#include <rte_common.h>` from these headers because the deprecated macros that required it are being removed.

**Potential issue:** If any application was indirectly relying on `rte_common.h` being included by these headers (for macros like `RTE_MIN`, `RTE_MAX`, etc.), this change could cause compilation failures.

**Assessment:** This is acceptable because:
1. The note says "Remove now unused rte_common.h includes" - these headers no longer need it directly
2. Applications should include headers for the symbols they use, not rely on transitive includes
3. This is a cleaner API boundary

However, it should be mentioned in the release notes as a potential breaking change for applications with missing includes.

**Suggested addition to API Changes section:**
```rst
* Removed ``rte_common.h`` includes from fib, lpm, rib, and table headers.
  Applications that were indirectly relying on symbols from ``rte_common.h``
  should include it explicitly.
```

---

## Info

### 1. Release notes formatting consistency

**File:** `doc/guides/rel_notes/release_26_11.rst`

The "Removed Items" section uses a definition list format which is good, but the library names could be more consistently formatted. Currently they are plain text; consider making them monospace for consistency with the symbol names.

**Optional improvement:**
```rst
*  Deprecated symbols removed:

   ``fib``
      - ``RTE_FIB6_IPV6_ADDR_SIZE``
      - ``RTE_FIB6_MAXDEPTH``
   ``lpm``
      - ``RTE_LPM6_IPV6_ADDR_SIZE``
      - ``RTE_LPM6_MAX_DEPTH``
```

This is a minor style point and not required.

---

## Summary of Findings

The patch correctly removes deprecated symbols and is structurally sound. The main concerns are:

1. **Warning:** Missing ABI Changes documentation (this is an ABI break)
2. **Warning:** Should document the `rte_common.h` include removal as a potential API change
3. **Info:** Minor release notes formatting suggestion

The code changes themselves are correct - simple removals of deprecated items with no logic errors or resource management issues.


More information about the test-report mailing list