[RFC 1/2] bpf: make bpf_def.h private

Marat Khalili <[email protected]>
Newsgroups org.dpdk.dev
Message-ID <[email protected]>
Both `bpf_def.h` header file and the symbols it defined were not
previously prefixed with `rte_`, creating an opportunity for name
conflicts. Status of the file itself (private or public) was unclear.

Move public symbols after adding the necessary prefix (`rte_ebpf_insn`
and `RTE_EBPF_FUNC_MAX_ARGS`) into the public header file `rte_bpf.h`,
and make the rest private.

Signed-off-by: Marat Khalili <[email protected]>
---
 app/test/test_bpf.c              | 79 ++++++++++++++++----------------
 app/test/test_bpf_validate.c     | 74 +++++++++++++++---------------
 lib/bpf/bpf_convert.c            | 38 +++++++--------
 lib/bpf/bpf_def.h                | 15 ------
 lib/bpf/bpf_dump.c               | 13 +++---
 lib/bpf/bpf_exec.c               |  8 ++--
 lib/bpf/bpf_impl.h               |  3 +-
 lib/bpf/bpf_jit_arm64.c          |  4 +-
 lib/bpf/bpf_jit_x86.c            |  2 +-
 lib/bpf/bpf_load.c               |  2 +-
 lib/bpf/bpf_load_elf.c           | 10 ++--
 lib/bpf/bpf_validate.c           | 44 +++++++++---------
 lib/bpf/bpf_validate.h           |  4 +-
 lib/bpf/bpf_validate_debug.c     |  6 +--
 lib/bpf/meson.build              |  2 +-
 lib/bpf/rte_bpf.h                | 33 +++++++++----
 lib/bpf/rte_bpf_validate_debug.h |  8 ++--
 17 files changed, 174 insertions(+), 171 deletions(-)

diff --git a/app/test/test_bpf.c b/app/test/test_bpf.c
index 3205afaa63ad..bf3e4dd0c1de 100644
--- a/app/test/test_bpf.c
+++ b/app/test/test_bpf.c
@@ -16,6 +16,7 @@
 #include <rte_byteorder.h>
 #include <rte_errno.h>
 
+#include "bpf_def.h"
 #include "test.h"
 
 #if !defined(RTE_LIB_BPF)
@@ -52,7 +53,7 @@ test_bpf(void)
  *   TEST_SUCCESS on success, error code on failure.
  */
 static int
-bpf_load_test(uint32_t nb_ins, const struct ebpf_insn *ins, int expected_errno)
+bpf_load_test(uint32_t nb_ins, const struct rte_ebpf_insn *ins, int expected_errno)
 {
 	const struct rte_bpf_prm prm = {
 		.ins = ins,
@@ -87,7 +88,7 @@ bpf_load_test(uint32_t nb_ins, const struct ebpf_insn *ins, int expected_errno)
 static int
 test_no_instructions(void)
 {
-	static const struct ebpf_insn ins[] = {};
+	static const struct rte_ebpf_insn ins[] = {};
 	return bpf_load_test(RTE_DIM(ins), ins, EINVAL);
 }
 
@@ -100,7 +101,7 @@ REGISTER_FAST_TEST(bpf_no_instructions_autotest, NOHUGE_OK, ASAN_OK, test_no_ins
 static int
 test_exit_only(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			.code = (BPF_JMP | EBPF_EXIT),
 		},
@@ -117,7 +118,7 @@ REGISTER_FAST_TEST(bpf_exit_only_autotest, NOHUGE_OK, ASAN_OK, test_exit_only);
 static int
 test_no_exit(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set return value to the program argument. */
 			.code = (EBPF_ALU64 | EBPF_MOV | BPF_X),
@@ -136,7 +137,7 @@ REGISTER_FAST_TEST(bpf_no_exit_autotest, NOHUGE_OK, ASAN_OK, test_no_exit);
 static int
 test_minimal_working(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set return value to the program argument. */
 			.code = (EBPF_ALU64 | EBPF_MOV | BPF_X),
@@ -158,7 +159,7 @@ REGISTER_FAST_TEST(bpf_minimal_working_autotest, NOHUGE_OK, ASAN_OK, test_minima
 static int
 test_add_one(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set return value to one. */
 			.code = (EBPF_ALU64 | EBPF_MOV | BPF_K),
@@ -186,7 +187,7 @@ REGISTER_FAST_TEST(bpf_add_one_autotest, NOHUGE_OK, ASAN_OK, test_add_one);
 static int
 test_subtract_one(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Subtract one from the program argument. */
 			.code = (EBPF_ALU64 | BPF_SUB | BPF_K),
@@ -214,7 +215,7 @@ REGISTER_FAST_TEST(bpf_subtract_one_autotest, NOHUGE_OK, ASAN_OK, test_subtract_
 static int
 test_jump_over_invalid_first(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Jump over the next instruction for some r1. */
 			.code = (BPF_JMP | BPF_JEQ | BPF_K),
@@ -251,7 +252,7 @@ REGISTER_FAST_TEST(bpf_jump_over_invalid_first_autotest, NOHUGE_OK, ASAN_OK,
 static int
 test_jump_over_invalid_non_first(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set return value to the program argument. */
 			.code = (EBPF_ALU64 | EBPF_MOV | BPF_X),
@@ -401,7 +402,7 @@ dummy_prepare(void *arg)
 }
 
 /* store immediate test-cases */
-static const struct ebpf_insn test_store1_prog[] = {
+static const struct rte_ebpf_insn test_store1_prog[] = {
 	{
 		.code = (BPF_ST | BPF_MEM | BPF_B),
 		.dst_reg = EBPF_REG_1,
@@ -464,7 +465,7 @@ test_store1_check(uint64_t rc, const void *arg)
 }
 
 /* store register test-cases */
-static const struct ebpf_insn test_store2_prog[] = {
+static const struct rte_ebpf_insn test_store2_prog[] = {
 
 	{
 		.code = (EBPF_ALU64 | EBPF_MOV | BPF_K),
@@ -507,7 +508,7 @@ static const struct ebpf_insn test_store2_prog[] = {
 };
 
 /* load test-cases */
-static const struct ebpf_insn test_load1_prog[] = {
+static const struct rte_ebpf_insn test_load1_prog[] = {
 
 	{
 		.code = (BPF_LDX | BPF_MEM | BPF_B),
@@ -584,7 +585,7 @@ test_load1_check(uint64_t rc, const void *arg)
 }
 
 /* load immediate test-cases */
-static const struct ebpf_insn test_ldimm1_prog[] = {
+static const struct rte_ebpf_insn test_ldimm1_prog[] = {
 
 	{
 		.code = (BPF_LD | BPF_IMM | EBPF_DW),
@@ -672,7 +673,7 @@ test_ldimm1_check(uint64_t rc, const void *arg)
 
 
 /* alu mul test-cases */
-static const struct ebpf_insn test_mul1_prog[] = {
+static const struct rte_ebpf_insn test_mul1_prog[] = {
 
 	{
 		.code = (BPF_LDX | BPF_MEM | BPF_W),
@@ -784,7 +785,7 @@ test_mul1_check(uint64_t rc, const void *arg)
 }
 
 /* alu shift test-cases */
-static const struct ebpf_insn test_shift1_prog[] = {
+static const struct rte_ebpf_insn test_shift1_prog[] = {
 
 	{
 		.code = (BPF_LDX | BPF_MEM | BPF_W),
@@ -979,7 +980,7 @@ test_shift1_check(uint64_t rc, const void *arg)
 }
 
 /* jmp test-cases */
-static const struct ebpf_insn test_jump1_prog[] = {
+static const struct rte_ebpf_insn test_jump1_prog[] = {
 
 	[0] = {
 		.code = (BPF_ALU | EBPF_MOV | BPF_K),
@@ -1188,7 +1189,7 @@ test_jump1_check(uint64_t rc, const void *arg)
 }
 
 /* Jump test case - check ip4_dest in particular subnet */
-static const struct ebpf_insn test_jump2_prog[] = {
+static const struct rte_ebpf_insn test_jump2_prog[] = {
 
 	[0] = {
 		.code = (EBPF_ALU64 | EBPF_MOV | BPF_K),
@@ -1353,7 +1354,7 @@ test_jump2_check(uint64_t rc, const void *arg)
 }
 
 /* alu (add, sub, and, or, xor, neg)  test-cases */
-static const struct ebpf_insn test_alu1_prog[] = {
+static const struct rte_ebpf_insn test_alu1_prog[] = {
 
 	{
 		.code = (BPF_LDX | BPF_MEM | BPF_W),
@@ -1535,7 +1536,7 @@ test_alu1_check(uint64_t rc, const void *arg)
 }
 
 /* endianness conversions (BE->LE/LE->BE)  test-cases */
-static const struct ebpf_insn test_bele1_prog[] = {
+static const struct rte_ebpf_insn test_bele1_prog[] = {
 
 	{
 		.code = (BPF_LDX | BPF_MEM | BPF_H),
@@ -1701,7 +1702,7 @@ test_bele1_check(uint64_t rc, const void *arg)
 }
 
 /* atomic add test-cases */
-static const struct ebpf_insn test_xadd1_prog[] = {
+static const struct rte_ebpf_insn test_xadd1_prog[] = {
 
 	{
 		.code = (EBPF_ALU64 | EBPF_MOV | BPF_K),
@@ -1889,7 +1890,7 @@ test_xadd1_check(uint64_t rc, const void *arg)
 }
 
 /* alu div test-cases */
-static const struct ebpf_insn test_div1_prog[] = {
+static const struct rte_ebpf_insn test_div1_prog[] = {
 
 	{
 		.code = (BPF_LDX | BPF_MEM | BPF_W),
@@ -2013,7 +2014,7 @@ test_div1_check(uint64_t rc, const void *arg)
 }
 
 /* call test-cases */
-static const struct ebpf_insn test_call1_prog[] = {
+static const struct rte_ebpf_insn test_call1_prog[] = {
 
 	{
 		.code = (BPF_LDX | BPF_MEM | BPF_W),
@@ -2138,7 +2139,7 @@ static const struct rte_bpf_xsym test_call1_xsym[] = {
 	},
 };
 
-static const struct ebpf_insn test_call2_prog[] = {
+static const struct rte_ebpf_insn test_call2_prog[] = {
 
 	{
 		.code = (EBPF_ALU64 | EBPF_MOV | BPF_X),
@@ -2264,7 +2265,7 @@ static const struct rte_bpf_xsym test_call2_xsym[] = {
 	},
 };
 
-static const struct ebpf_insn test_call3_prog[] = {
+static const struct rte_ebpf_insn test_call3_prog[] = {
 
 	{
 		.code = (BPF_JMP | EBPF_CALL),
@@ -2377,7 +2378,7 @@ static const struct rte_bpf_xsym test_call3_xsym[] = {
 };
 
 /* Test for stack corruption in multiple function calls */
-static const struct ebpf_insn test_call4_prog[] = {
+static const struct rte_ebpf_insn test_call4_prog[] = {
 	{
 		.code = (BPF_ST | BPF_MEM | BPF_B),
 		.dst_reg = EBPF_REG_10,
@@ -2550,7 +2551,7 @@ static const struct rte_bpf_xsym test_call4_xsym[] = {
 };
 
 /* string compare test case */
-static const struct ebpf_insn test_call5_prog[] = {
+static const struct rte_ebpf_insn test_call5_prog[] = {
 
 	[0] = {
 		.code = (EBPF_ALU64 | EBPF_MOV | BPF_K),
@@ -2758,7 +2759,7 @@ static const struct rte_bpf_xsym test_call5_xsym[] = {
 };
 
 /* load mbuf (BPF_ABS/BPF_IND) test-cases */
-static const struct ebpf_insn test_ld_mbuf1_prog[] = {
+static const struct rte_ebpf_insn test_ld_mbuf1_prog[] = {
 
 	/* BPF_ABS/BPF_IND implicitly expect mbuf ptr in R6 */
 	{
@@ -3016,7 +3017,7 @@ test_ld_mbuf2_check(uint64_t rc, const void *arg)
 }
 
 /* same as test_ld_mbuf1, but now store intermediate results on the stack */
-static const struct ebpf_insn test_ld_mbuf3_prog[] = {
+static const struct rte_ebpf_insn test_ld_mbuf3_prog[] = {
 
 	/* BPF_ABS/BPF_IND implicitly expect mbuf ptr in R6 */
 	{
@@ -3165,7 +3166,7 @@ static const struct ebpf_insn test_ld_mbuf3_prog[] = {
 };
 
 /* divide INT64_MIN by -1 */
-static const struct ebpf_insn test_int64min_udiv_uint64max_prog[] = {
+static const struct rte_ebpf_insn test_int64min_udiv_uint64max_prog[] = {
 	/* Load INT64_MIN into r0 */
 	{
 		.code = (BPF_LD | BPF_IMM | EBPF_DW),
@@ -3197,7 +3198,7 @@ test_int64min_udiv_uint64max_check(uint64_t rc, const void *arg)
 }
 
 /* modulo INT64_MIN by -1 */
-static const struct ebpf_insn test_int64min_umod_uint64max_prog[] = {
+static const struct rte_ebpf_insn test_int64min_umod_uint64max_prog[] = {
 	/* Load INT64_MIN into r0 */
 	{
 		.code = (BPF_LD | BPF_IMM | EBPF_DW),
@@ -3652,7 +3653,7 @@ REGISTER_FAST_TEST(bpf_load_null_autotest, NOHUGE_OK, ASAN_OK, test_bpf_load_nul
 static int
 test_bpf_exec_wrong_nb_prog_arg(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{ .code = (EBPF_ALU64 | EBPF_MOV | BPF_K), .dst_reg = EBPF_REG_0, .imm = 0 },
 		{ .code = (BPF_JMP | EBPF_EXIT), }
 	};
@@ -3694,7 +3695,7 @@ REGISTER_FAST_TEST(bpf_exec_wrong_nb_prog_arg_autotest, NOHUGE_OK, ASAN_OK,
 static int
 test_bpf_exec_wrong_flags(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{ .code = (EBPF_ALU64 | EBPF_MOV | BPF_K), .dst_reg = EBPF_REG_0, .imm = 0 },
 		{ .code = (BPF_JMP | EBPF_EXIT), }
 	};
@@ -3757,7 +3758,7 @@ typedef uint64_t (*text_xfunc_t)(uint64_t argument);
 static int
 call_from_bpf_test(text_xfunc_t xfunc)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			.code = (BPF_JMP | EBPF_CALL),
 			.imm = 0,  /* xsym #0 */
@@ -4935,7 +4936,7 @@ static const struct xchg_arg xchg_input = {
 
 /* Run program against xchg_input and compare output value with expected. */
 static int
-run_xchg_test(uint32_t nb_ins, const struct ebpf_insn *ins, struct xchg_arg expected)
+run_xchg_test(uint32_t nb_ins, const struct rte_ebpf_insn *ins, struct xchg_arg expected)
 {
 	const struct rte_bpf_prm prm = {
 		.ins = ins,
@@ -5002,7 +5003,7 @@ run_xchg_test(uint32_t nb_ins, const struct ebpf_insn *ins, struct xchg_arg expe
 static int
 test_xadd32(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set r0 to return value. */
 			.code = (BPF_LD | BPF_IMM | EBPF_DW),
@@ -5082,7 +5083,7 @@ REGISTER_FAST_TEST(bpf_xadd32_autotest, NOHUGE_OK, ASAN_OK, test_xadd32);
 static int
 test_xadd64(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set r0 to return value. */
 			.code = (BPF_LD | BPF_IMM | EBPF_DW),
@@ -5148,7 +5149,7 @@ REGISTER_FAST_TEST(bpf_xadd64_autotest, NOHUGE_OK, ASAN_OK, test_xadd64);
 static int
 test_xchg32(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set r2 to return value. */
 			.code = (BPF_LD | BPF_IMM | EBPF_DW),
@@ -5243,7 +5244,7 @@ REGISTER_FAST_TEST(bpf_xchg32_autotest, NOHUGE_OK, ASAN_OK, test_xchg32);
 static int
 test_xchg64(void)
 {
-	static const struct ebpf_insn ins[] = {
+	static const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set r2 to return value. */
 			.code = (BPF_LD | BPF_IMM | EBPF_DW),
@@ -5306,7 +5307,7 @@ REGISTER_FAST_TEST(bpf_xchg64_autotest, NOHUGE_OK, ASAN_OK, test_xchg64);
 static int
 test_atomic_imm(int32_t imm, bool is_valid)
 {
-	const struct ebpf_insn ins[] = {
+	const struct rte_ebpf_insn ins[] = {
 		{
 			/* Set r2 to return value. */
 			.code = (BPF_LD | BPF_IMM | EBPF_DW),
diff --git a/app/test/test_bpf_validate.c b/app/test/test_bpf_validate.c
index 066f1fa156ae..110dec81b017 100644
--- a/app/test/test_bpf_validate.c
+++ b/app/test/test_bpf_validate.c
@@ -2,9 +2,9 @@
  * Copyright(c) 2025 Huawei Technologies Co., Ltd
  */
 
+#include "bpf_def.h"
 #include "test.h"
 
-#include <bpf_def.h>
 #include <rte_bpf.h>
 #include <rte_bpf_validate_debug.h>
 #include <rte_errno.h>
@@ -96,7 +96,7 @@ struct state {
 
 /* Instruction verification parameters. */
 struct verify_instruction_param {
-	struct ebpf_insn tested_instruction;
+	struct rte_ebpf_insn tested_instruction;
 	size_t area_size;
 	/* States just before the tested instruction, just after, or if jumped. */
 	struct state pre;
@@ -264,7 +264,7 @@ format_register(struct rte_bpf_validate_debug *debug, char *buffer, size_t bufsz
 /* Return true the specified conditional jump _may_ occur at current state. */
 static bool
 may_jump(const struct rte_bpf_validate_debug *debug,
-	const struct ebpf_insn *jump, uint64_t imm64)
+	const struct rte_ebpf_insn *jump, uint64_t imm64)
 {
 	const int result = rte_bpf_validate_debug_may_jump(debug, jump, imm64);
 	RTE_VERIFY(result >= 0);
@@ -279,7 +279,7 @@ check_signed_interval(struct rte_bpf_validate_debug *debug,
 	char buffer[VALUE_FORMAT_BUFFER_SIZE];
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | EBPF_JSLT | BPF_K),
 			.dst_reg = reg,
 		}, interval.min),
@@ -288,7 +288,7 @@ check_signed_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'd', interval.min));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | BPF_JEQ | BPF_K),
 			.dst_reg = reg,
 		}, interval.min),
@@ -297,7 +297,7 @@ check_signed_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'd', interval.min));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | BPF_JEQ | BPF_K),
 			.dst_reg = reg,
 		}, interval.max),
@@ -306,7 +306,7 @@ check_signed_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'd', interval.max));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | EBPF_JSGT | BPF_K),
 			.dst_reg = reg,
 		}, interval.max),
@@ -325,7 +325,7 @@ check_unsigned_interval(struct rte_bpf_validate_debug *debug,
 	char buffer[VALUE_FORMAT_BUFFER_SIZE];
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | EBPF_JLT | BPF_K),
 			.dst_reg = reg,
 		}, interval.min),
@@ -334,7 +334,7 @@ check_unsigned_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'x', interval.min));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | BPF_JEQ | BPF_K),
 			.dst_reg = reg,
 		}, interval.min),
@@ -343,7 +343,7 @@ check_unsigned_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'x', interval.min));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | BPF_JEQ | BPF_K),
 			.dst_reg = reg,
 		}, interval.max),
@@ -352,7 +352,7 @@ check_unsigned_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'x', interval.max));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | BPF_JGT | BPF_K),
 			.dst_reg = reg,
 		}, interval.max),
@@ -371,7 +371,7 @@ check_relative_interval(struct rte_bpf_validate_debug *debug,
 	char buffer[VALUE_FORMAT_BUFFER_SIZE];
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | EBPF_JLT | BPF_X),
 			.dst_reg = reg,
 			.src_reg = base_reg,
@@ -381,7 +381,7 @@ check_relative_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'd', interval.min));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | BPF_JEQ | BPF_X),
 			.dst_reg = reg,
 			.src_reg = base_reg,
@@ -391,7 +391,7 @@ check_relative_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'd', interval.min));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | BPF_JEQ | BPF_X),
 			.dst_reg = reg,
 			.src_reg = base_reg,
@@ -401,7 +401,7 @@ check_relative_interval(struct rte_bpf_validate_debug *debug,
 		format_value(buffer, sizeof(buffer), 'd', interval.max));
 
 	TEST_ASSERT_EQUAL(may_jump(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_JMP | BPF_JGT | BPF_X),
 			.dst_reg = reg,
 			.src_reg = base_reg,
@@ -437,7 +437,7 @@ check_pointer_access(struct rte_bpf_validate_debug *debug, uint8_t reg,
 	const bool window_empty = (interval_size >= area_size);
 
 	TEST_ASSERT_EQUAL(rte_bpf_validate_debug_can_access(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_LDX | BPF_B | BPF_MEM),
 			.src_reg = reg
 		}, window_begin - 1),
@@ -446,7 +446,7 @@ check_pointer_access(struct rte_bpf_validate_debug *debug, uint8_t reg,
 		format_value(buffer, sizeof(buffer), 'd', window_begin - 1));
 
 	TEST_ASSERT_EQUAL(rte_bpf_validate_debug_can_access(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_LDX | BPF_B | BPF_MEM),
 			.src_reg = reg
 		}, window_begin),
@@ -456,7 +456,7 @@ check_pointer_access(struct rte_bpf_validate_debug *debug, uint8_t reg,
 		window_empty ? "invalid for empty window" : "valid");
 
 	TEST_ASSERT_EQUAL(rte_bpf_validate_debug_can_access(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_LDX | BPF_B | BPF_MEM),
 			.src_reg = reg
 		}, window_end - 1),
@@ -466,7 +466,7 @@ check_pointer_access(struct rte_bpf_validate_debug *debug, uint8_t reg,
 		window_empty ? "invalid for empty window" : "valid");
 
 	TEST_ASSERT_EQUAL(rte_bpf_validate_debug_can_access(debug,
-		&(struct ebpf_insn){
+		&(struct rte_ebpf_insn){
 			.code = (BPF_LDX | BPF_B | BPF_MEM),
 			.src_reg = reg
 		}, window_end),
@@ -548,23 +548,23 @@ fits_in_imm32(int64_t value)
 
 /* Load constant into the register.  */
 static void
-load_constant(struct ebpf_insn **ins, uint8_t reg, int64_t value)
+load_constant(struct rte_ebpf_insn **ins, uint8_t reg, int64_t value)
 {
 	if (fits_in_imm32(value)) {
-		*(*ins)++ = (struct ebpf_insn){
+		*(*ins)++ = (struct rte_ebpf_insn){
 			.code = (EBPF_ALU64 | EBPF_MOV | BPF_K),
 			.dst_reg = reg,
 			.imm = (int32_t)value,
 		};
 	} else {
 		/* Load imm64 into tmp_reg using wide load, lower bits first... */
-		*(*ins)++ = (struct ebpf_insn){
+		*(*ins)++ = (struct rte_ebpf_insn){
 			.code = (BPF_LD | BPF_IMM | EBPF_DW),
 			.dst_reg = reg,
 			.imm = (uint32_t)value,
 		};
 		/* ... then higher bits. */
-		*(*ins)++ = (struct ebpf_insn){
+		*(*ins)++ = (struct rte_ebpf_insn){
 			.imm = (uint32_t)(value >> 32),
 		};
 	}
@@ -576,12 +576,12 @@ load_constant(struct ebpf_insn **ins, uint8_t reg, int64_t value)
  * Jump offset is not filled and should be patched in by the caller.
  */
 static void
-compare_and_jump(struct ebpf_insn **ins, uint8_t op, uint8_t reg,
+compare_and_jump(struct rte_ebpf_insn **ins, uint8_t op, uint8_t reg,
 	int64_t value, uint8_t tmp_reg)
 {
 	if (fits_in_imm32(value)) {
 		/* Jump on specified condition between reg and immediate. */
-		*(*ins)++ = (struct ebpf_insn){
+		*(*ins)++ = (struct rte_ebpf_insn){
 			.code = (BPF_JMP | op | BPF_K),
 			.dst_reg = reg,
 			.imm = (int32_t)value,
@@ -591,7 +591,7 @@ compare_and_jump(struct ebpf_insn **ins, uint8_t op, uint8_t reg,
 		load_constant(ins, tmp_reg, value);
 
 		/* Jump on specified condition between reg and tmp_reg. */
-		*(*ins)++ = (struct ebpf_insn){
+		*(*ins)++ = (struct rte_ebpf_insn){
 			.code = (BPF_JMP | op | BPF_X),
 			.dst_reg = reg,
 			.src_reg = tmp_reg,
@@ -606,7 +606,7 @@ compare_and_jump(struct ebpf_insn **ins, uint8_t op, uint8_t reg,
  * (Jump offsets are not filled and should be patched in by the caller.)
  */
 static void
-prepare_scalar_domain(struct ebpf_insn **ins, uint8_t reg,
+prepare_scalar_domain(struct rte_ebpf_insn **ins, uint8_t reg,
 	const struct domain *domain, uint8_t base_reg, int *service_cell_count,
 	uint8_t tmp_reg)
 {
@@ -617,7 +617,7 @@ prepare_scalar_domain(struct ebpf_insn **ins, uint8_t reg,
 	}
 
 	/* Load value from memory area into the register. */
-	*(*ins)++ = (struct ebpf_insn){
+	*(*ins)++ = (struct rte_ebpf_insn){
 		.code = (BPF_LDX | EBPF_DW | BPF_MEM),
 		.dst_reg = reg,
 		.src_reg = base_reg,
@@ -648,7 +648,7 @@ prepare_scalar_domain(struct ebpf_insn **ins, uint8_t reg,
  * and then add base register to it to convert it to a pointer, if needed.
  */
 static void
-prepare_domain(struct ebpf_insn **ins, uint8_t reg,
+prepare_domain(struct rte_ebpf_insn **ins, uint8_t reg,
 	const struct domain *domain, uint8_t base_reg, int *service_cell_count,
 	uint8_t tmp_reg)
 {
@@ -656,7 +656,7 @@ prepare_domain(struct ebpf_insn **ins, uint8_t reg,
 
 	if (domain->is_pointer)
 		/* Add base_reg to convert resulting scalar into a pointer. */
-		*(*ins)++ = (struct ebpf_insn){
+		*(*ins)++ = (struct rte_ebpf_insn){
 			.code = (EBPF_ALU64 | BPF_ADD | BPF_X),
 			.dst_reg = reg,
 			.src_reg = base_reg,
@@ -717,9 +717,9 @@ fill_verify_instruction_defaults(struct verify_instruction_param *prm)
  * - Wide instructions are not supported yet.
  */
 static uint32_t
-generate_program(struct verify_instruction_context *ctx, struct ebpf_insn *ins)
+generate_program(struct verify_instruction_context *ctx, struct rte_ebpf_insn *ins)
 {
-	struct ebpf_insn *const ins_buf = ins;
+	struct rte_ebpf_insn *const ins_buf = ins;
 	/* Number of double words used for service purposes. */
 	int service_cell_count = 0;
 
@@ -784,7 +784,7 @@ generate_program(struct verify_instruction_context *ctx, struct ebpf_insn *ins)
 		ctx->jump.program_counter = NO_PROGRAM_COUNTER;
 	else {
 		/* Finish previous branch by issuing exit. */
-		*ins++ = (struct ebpf_insn){ .code = (BPF_JMP | EBPF_EXIT) };
+		*ins++ = (struct rte_ebpf_insn){ .code = (BPF_JMP | EBPF_EXIT) };
 
 		/* Issue jump target instruction (for setting jump breakpoint). */
 		ctx->jump.program_counter = ins - ins_buf;
@@ -798,7 +798,7 @@ generate_program(struct verify_instruction_context *ctx, struct ebpf_insn *ins)
 
 	/* Issue exit instruction. */
 	const uint32_t exit_pc = ins - ins_buf;
-	*ins++ = (struct ebpf_insn){ .code = (BPF_JMP | EBPF_EXIT) };
+	*ins++ = (struct rte_ebpf_insn){ .code = (BPF_JMP | EBPF_EXIT) };
 
 	/* Patch all jumps to point to exit. */
 	for (uint32_t pc = 0; pc != ctx->pre.program_counter; ++pc)
@@ -925,7 +925,7 @@ jump_callback(struct rte_bpf_validate_debug *debug, void *void_ctx)
 }
 
 static int
-debug_validation(struct verify_instruction_context *ctx, const struct ebpf_insn *ins,
+debug_validation(struct verify_instruction_context *ctx, const struct rte_ebpf_insn *ins,
 	uint32_t nb_ins)
 {
 	struct rte_bpf_validate_debug *const debug = rte_bpf_validate_debug_create();
@@ -994,7 +994,7 @@ debug_validation(struct verify_instruction_context *ctx, const struct ebpf_insn
 
 /* Dump whole program to log. */
 static void
-log_program_dump(const struct ebpf_insn *ins, uint32_t nb_ins, uint32_t pre_pc)
+log_program_dump(const struct rte_ebpf_insn *ins, uint32_t nb_ins, uint32_t pre_pc)
 {
 	char hexadecimal[DISASSEMBLY_FORMAT_BUFFER_SIZE];
 	char disassembly[DISASSEMBLY_FORMAT_BUFFER_SIZE];
@@ -1054,7 +1054,7 @@ verify_instruction(struct verify_instruction_param prm)
 	struct verify_instruction_context ctx = {
 		.prm = prm,
 	};
-	struct ebpf_insn ins_buf[64];
+	struct rte_ebpf_insn ins_buf[64];
 
 	const uint32_t nb_ins = generate_program(&ctx, ins_buf);
 	RTE_ASSERT(nb_ins <= RTE_DIM(ins_buf));
diff --git a/lib/bpf/bpf_convert.c b/lib/bpf/bpf_convert.c
index e8074b13d037..37095eea52ce 100644
--- a/lib/bpf/bpf_convert.c
+++ b/lib/bpf/bpf_convert.c
@@ -82,7 +82,7 @@
 /* ALU ops on registers, bpf_add|sub|...: dst_reg += src_reg */
 
 #define EBPF_ALU64_REG(OP, DST, SRC)				\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = EBPF_ALU64 | BPF_OP(OP) | BPF_X,	\
 		.dst_reg = DST,					\
 		.src_reg = SRC,					\
@@ -90,7 +90,7 @@
 		.imm   = 0 })
 
 #define BPF_ALU32_REG(OP, DST, SRC)				\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_ALU | BPF_OP(OP) | BPF_X,		\
 		.dst_reg = DST,					\
 		.src_reg = SRC,					\
@@ -100,7 +100,7 @@
 /* ALU ops on immediates, bpf_add|sub|...: dst_reg += imm32 */
 
 #define BPF_ALU32_IMM(OP, DST, IMM)				\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_ALU | BPF_OP(OP) | BPF_K,		\
 		.dst_reg = DST,					\
 		.src_reg = 0,					\
@@ -110,7 +110,7 @@
 /* Short form of mov, dst_reg = src_reg */
 
 #define BPF_MOV64_REG(DST, SRC)					\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = EBPF_ALU64 | EBPF_MOV | BPF_X,		\
 		.dst_reg = DST,					\
 		.src_reg = SRC,					\
@@ -118,7 +118,7 @@
 		.imm   = 0 })
 
 #define BPF_MOV32_REG(DST, SRC)					\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_ALU | EBPF_MOV | BPF_X,		\
 		.dst_reg = DST,					\
 		.src_reg = SRC,					\
@@ -128,7 +128,7 @@
 /* Short form of mov, dst_reg = imm32 */
 
 #define BPF_MOV32_IMM(DST, IMM)					\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_ALU | EBPF_MOV | BPF_K,		\
 		.dst_reg = DST,					\
 		.src_reg = 0,					\
@@ -138,7 +138,7 @@
 /* Short form of mov based on type, BPF_X: dst_reg = src_reg, BPF_K: dst_reg = imm32 */
 
 #define BPF_MOV32_RAW(TYPE, DST, SRC, IMM)			\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_ALU | EBPF_MOV | BPF_SRC(TYPE),	\
 		.dst_reg = DST,					\
 		.src_reg = SRC,					\
@@ -148,7 +148,7 @@
 /* Direct packet access, R0 = *(uint *) (skb->data + imm32) */
 
 #define BPF_LD_ABS(SIZE, IMM)					\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_LD | BPF_SIZE(SIZE) | BPF_ABS,	\
 		.dst_reg = 0,					\
 		.src_reg = 0,					\
@@ -158,7 +158,7 @@
 /* Memory load, dst_reg = *(uint *) (src_reg + off16) */
 
 #define BPF_LDX_MEM(SIZE, DST, SRC, OFF)			\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_LDX | BPF_SIZE(SIZE) | BPF_MEM,	\
 		.dst_reg = DST,					\
 		.src_reg = SRC,					\
@@ -168,7 +168,7 @@
 /* Memory store, *(uint *) (dst_reg + off16) = src_reg */
 
 #define BPF_STX_MEM(SIZE, DST, SRC, OFF)			\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_STX | BPF_SIZE(SIZE) | BPF_MEM,	\
 		.dst_reg = DST,					\
 		.src_reg = SRC,					\
@@ -178,7 +178,7 @@
 /* Conditional jumps against immediates, if (dst_reg 'op' imm32) goto pc + off16 */
 
 #define BPF_JMP_IMM(OP, DST, IMM, OFF)				\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_JMP | BPF_OP(OP) | BPF_K,		\
 		.dst_reg = DST,					\
 		.src_reg = 0,					\
@@ -188,7 +188,7 @@
 /* Raw code statement block */
 
 #define BPF_RAW_INSN(CODE, DST, SRC, OFF, IMM)			\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = CODE,					\
 		.dst_reg = DST,					\
 		.src_reg = SRC,					\
@@ -198,7 +198,7 @@
 /* Program exit */
 
 #define BPF_EXIT_INSN()						\
-	((struct ebpf_insn) {					\
+	((struct rte_ebpf_insn) {					\
 		.code  = BPF_JMP | EBPF_EXIT,			\
 		.dst_reg = 0,					\
 		.src_reg = 0,					\
@@ -210,7 +210,7 @@
  * If and when DPDK BPF supports them.
  */
 static bool convert_bpf_load(const struct bpf_insn *fp,
-			     struct ebpf_insn **new_insnp __rte_unused)
+			     struct rte_ebpf_insn **new_insnp __rte_unused)
 {
 	switch (fp->k) {
 	case SKF_AD_OFF + SKF_AD_PROTOCOL:
@@ -240,11 +240,11 @@ static bool convert_bpf_load(const struct bpf_insn *fp,
 }
 
 static int bpf_convert_filter(const struct bpf_insn *prog, size_t len,
-			      struct ebpf_insn *new_prog, uint32_t *new_len)
+			      struct rte_ebpf_insn *new_prog, uint32_t *new_len)
 {
 	unsigned int pass = 0;
 	size_t new_flen = 0, target, i;
-	struct ebpf_insn *new_insn;
+	struct rte_ebpf_insn *new_insn;
 	const struct bpf_insn *fp;
 	int *addrs = NULL;
 	uint8_t bpf_src;
@@ -284,8 +284,8 @@ static int bpf_convert_filter(const struct bpf_insn *prog, size_t len,
 	}
 
 	for (i = 0; i < len; fp++, i++) {
-		struct ebpf_insn tmp_insns[6] = { };
-		struct ebpf_insn *insn = tmp_insns;
+		struct rte_ebpf_insn tmp_insns[6] = { };
+		struct rte_ebpf_insn *insn = tmp_insns;
 
 		if (addrs)
 			addrs[i] = new_insn - new_prog;
@@ -526,7 +526,7 @@ struct rte_bpf_prm *
 rte_bpf_convert(const struct bpf_program *prog)
 {
 	struct rte_bpf_prm *prm = NULL;
-	struct ebpf_insn *ebpf = NULL;
+	struct rte_ebpf_insn *ebpf = NULL;
 	uint32_t ebpf_len = 0;
 	int ret;
 
diff --git a/lib/bpf/bpf_def.h b/lib/bpf/bpf_def.h
index ead8d2f215bb..ee13c8c8b758 100644
--- a/lib/bpf/bpf_def.h
+++ b/lib/bpf/bpf_def.h
@@ -129,20 +129,5 @@ enum {
  */
 #define	EBPF_PSEUDO_CALL	EBPF_REG_1
 
-/*
- * eBPF instruction format
- */
-struct ebpf_insn {
-	uint8_t code;
-	uint8_t dst_reg:4;
-	uint8_t src_reg:4;
-	int16_t off;
-	int32_t imm;
-};
-
-/*
- * eBPF allows functions with R1-R5 as arguments.
- */
-#define	EBPF_FUNC_MAX_ARGS	(EBPF_REG_6 - EBPF_REG_1)
 
 #endif /* RTE_BPF_DEF_H_ */
diff --git a/lib/bpf/bpf_dump.c b/lib/bpf/bpf_dump.c
index 4fd67ad5a1df..e2573919079e 100644
--- a/lib/bpf/bpf_dump.c
+++ b/lib/bpf/bpf_dump.c
@@ -9,6 +9,7 @@
 
 #include <eal_export.h>
 #include "rte_bpf.h"
+#include "bpf_def.h"
 
 #define BPF_OP_INDEX(x) (BPF_OP(x) >> 4)
 #define BPF_SIZE_INDEX(x) (BPF_SIZE(x) >> 3)
@@ -48,7 +49,7 @@ static const char *const jump_tbl[16] = {
 
 RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_bpf_insn_is_wide, 26.07)
 bool
-rte_bpf_insn_is_wide(const struct ebpf_insn *ins)
+rte_bpf_insn_is_wide(const struct rte_ebpf_insn *ins)
 {
 	return ins->code == (BPF_LD | BPF_IMM | EBPF_DW);
 }
@@ -56,7 +57,7 @@ rte_bpf_insn_is_wide(const struct ebpf_insn *ins)
 
 /* Format one (possibly wide) eBPF command as hexadecimal in objdump format. */
 static int
-format_hexadecimal(char *buffer, size_t bufsz, const struct ebpf_insn *ins,
+format_hexadecimal(char *buffer, size_t bufsz, const struct rte_ebpf_insn *ins,
 	uint32_t flags)
 {
 	const char *const b = (const char *)ins;
@@ -93,7 +94,7 @@ atomic_op(int32_t imm)
 
 /* Format one (possibly wide) eBPF command as assembler. */
 static int
-format_disassembly(char *buffer, size_t bufsz, const struct ebpf_insn *ins,
+format_disassembly(char *buffer, size_t bufsz, const struct rte_ebpf_insn *ins,
 	uint32_t pc, uint32_t flags)
 {
 	uint8_t cls = BPF_CLASS(ins->code);
@@ -221,7 +222,7 @@ format_disassembly(char *buffer, size_t bufsz, const struct ebpf_insn *ins,
 
 RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_bpf_format, 26.07)
 int
-rte_bpf_format(char *buffer, size_t bufsz, const struct ebpf_insn *ins,
+rte_bpf_format(char *buffer, size_t bufsz, const struct rte_ebpf_insn *ins,
 	uint32_t pc, uint32_t flags)
 {
 	if ((flags & RTE_BPF_FORMAT_FLAG_HEXADECIMAL) != 0)
@@ -231,13 +232,13 @@ rte_bpf_format(char *buffer, size_t bufsz, const struct ebpf_insn *ins,
 }
 
 RTE_EXPORT_SYMBOL(rte_bpf_dump)
-void rte_bpf_dump(FILE *f, const struct ebpf_insn *buf, uint32_t len)
+void rte_bpf_dump(FILE *f, const struct rte_ebpf_insn *buf, uint32_t len)
 {
 	uint32_t i;
 	char buffer[256];
 
 	for (i = 0; i < len; ++i) {
-		const struct ebpf_insn *ins = buf + i;
+		const struct rte_ebpf_insn *ins = buf + i;
 
 		format_disassembly(buffer, sizeof(buffer), ins, i,
 			RTE_BPF_FORMAT_FLAG_DISASSEMBLY	|
diff --git a/lib/bpf/bpf_exec.c b/lib/bpf/bpf_exec.c
index d423ef28f559..2e966aaaeadf 100644
--- a/lib/bpf/bpf_exec.c
+++ b/lib/bpf/bpf_exec.c
@@ -108,7 +108,7 @@
 
 
 static inline void
-bpf_alu_be(uint64_t reg[EBPF_REG_NUM], const struct ebpf_insn *ins)
+bpf_alu_be(uint64_t reg[EBPF_REG_NUM], const struct rte_ebpf_insn *ins)
 {
 	uint64_t *v;
 
@@ -127,7 +127,7 @@ bpf_alu_be(uint64_t reg[EBPF_REG_NUM], const struct ebpf_insn *ins)
 }
 
 static inline void
-bpf_alu_le(uint64_t reg[EBPF_REG_NUM], const struct ebpf_insn *ins)
+bpf_alu_le(uint64_t reg[EBPF_REG_NUM], const struct rte_ebpf_insn *ins)
 {
 	uint64_t *v;
 
@@ -147,7 +147,7 @@ bpf_alu_le(uint64_t reg[EBPF_REG_NUM], const struct ebpf_insn *ins)
 
 static inline const void *
 bpf_ld_mbuf(const struct rte_bpf *bpf, uint64_t reg[EBPF_REG_NUM],
-	const struct ebpf_insn *ins, uint32_t off, uint32_t len)
+	const struct rte_ebpf_insn *ins, uint32_t off, uint32_t len)
 {
 	const struct rte_mbuf *mb;
 	const void *p;
@@ -165,7 +165,7 @@ bpf_ld_mbuf(const struct rte_bpf *bpf, uint64_t reg[EBPF_REG_NUM],
 static inline uint64_t
 bpf_exec(const struct rte_bpf *bpf, uint64_t reg[EBPF_REG_NUM])
 {
-	const struct ebpf_insn *ins;
+	const struct rte_ebpf_insn *ins;
 
 	for (ins = bpf->prm.raw.ins; ; ins++) {
 		switch (ins->code) {
diff --git a/lib/bpf/bpf_impl.h b/lib/bpf/bpf_impl.h
index 14ad772d4beb..76da4d59f50a 100644
--- a/lib/bpf/bpf_impl.h
+++ b/lib/bpf/bpf_impl.h
@@ -7,6 +7,7 @@
 
 #include <rte_bpf.h>
 #include <sys/mman.h>
+#include "bpf_def.h"
 
 #define MAX_BPF_STACK_SIZE	0x200
 
@@ -22,7 +23,7 @@ struct __rte_bpf_load {
 	struct rte_bpf_prm_ex prm;
 
 	/* Conversion from cBPF. */
-	struct ebpf_insn *ins;
+	struct rte_ebpf_insn *ins;
 
 	/* Loading ELF and applying relocations. */
 	int elf_fd;  /* ELF fd, must be negative (not zero) by default. */
diff --git a/lib/bpf/bpf_jit_arm64.c b/lib/bpf/bpf_jit_arm64.c
index ba7ae4d680c5..7f3ea1b75956 100644
--- a/lib/bpf/bpf_jit_arm64.c
+++ b/lib/bpf/bpf_jit_arm64.c
@@ -1126,7 +1126,7 @@ emit_branch(struct a64_jit_ctx *ctx, uint8_t op, uint32_t i, int16_t off)
 static void
 check_program_has_call(struct a64_jit_ctx *ctx, struct rte_bpf *bpf)
 {
-	const struct ebpf_insn *ins;
+	const struct rte_ebpf_insn *ins;
 	uint8_t op;
 	uint32_t i;
 
@@ -1150,7 +1150,7 @@ static int
 emit(struct a64_jit_ctx *ctx, struct rte_bpf *bpf)
 {
 	uint8_t op, dst, src, tmp1, tmp2, tmp3;
-	const struct ebpf_insn *ins;
+	const struct rte_ebpf_insn *ins;
 	uint64_t u64;
 	int16_t off;
 	int32_t imm;
diff --git a/lib/bpf/bpf_jit_x86.c b/lib/bpf/bpf_jit_x86.c
index 54eb279643b9..37da3bc6a53e 100644
--- a/lib/bpf/bpf_jit_x86.c
+++ b/lib/bpf/bpf_jit_x86.c
@@ -1315,7 +1315,7 @@ static int
 emit(struct bpf_jit_state *st, const struct rte_bpf *bpf)
 {
 	uint32_t i, dr, op, sr;
-	const struct ebpf_insn *ins;
+	const struct rte_ebpf_insn *ins;
 
 	/* reset state fields */
 	st->sz = 0;
diff --git a/lib/bpf/bpf_load.c b/lib/bpf/bpf_load.c
index 36f6556fd5fe..cb088d333ba0 100644
--- a/lib/bpf/bpf_load.c
+++ b/lib/bpf/bpf_load.c
@@ -61,7 +61,7 @@ bpf_check_xsym(const struct rte_bpf_xsym *xsym)
 			return -EINVAL;
 	} else if (xsym->type == RTE_BPF_XTYPE_FUNC) {
 
-		if (xsym->func.nb_args > EBPF_FUNC_MAX_ARGS)
+		if (xsym->func.nb_args > RTE_EBPF_FUNC_MAX_ARGS)
 			return -EINVAL;
 
 		/* check function arguments */
diff --git a/lib/bpf/bpf_load_elf.c b/lib/bpf/bpf_load_elf.c
index cb3392363108..329ae25cb173 100644
--- a/lib/bpf/bpf_load_elf.c
+++ b/lib/bpf/bpf_load_elf.c
@@ -58,7 +58,7 @@ bpf_find_xsym(const char *sn, enum rte_bpf_xtype type,
  * symbol *sn*
  */
 static int
-resolve_xsym(const char *sn, size_t ofs, struct ebpf_insn *ins, size_t ins_sz,
+resolve_xsym(const char *sn, size_t ofs, struct rte_ebpf_insn *ins, size_t ins_sz,
 	const struct rte_bpf_prm_ex *prm)
 {
 	uint32_t idx, fidx;
@@ -169,7 +169,7 @@ find_elf_code(Elf *elf, const char *section, Elf_Data **psd, size_t *pidx)
 
 	sd = elf_getdata(sc, NULL);
 	if (sd == NULL || sd->d_size == 0 ||
-			sd->d_size % sizeof(struct ebpf_insn) != 0) {
+			sd->d_size % sizeof(struct rte_ebpf_insn) != 0) {
 		rc = elf_errno();
 		RTE_BPF_LOG_LINE(ERR, "%s(%p, %s) error code: %d(%s)",
 			__func__, elf, section, rc, elf_errmsg(rc));
@@ -186,7 +186,7 @@ find_elf_code(Elf *elf, const char *section, Elf_Data **psd, size_t *pidx)
  */
 static int
 process_reloc(Elf *elf, size_t sym_idx, Elf64_Rel *re, size_t re_sz,
-	struct ebpf_insn *ins, size_t ins_sz, const struct rte_bpf_prm_ex *prm)
+	struct rte_ebpf_insn *ins, size_t ins_sz, const struct rte_bpf_prm_ex *prm)
 {
 	int32_t rc;
 	uint32_t i, n;
@@ -235,7 +235,7 @@ process_reloc(Elf *elf, size_t sym_idx, Elf64_Rel *re, size_t re_sz,
  * and update bpf code.
  */
 static int
-elf_reloc_code(Elf *elf, struct ebpf_insn *ins, size_t ins_sz, size_t sidx,
+elf_reloc_code(Elf *elf, struct rte_ebpf_insn *ins, size_t ins_sz, size_t sidx,
 	const struct rte_bpf_prm_ex *prm)
 {
 	Elf64_Rel *re;
@@ -355,7 +355,7 @@ __rte_bpf_load_elf_code(struct __rte_bpf_load *load)
 
 	prm->origin = RTE_BPF_ORIGIN_RAW;
 	prm->raw.ins = sd->d_buf;
-	prm->raw.nb_ins = sd->d_size / sizeof(struct ebpf_insn);
+	prm->raw.nb_ins = sd->d_size / sizeof(struct rte_ebpf_insn);
 
 	rc = elf_reloc_code(load->elf, sd->d_buf, sd->d_size, sidx, prm);
 	if (rc < 0)
diff --git a/lib/bpf/bpf_validate.c b/lib/bpf/bpf_validate.c
index f9960088a285..31226c8f1f53 100644
--- a/lib/bpf/bpf_validate.c
+++ b/lib/bpf/bpf_validate.c
@@ -117,8 +117,8 @@ struct bpf_ins_check {
 		uint32_t min;
 		uint32_t max;
 	} imm;
-	const char * (*check)(const struct ebpf_insn *);
-	const char * (*eval)(struct bpf_verifier *, const struct ebpf_insn *);
+	const char * (*check)(const struct rte_ebpf_insn *ins);
+	const char * (*eval)(struct bpf_verifier *bpf, const struct rte_ebpf_insn *ins);
 };
 
 #define	ALL_REGS	RTE_LEN2MASK(EBPF_REG_NUM, uint16_t)
@@ -171,7 +171,7 @@ __rte_bpf_validate_state_is_valid(const struct bpf_verifier *verifier)
 
 int
 __rte_bpf_validate_can_access(const struct bpf_verifier *verifier,
-	const struct ebpf_insn *access, uint64_t off64)
+	const struct rte_ebpf_insn *access, uint64_t off64)
 {
 	const struct bpf_eval_state *const st = verifier->evst;
 	const struct bpf_reg_val *rv;
@@ -308,7 +308,7 @@ may_jump_code_complement(uint8_t code)
 
 int
 __rte_bpf_validate_may_jump(const struct bpf_verifier *verifier,
-	const struct ebpf_insn *jump, uint64_t imm64)
+	const struct rte_ebpf_insn *jump, uint64_t imm64)
 {
 	const struct bpf_eval_state *const st = verifier->evst;
 	const struct bpf_reg_val *rd, *rs;
@@ -543,7 +543,7 @@ __rte_bpf_validate_get_frame_size(const struct bpf_verifier *verifier)
  */
 
 static const char *
-check_alu_bele(const struct ebpf_insn *ins)
+check_alu_bele(const struct rte_ebpf_insn *ins)
 {
 	if (ins->imm != 16 && ins->imm != 32 && ins->imm != 64)
 		return "invalid imm field";
@@ -551,7 +551,7 @@ check_alu_bele(const struct ebpf_insn *ins)
 }
 
 static const char *
-eval_exit(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_exit(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	RTE_SET_USED(ins);
 	if (bvf->evst->rv[EBPF_REG_0].v.type == RTE_BPF_ARG_UNDEF)
@@ -611,7 +611,7 @@ eval_fill_imm(struct bpf_reg_val *rv, uint64_t mask, int32_t imm)
 }
 
 static const char *
-eval_ld_imm64(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_ld_imm64(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	uint32_t i;
 	uint64_t val;
@@ -1051,7 +1051,7 @@ eval_neg(struct bpf_reg_val *rd, size_t opsz, uint64_t msk)
 }
 
 static const char *
-eval_ld_mbuf(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_ld_mbuf(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	uint32_t i, mode;
 	struct bpf_reg_val *rv, ri, rs;
@@ -1100,7 +1100,7 @@ eval_defined(const struct bpf_reg_val *dst, const struct bpf_reg_val *src)
 }
 
 static const char *
-eval_alu(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_alu(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	uint64_t msk;
 	uint32_t op;
@@ -1172,7 +1172,7 @@ eval_alu(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
 }
 
 static const char *
-eval_bele(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_bele(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	uint64_t msk;
 	struct bpf_eval_state *st;
@@ -1263,7 +1263,7 @@ eval_max_load(struct bpf_reg_val *rv, uint64_t mask)
 
 
 static const char *
-eval_load(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_load(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	uint32_t opsz;
 	uint64_t msk;
@@ -1349,7 +1349,7 @@ eval_mbuf_store(const struct bpf_reg_val *rv, uint32_t opsz)
 }
 
 static const char *
-eval_store(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_store(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	uint32_t opsz;
 	uint64_t msk;
@@ -1407,7 +1407,7 @@ eval_store(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
 }
 
 static const char *
-eval_ja(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_ja(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	RTE_SET_USED(bvf);
 	RTE_SET_USED(ins);
@@ -1459,7 +1459,7 @@ eval_func_arg(struct bpf_verifier *bvf, const struct rte_bpf_arg *arg,
 }
 
 static const char *
-eval_call(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_call(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	uint32_t i, idx;
 	struct bpf_reg_val *rv;
@@ -1599,7 +1599,7 @@ eval_jslt_jsge(struct bpf_reg_val *trd, struct bpf_reg_val *trs,
 }
 
 static const char *
-eval_jcc(struct bpf_verifier *bvf, const struct ebpf_insn *ins)
+eval_jcc(struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins)
 {
 	uint32_t op;
 	const char *err;
@@ -2266,7 +2266,7 @@ static const struct bpf_ins_check ins_chk[UINT8_MAX + 1] = {
  * and its fields don't violate particular instruction type restrictions.
  */
 static const char *
-check_syntax(const struct ebpf_insn *ins)
+check_syntax(const struct rte_ebpf_insn *ins)
 {
 
 	uint8_t op;
@@ -2453,7 +2453,7 @@ log_unreachable(const struct bpf_verifier *bvf)
 {
 	uint32_t i;
 	struct inst_node *node;
-	const struct ebpf_insn *ins;
+	const struct rte_ebpf_insn *ins;
 
 	for (i = 0; i != bvf->prm->raw.nb_ins; i++) {
 
@@ -2503,7 +2503,7 @@ validate(struct bpf_verifier *bvf)
 	int32_t rc;
 	uint32_t i;
 	struct inst_node *node;
-	const struct ebpf_insn *ins;
+	const struct rte_ebpf_insn *ins;
 	const char *err;
 
 	rc = 0;
@@ -2779,7 +2779,7 @@ restore_cur_eval_state(struct bpf_verifier *bvf, struct inst_node *node)
 }
 
 static void
-log_dbg_eval_state(const struct bpf_verifier *bvf, const struct ebpf_insn *ins,
+log_dbg_eval_state(const struct bpf_verifier *bvf, const struct rte_ebpf_insn *ins,
 	uint32_t pc)
 {
 	const struct bpf_eval_state *st;
@@ -2916,7 +2916,7 @@ evaluate(struct bpf_verifier *bvf)
 {
 	uint32_t idx, op;
 	const char *err;
-	const struct ebpf_insn *ins;
+	const struct rte_ebpf_insn *ins;
 	struct inst_node *next, *node;
 	int prev_nb_edge;  /* branching number of the previous instruction */
 	int rc, debug_rc;
@@ -3116,10 +3116,10 @@ __rte_bpf_validate(const struct rte_bpf_prm_ex *prm, uint32_t *stack_sz)
 	int32_t rc;
 	struct bpf_verifier bvf;
 
-	if (prm->nb_prog_arg > EBPF_FUNC_MAX_ARGS) {
+	if (prm->nb_prog_arg > RTE_EBPF_FUNC_MAX_ARGS) {
 		RTE_BPF_LOG_FUNC_LINE(ERR,
 			"support up to %u arguments, found %u",
-			EBPF_FUNC_MAX_ARGS, prm->nb_prog_arg);
+			RTE_EBPF_FUNC_MAX_ARGS, prm->nb_prog_arg);
 		return -ENOTSUP;
 	}
 
diff --git a/lib/bpf/bpf_validate.h b/lib/bpf/bpf_validate.h
index 9912f4fd5c4f..a8c3c24c1144 100644
--- a/lib/bpf/bpf_validate.h
+++ b/lib/bpf/bpf_validate.h
@@ -32,12 +32,12 @@ __rte_bpf_validate_state_is_valid(const struct bpf_verifier *verifier);
  */
 int
 __rte_bpf_validate_can_access(const struct bpf_verifier *verifier,
-	const struct ebpf_insn *access, uint64_t off64);
+	const struct rte_ebpf_insn *access, uint64_t off64);
 
 /* Get possible truth values of the specified jump condition. */
 int
 __rte_bpf_validate_may_jump(const struct bpf_verifier *verifier,
-	const struct ebpf_insn *jump, uint64_t imm64);
+	const struct rte_ebpf_insn *jump, uint64_t imm64);
 
 /* Format known information about the register for the user. */
 int
diff --git a/lib/bpf/bpf_validate_debug.c b/lib/bpf/bpf_validate_debug.c
index 5d18804a74bc..a34b2d2ec42a 100644
--- a/lib/bpf/bpf_validate_debug.c
+++ b/lib/bpf/bpf_validate_debug.c
@@ -319,7 +319,7 @@ rte_bpf_validate_debug_get_bpf_param(const struct rte_bpf_validate_debug *debug)
 RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_bpf_validate_debug_get_ins, 26.07)
 int
 rte_bpf_validate_debug_get_ins(const struct rte_bpf_validate_debug *debug,
-	const struct ebpf_insn **ins, uint32_t *nb_ins)
+	const struct rte_ebpf_insn **ins, uint32_t *nb_ins)
 {
 	if (debug == NULL)
 		return -EINVAL;
@@ -378,7 +378,7 @@ rte_bpf_validate_debug_get_validation_result(const struct rte_bpf_validate_debug
 RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_bpf_validate_debug_can_access, 26.07)
 int
 rte_bpf_validate_debug_can_access(const struct rte_bpf_validate_debug *debug,
-	const struct ebpf_insn *access, uint64_t off64)
+	const struct rte_ebpf_insn *access, uint64_t off64)
 {
 	if (debug == NULL || access == NULL)
 		return -EINVAL;
@@ -392,7 +392,7 @@ rte_bpf_validate_debug_can_access(const struct rte_bpf_validate_debug *debug,
 RTE_EXPORT_EXPERIMENTAL_SYMBOL(rte_bpf_validate_debug_may_jump, 26.07)
 int
 rte_bpf_validate_debug_may_jump(const struct rte_bpf_validate_debug *debug,
-	const struct ebpf_insn *jump, uint64_t imm64)
+	const struct rte_ebpf_insn *jump, uint64_t imm64)
 {
 	if (debug == NULL || jump == NULL)
 		return -EINVAL;
diff --git a/lib/bpf/meson.build b/lib/bpf/meson.build
index b74a5c232107..80a39a2c55d7 100644
--- a/lib/bpf/meson.build
+++ b/lib/bpf/meson.build
@@ -35,8 +35,8 @@ elif dpdk_conf.has('RTE_ARCH_ARM64')
 endif
 
 headers = files(
-        'bpf_def.h',
         'rte_bpf.h',
+
         'rte_bpf_ethdev.h',
         'rte_bpf_validate_debug.h',
 )
diff --git a/lib/bpf/rte_bpf.h b/lib/bpf/rte_bpf.h
index 052849945c45..2a1f52bd5c9b 100644
--- a/lib/bpf/rte_bpf.h
+++ b/lib/bpf/rte_bpf.h
@@ -19,12 +19,27 @@
 #include <rte_common.h>
 #include <rte_mbuf.h>
 #include <rte_malloc.h>
-#include <bpf_def.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+/*
+ * eBPF instruction format
+ */
+struct rte_ebpf_insn {
+	uint8_t code;
+	uint8_t dst_reg:4;
+	uint8_t src_reg:4;
+	int16_t off;
+	int32_t imm;
+};
+
+/*
+ * eBPF allows functions with up to 5 arguments.
+ */
+#define	RTE_EBPF_FUNC_MAX_ARGS	5
+
 #define RTE_BPF_EXEC_FLAG_JIT	RTE_BIT64(0)	/**< use JIT-compiled version */
 
 /** Mask with all supported `RTE_BPF_EXEC_FLAG_*` flags set. */
@@ -96,7 +111,7 @@ struct rte_bpf_xsym {
 			uint64_t (*val)(uint64_t, uint64_t, uint64_t,
 				uint64_t, uint64_t);
 			uint32_t nb_args;
-			struct rte_bpf_arg args[EBPF_FUNC_MAX_ARGS];
+			struct rte_bpf_arg args[RTE_EBPF_FUNC_MAX_ARGS];
 			/**< Function arguments descriptions. */
 			struct rte_bpf_arg ret; /**< function return value. */
 		} func;
@@ -135,7 +150,7 @@ struct rte_bpf_prm_ex {
 	/** program origin parameters, member in use depends on origin */
 	union {
 		struct {
-			const struct ebpf_insn *ins;  /**< eBPF instructions */
+			const struct rte_ebpf_insn *ins;  /**< eBPF instructions */
 			uint32_t nb_ins;  /**< number of instructions in ins */
 		} raw;
 		struct {
@@ -157,7 +172,7 @@ struct rte_bpf_prm_ex {
 	/**< array of external symbols that eBPF code is allowed to reference */
 	uint32_t nb_xsym;  /**< number of elements in xsym */
 
-	struct rte_bpf_arg prog_arg[EBPF_FUNC_MAX_ARGS];  /**< program arguments */
+	struct rte_bpf_arg prog_arg[RTE_EBPF_FUNC_MAX_ARGS];  /**< program arguments */
 	uint32_t nb_prog_arg;  /**< program argument count */
 
 	/* Validate debug instance. */
@@ -168,7 +183,7 @@ struct rte_bpf_prm_ex {
  * Input parameters for loading eBPF code, legacy version.
  */
 struct rte_bpf_prm {
-	const struct ebpf_insn *ins; /**< array of eBPF instructions */
+	const struct rte_ebpf_insn *ins; /**< array of eBPF instructions */
 	uint32_t nb_ins;            /**< number of instructions in ins */
 	const struct rte_bpf_xsym *xsym;
 	/**< array of external symbols that eBPF code is allowed to reference */
@@ -217,7 +232,7 @@ struct rte_bpf_jit_ex {
 
 /* Tuple of eBPF program arguments. */
 struct rte_bpf_prog_ctx {
-	union rte_bpf_func_arg arg[EBPF_FUNC_MAX_ARGS];
+	union rte_bpf_func_arg arg[RTE_EBPF_FUNC_MAX_ARGS];
 };
 
 struct rte_bpf;
@@ -420,7 +435,7 @@ rte_bpf_get_jit_ex(const struct rte_bpf *bpf, struct rte_bpf_jit_ex *jit);
  */
 __rte_experimental
 bool
-rte_bpf_insn_is_wide(const struct ebpf_insn *ins);
+rte_bpf_insn_is_wide(const struct rte_ebpf_insn *ins);
 
 /**
  * Print eBPF instruction into a buffer.
@@ -443,7 +458,7 @@ rte_bpf_insn_is_wide(const struct ebpf_insn *ins);
  */
 __rte_experimental
 int
-rte_bpf_format(char *buffer, size_t bufsz, const struct ebpf_insn *ins,
+rte_bpf_format(char *buffer, size_t bufsz, const struct rte_ebpf_insn *ins,
 	uint32_t pc, uint32_t flags);
 
 /**
@@ -457,7 +472,7 @@ rte_bpf_format(char *buffer, size_t bufsz, const struct ebpf_insn *ins,
  *   Number of BPF instructions to dump.
  */
 void
-rte_bpf_dump(FILE *f, const struct ebpf_insn *buf, uint32_t len);
+rte_bpf_dump(FILE *f, const struct rte_ebpf_insn *buf, uint32_t len);
 
 struct bpf_program;
 
diff --git a/lib/bpf/rte_bpf_validate_debug.h b/lib/bpf/rte_bpf_validate_debug.h
index f30fa926f10a..d91a84745f40 100644
--- a/lib/bpf/rte_bpf_validate_debug.h
+++ b/lib/bpf/rte_bpf_validate_debug.h
@@ -13,7 +13,7 @@
  * Can be used for debugging BPF validation problems as well as in tests.
  */
 
-#include <bpf_def.h>
+#include <rte_bpf.h>
 #include <rte_compat.h>
 
 #include <stdbool.h>
@@ -181,7 +181,7 @@ rte_bpf_validate_debug_get_bpf_param(const struct rte_bpf_validate_debug *debug)
 __rte_experimental
 int
 rte_bpf_validate_debug_get_ins(const struct rte_bpf_validate_debug *debug,
-	const struct ebpf_insn **ins, uint32_t *nb_ins);
+	const struct rte_ebpf_insn **ins, uint32_t *nb_ins);
 
 /**
  * Get last triggered breakpoint or catchpoint.
@@ -249,7 +249,7 @@ rte_bpf_validate_debug_get_validation_result(const struct rte_bpf_validate_debug
 __rte_experimental
 int
 rte_bpf_validate_debug_can_access(const struct rte_bpf_validate_debug *debug,
-	const struct ebpf_insn *access, uint64_t off64);
+	const struct rte_ebpf_insn *access, uint64_t off64);
 
 /**
  * Get possible truth values of the specified jump condition.
@@ -269,7 +269,7 @@ rte_bpf_validate_debug_can_access(const struct rte_bpf_validate_debug *debug,
 __rte_experimental
 int
 rte_bpf_validate_debug_may_jump(const struct rte_bpf_validate_debug *debug,
-	const struct ebpf_insn *jump, uint64_t imm64);
+	const struct rte_ebpf_insn *jump, uint64_t imm64);
 
 /**
  * Format information about specified register for the user.
-- 
2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.