Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
25.11.0-rc4
25.11.0
2 changes: 1 addition & 1 deletion app/test-bbdev/test_vectors/bbdev_null.data
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# Copyright(c) 2017 Intel Corporation

op_type =
RTE_BBDEV_OP_NONE
RTE_BBDEV_OP_NONE
Original file line number Diff line number Diff line change
Expand Up @@ -637,4 +637,4 @@ RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_CRC_TYPE_24B,
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN

expected_status =
OK
OK
Original file line number Diff line number Diff line change
Expand Up @@ -637,4 +637,4 @@ RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_CRC_TYPE_24B,
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN

expected_status =
OK
OK
Original file line number Diff line number Diff line change
Expand Up @@ -1219,4 +1219,4 @@ RTE_BBDEV_TURBO_SOFT_OUTPUT, RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TU
RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT

expected_status =
OK
OK
Original file line number Diff line number Diff line change
Expand Up @@ -674,4 +674,4 @@ RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN,
RTE_BBDEV_TURBO_CRC_TYPE_24B, RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP

expected_status =
OK
OK
Original file line number Diff line number Diff line change
Expand Up @@ -156,4 +156,4 @@ op_flags =
RTE_BBDEV_TURBO_CRC_24A_ATTACH

expected_status =
OK
OK
Original file line number Diff line number Diff line change
Expand Up @@ -150,4 +150,4 @@ op_flags =
RTE_BBDEV_TURBO_CRC_24B_ATTACH

expected_status =
OK
OK
121 changes: 121 additions & 0 deletions app/test/test_acl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1721,6 +1721,125 @@ test_u32_range(void)
return rc;
}

struct acl_ctx_wrapper_t {
struct rte_acl_ctx *ctx;
void *running_buf;
bool running_buf_using;
};

#define ACL_RUNNING_BUF_SIZE (10 * 1024 * 1024)

static void *running_alloc(void *udata, char *name, size_t size,
size_t align, int32_t socket_id)
{
(void)align;
(void)name;
(void)socket_id;
if (size > ACL_RUNNING_BUF_SIZE)
return NULL;
struct acl_ctx_wrapper_t *gwlb_acl_ctx = (struct acl_ctx_wrapper_t *)udata;
if (gwlb_acl_ctx->running_buf_using)
return NULL;
printf("running memory alloc for acl context, size=%zu, pointer=%p\n",
size,
gwlb_acl_ctx->running_buf);
memset(gwlb_acl_ctx->running_buf, 0, size);
gwlb_acl_ctx->running_buf_using = true;
return gwlb_acl_ctx->running_buf;
}

static void running_free(void *udata, void *ptr)
{
if (!ptr)
return;
struct acl_ctx_wrapper_t *gwlb_acl_ctx = (struct acl_ctx_wrapper_t *)udata;
printf("running memory free, pointer=%p\n", ptr);
gwlb_acl_ctx->running_buf_using = false;
}

static int
test_mem_cb(void)
{
int i, ret;
struct acl_ctx_wrapper_t g_acl_ctx_wrapper;
g_acl_ctx_wrapper.ctx = rte_acl_create(&acl_param);
if (g_acl_ctx_wrapper.ctx == NULL) {
printf("Line %i: Error creating ACL context!\n", __LINE__);
return -1;
}
g_acl_ctx_wrapper.running_buf = rte_zmalloc_socket(
"test_acl",
ACL_RUNNING_BUF_SIZE,
RTE_CACHE_LINE_SIZE,
SOCKET_ID_ANY);
if (!g_acl_ctx_wrapper.running_buf) {
printf("Line %i: Error allocing running buf for acl context!\n", __LINE__);
return 1;
}
Comment on lines +1775 to +1778
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Inconsistent error return value.

Returns 1 on allocation failure, but the test framework and other tests in this file return -1 for errors.

 	if (!g_acl_ctx_wrapper.running_buf) {
 		printf("Line %i: Error allocing running buf for acl context!\n", __LINE__);
-		return 1;
+		rte_acl_free(g_acl_ctx_wrapper.ctx);
+		return -1;
 	}

Note: Also added missing cleanup of the ACL context before returning.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
if (!g_acl_ctx_wrapper.running_buf) {
printf("Line %i: Error allocing running buf for acl context!\n", __LINE__);
return 1;
}
if (!g_acl_ctx_wrapper.running_buf) {
printf("Line %i: Error allocing running buf for acl context!\n", __LINE__);
rte_acl_free(g_acl_ctx_wrapper.ctx);
return -1;
}
🤖 Prompt for AI Agents
In app/test/test_acl.c around lines 1775-1778, the allocation-failure branch
prints an error and returns 1 which is inconsistent with the test framework
convention of returning -1; update the return value to -1 and ensure the ACL
context is cleaned up before returning (free or teardown whatever
g_acl_ctx_wrapper holds and set pointers to NULL as done elsewhere in this file)
so the function exits with consistent error code and no resource leak.

g_acl_ctx_wrapper.running_buf_using = false;

struct rte_acl_mem_cb mcb = {
.zalloc = running_alloc,
.free = running_free,
.udata = &g_acl_ctx_wrapper
};
ret = rte_acl_set_mem_cb(g_acl_ctx_wrapper.ctx, &mcb);
if (ret) {
printf("Line %i: Error set mem cb for acl context!\n", __LINE__);
return 1;
}
struct rte_acl_mem_cb new_mcb;
memset(&new_mcb, 0, sizeof(struct rte_acl_mem_cb));
ret = rte_acl_get_mem_cb(g_acl_ctx_wrapper.ctx, &new_mcb);
if (ret) {
printf("Line %i: Error get mem cb for acl context!\n", __LINE__);
return 1;
}
if (memcmp(&mcb, &new_mcb, sizeof(struct rte_acl_mem_cb)) != 0) {
printf("Line %i: Error get mem cb for acl context!\n", __LINE__);
return 1;
Comment on lines +1786 to +1800
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Inconsistent error return values and missing cleanup.

Multiple return paths use 1 instead of -1 and don't clean up allocated resources.

 	ret = rte_acl_set_mem_cb(g_acl_ctx_wrapper.ctx, &mcb);
 	if (ret) {
 		printf("Line %i: Error set mem cb for acl context!\n", __LINE__);
-		return 1;
+		goto err;
 	}
 	struct rte_acl_mem_cb new_mcb;
 	memset(&new_mcb, 0, sizeof(struct rte_acl_mem_cb));
 	ret = rte_acl_get_mem_cb(g_acl_ctx_wrapper.ctx, &new_mcb);
 	if (ret) {
 		printf("Line %i: Error get mem cb for acl context!\n", __LINE__);
-		return 1;
+		goto err;
 	}
 	if (memcmp(&mcb, &new_mcb, sizeof(struct rte_acl_mem_cb)) != 0) {
 		printf("Line %i: Error get mem cb for acl context!\n", __LINE__);
-		return 1;
+		goto err;
 	}

Add an error label at the end:

err:
	rte_acl_free(g_acl_ctx_wrapper.ctx);
	rte_free(g_acl_ctx_wrapper.running_buf);
	return -1;
🤖 Prompt for AI Agents
In app/test/test_acl.c around lines 1786 to 1800 the error paths return 1 and
skip cleanup; update those error returns to jump to a new err label (e.g., "goto
err;") so allocated resources are freed; add an err label at the end that calls
rte_acl_free(g_acl_ctx_wrapper.ctx) and rte_free(g_acl_ctx_wrapper.running_buf)
and then returns -1; ensure every early failure in this block uses the goto err
path instead of returning 1 so cleanup always runs and the function returns -1
on error.

}
ret = 0;
for (i = 0; i != TEST_CLASSIFY_ITER; i++) {

if ((i & 1) == 0)
rte_acl_reset(g_acl_ctx_wrapper.ctx);
else
rte_acl_reset_rules(g_acl_ctx_wrapper.ctx);

ret = test_classify_buid(g_acl_ctx_wrapper.ctx, acl_test_rules,
RTE_DIM(acl_test_rules));
if (ret != 0) {
printf("Line %i, iter: %d: "
"Adding rules to ACL context failed!\n",
__LINE__, i);
break;
}

ret = test_classify_run(g_acl_ctx_wrapper.ctx, acl_test_data,
RTE_DIM(acl_test_data));
if (ret != 0) {
printf("Line %i, iter: %d: %s failed!\n",
__LINE__, i, __func__);
break;
}

/* reset rules and make sure that classify still works ok. */
rte_acl_reset_rules(g_acl_ctx_wrapper.ctx);
ret = test_classify_run(g_acl_ctx_wrapper.ctx, acl_test_data,
RTE_DIM(acl_test_data));
if (ret != 0) {
printf("Line %i, iter: %d: %s failed!\n",
__LINE__, i, __func__);
break;
}
}

rte_acl_free(g_acl_ctx_wrapper.ctx);
rte_free(g_acl_ctx_wrapper.running_buf);
return ret;
}

static int
test_acl(void)
{
Expand All @@ -1742,6 +1861,8 @@ test_acl(void)
return -1;
if (test_u32_range() < 0)
return -1;
if (test_mem_cb() < 0)
return -1;

return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion doc/guides/contributing/img/abi_stability_policy.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/guides/contributing/img/what_is_an_abi.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion doc/guides/howto/img/flow_bifurcation_overview.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion doc/guides/nics/cxgbe.rst
Original file line number Diff line number Diff line change
Expand Up @@ -886,4 +886,3 @@ port.

For this reason, one cannot allow/block a single port without
allowing/blocking the other ports on the same device.

4 changes: 0 additions & 4 deletions doc/guides/nics/ipn3ke.rst
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,3 @@ To start ``testpmd``, and add I40e PF to FPGA network port, enable FPGA HQoS and
.. code-block:: console

./<build_dir>/app/dpdk-testpmd -l 0-15 --vdev 'ifpga_rawdev_cfg0,ifpga=b3:00.0,port=0' --vdev 'ipn3ke_cfg0,afu=0|b3:00.0,fpga_acc={tm|flow},i40e_pf={0000:b1:00.0|0000:b1:00.1|0000:b1:00.2|0000:b1:00.3|0000:b5:00.0|0000:b5:00.1|0000:b5:00.2|0000:b5:00.3}' -- -i --no-numa --forward-mode=macswap

Limitations or Known issues
---------------------------

9 changes: 6 additions & 3 deletions doc/guides/nics/mlx5.rst
Original file line number Diff line number Diff line change
Expand Up @@ -689,9 +689,11 @@ for an additional list of options shared with other mlx5 drivers.
- ``dv_flow_en`` parameter [int]

Value 0 means legacy Verbs flow offloading.
It is available for devices older than ConnectX-9.

Value 1 enables the DV flow steering assuming it is supported by the
driver (requires rdma-core 24 or higher).
Value 1 enables the Direct Verbs flow steering.
It is available for devices older than ConnectX-9,
and requires rdma-core 24 or later.

Value 2 enables the WQE based hardware steering.
In this mode, only queue-based flow management is supported.
Expand Down Expand Up @@ -1338,7 +1340,8 @@ Hardware Steering
~~~~~~~~~~~~~~~~~

Faster than software steering (SWS),
hardware steering (HWS) is the only mode supporting the flow template async API.
hardware steering (HWS) is the only mode supporting the flow template async API,
and the only mode supported on device ConnectX-9 and later.

Flow rules are managed by the hardware,
with a WQE-based high scaling and safer flow insertion/destruction.
Expand Down
3 changes: 2 additions & 1 deletion doc/guides/prog_guide/img/bond-mode-0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion doc/guides/prog_guide/img/bond-mode-1.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion doc/guides/prog_guide/img/bond-mode-2.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion doc/guides/prog_guide/img/bond-mode-3.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion doc/guides/prog_guide/img/bond-mode-4.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion doc/guides/prog_guide/img/bond-mode-5.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/guides/prog_guide/img/lcore_var_mem_layout.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/guides/prog_guide/img/pdcp_functional_overview.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/guides/prog_guide/img/predictable_snat_1.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/guides/prog_guide/img/predictable_snat_2.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/guides/prog_guide/img/rss_queue_assign.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion doc/guides/prog_guide/img/static_array_mem_layout.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 2 additions & 1 deletion doc/guides/sample_app_ug/img/overlay_networking.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion drivers/event/dlb2/dlb2_iface.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,3 @@ int (*dlb2_iface_set_cq_inflight_ctrl)(struct dlb2_hw_dev *handle,

int (*dlb2_iface_set_cos_bw)(struct dlb2_hw_dev *handle,
struct dlb2_set_cos_bw_args *args);

1 change: 0 additions & 1 deletion drivers/net/bnxt/tf_core/tf_em_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,3 @@
#include "tf_ext_flow_handle.h"
#include "hcapi_cfa.h"
#include "bnxt.h"

Original file line number Diff line number Diff line change
Expand Up @@ -261,4 +261,3 @@ struct bnxt_ulp_act_match_info ulp_act_match_list[] = {
.act_tid = 12
}
};

Original file line number Diff line number Diff line change
Expand Up @@ -8362,4 +8362,3 @@ struct bnxt_ulp_class_match_info ulp_class_match_list[] = {
},
}
};

Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,3 @@ enum bnxt_ulp_template_id {
};

#endif

Original file line number Diff line number Diff line change
Expand Up @@ -4065,4 +4065,3 @@ uint32_t ulp_act_prop_map_table[] = {
[BNXT_ULP_ACT_PROP_IDX_LAST] =
BNXT_ULP_ACT_PROP_SZ_LAST
};

Original file line number Diff line number Diff line change
Expand Up @@ -68548,4 +68548,3 @@ struct bnxt_ulp_mapper_ident_info ulp_thor2_class_ident_list[] = {
.ident_bit_pos = 64
}
};

Original file line number Diff line number Diff line change
Expand Up @@ -69581,4 +69581,3 @@ struct bnxt_ulp_mapper_ident_info ulp_thor_class_ident_list[] = {
.ident_bit_pos = 62
}
};

Original file line number Diff line number Diff line change
Expand Up @@ -18776,4 +18776,3 @@ struct bnxt_ulp_mapper_ident_info ulp_wh_plus_class_ident_list[] = {
.ident_bit_pos = 0
}
};

1 change: 0 additions & 1 deletion drivers/net/gve/base/gve_adminq.c
Original file line number Diff line number Diff line change
Expand Up @@ -1080,4 +1080,3 @@ int gve_adminq_configure_rss(struct gve_priv *priv,
gve_free_dma_mem(&rss_key_dma_mem);
return err;
}

1 change: 0 additions & 1 deletion drivers/net/gve/gve_rss.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,4 +203,3 @@ gve_to_rte_rss_hf(uint16_t gve_rss_types, struct rte_eth_rss_conf *rss_conf)
if (gve_rss_types & GVE_RSS_HASH_UDPV6_EX)
rss_conf->rss_hf |= RTE_ETH_RSS_IPV6_UDP_EX;
}

Loading