bpf: Simplify definition of BPF_FIB_LOOKUP related flags
Subsystems (3)
PATCH 1/1 bpf: Simplify definition of BPF_FIB_LOOKUP related flags
Previously, the BPF_FIB_LOOKUP_{DIRECT,OUTPUT} flags were defined with the help of BIT macro. This had the following issues:
- In order to user any of the flags, a user was required to depend on <linux/bits.h>.
- No other flag in bpf.h uses the macro, so it seems that an unwritten convention is to use (1 << (nr)) to define BPF-related flags.
--- include/uapi/linux/bpf.h | 4 ++-- tools/include/uapi/linux/bpf.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-)
include/uapi/linux/bpf.h +2 -2
@@ -3376,8 +3376,8 @@ struct bpf_raw_tracepoint_args {/* DIRECT: Skip the FIB rules and go to FIB table associated with device * OUTPUT: Do lookup from egress perspective; default is ingress */ -#define BPF_FIB_LOOKUP_DIRECT BIT(0) -#define BPF_FIB_LOOKUP_OUTPUT BIT(1) +#define BPF_FIB_LOOKUP_DIRECT (1U << 0) +#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)enum {BPF_FIB_LKUP_RET_SUCCESS ,/* lookup successful */
tools/include/uapi/linux/bpf.h +2 -2
@@ -3376,8 +3376,8 @@ struct bpf_raw_tracepoint_args {/* DIRECT: Skip the FIB rules and go to FIB table associated with device * OUTPUT: Do lookup from egress perspective; default is ingress */ -#define BPF_FIB_LOOKUP_DIRECT BIT(0) -#define BPF_FIB_LOOKUP_OUTPUT BIT(1) +#define BPF_FIB_LOOKUP_DIRECT (1U << 0) +#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)enum {BPF_FIB_LKUP_RET_SUCCESS ,/* lookup successful */
Signature · 1 line
2.21.0
Quoted 9 lines · Martynas Pumputis
Previously, the BPF_FIB_LOOKUP_{DIRECT,OUTPUT} flags were defined with the help of BIT macro. This had the following issues:
- In order to user any of the flags, a user was required to depend on <
linux/bits.h>.
- No other flag inbpf.huses the macro, so it seems that an unwritten convention is to use (1 << (nr)) to define BPF-related flags.
Quoted 5 lines
Signed-off-by Martynas Pumputis <[email protected]>--- include/uapi/linux/bpf.h | 4 ++-- tools/include/uapi/linux/bpf.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-)
Makes sense to me.
Please split it into two patches.
One for kernel uapi and one for user space.
Since user bits are synced to github/libbpf independently.
Quoted 33 lines
include/uapi/linux/bpf.h +2
-2@@ -3376,8 +3376,8 @@ struct bpf_raw_tracepoint_args {/* DIRECT: Skip the FIB rules and go to FIB table associated with device * OUTPUT: Do lookup from egress perspective; default is ingress */ -#define BPF_FIB_LOOKUP_DIRECT BIT(0) -#define BPF_FIB_LOOKUP_OUTPUT BIT(1) +#define BPF_FIB_LOOKUP_DIRECT (1U << 0) +#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)enum {BPF_FIB_LKUP_RET_SUCCESS ,/* lookup successful */ tools/include/uapi/linux/bpf.h +2
-3@@ -3376,8 +3376,8 @@ struct bpf_raw_tracepoint_args {/* DIRECT: Skip the FIB rules and go to FIB table associated with device * OUTPUT: Do lookup from egress perspective; default is ingress */ -#define BPF_FIB_LOOKUP_DIRECT BIT(0) -#define BPF_FIB_LOOKUP_OUTPUT BIT(1) +#define BPF_FIB_LOOKUP_DIRECT (1U << 0) +#define BPF_FIB_LOOKUP_OUTPUT (1U << 1)enum {BPF_FIB_LKUP_RET_SUCCESS ,/* lookup successful */ --2.21.0