Message ID | 20210603101425.560384-4-me@ubique.spb.ru (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | BPF |
Headers | show |
Series | bpfilter | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for bpf-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | success | CCed 11 of 11 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | warning | CHECK: Please don't use multiple blank lines WARNING: added, moved or deleted file(s), does MAINTAINERS need updating? |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
On 6/3/21 3:14 AM, Dmitrii Banshchikov wrote: > The header will be used in bpfilter usermode helper test infrastructure. > > Signed-off-by: Dmitrii Banshchikov <me@ubique.spb.ru> > --- > tools/include/uapi/linux/bpfilter.h | 179 ++++++++++++++++++++++++++++ > 1 file changed, 179 insertions(+) > create mode 100644 tools/include/uapi/linux/bpfilter.h > > diff --git a/tools/include/uapi/linux/bpfilter.h b/tools/include/uapi/linux/bpfilter.h > new file mode 100644 > index 000000000000..8b49d81f81c8 > --- /dev/null > +++ b/tools/include/uapi/linux/bpfilter.h > @@ -0,0 +1,179 @@ > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > +#ifndef _UAPI_LINUX_BPFILTER_H > +#define _UAPI_LINUX_BPFILTER_H > + > +#include <linux/if.h> > +#include <linux/const.h> > + > +#define BPFILTER_FUNCTION_MAXNAMELEN 30 > +#define BPFILTER_EXTENSION_MAXNAMELEN 29 > + > +#define BPFILTER_STANDARD_TARGET "" > +#define BPFILTER_ERROR_TARGET "ERROR" > + > + > +#define BPFILTER_ALIGN(__X) __ALIGN_KERNEL(__X, __alignof__(__u64)) The difference between include/uapi/linux/bpfilter.h and tools/include/uapi/linux/bpfilter.h is the above "define". Can we put the above define in include/uapi/linux/bpfilter.h as well so in the commit message we can say tools/include/uapi/linux/bpfilter.h is a copy of include/uapi/linux/bpfilter.h? > + > +enum { > + BPFILTER_IPT_SO_SET_REPLACE = 64, > + BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65, > + BPFILTER_IPT_SET_MAX, > +}; > + [...]
On Tue, Jun 08, 2021 at 09:20:12AM -0700, Yonghong Song wrote: > > > On 6/3/21 3:14 AM, Dmitrii Banshchikov wrote: > > The header will be used in bpfilter usermode helper test infrastructure. > > > > Signed-off-by: Dmitrii Banshchikov <me@ubique.spb.ru> > > --- > > tools/include/uapi/linux/bpfilter.h | 179 ++++++++++++++++++++++++++++ > > 1 file changed, 179 insertions(+) > > create mode 100644 tools/include/uapi/linux/bpfilter.h > > > > diff --git a/tools/include/uapi/linux/bpfilter.h b/tools/include/uapi/linux/bpfilter.h > > new file mode 100644 > > index 000000000000..8b49d81f81c8 > > --- /dev/null > > +++ b/tools/include/uapi/linux/bpfilter.h > > @@ -0,0 +1,179 @@ > > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > > +#ifndef _UAPI_LINUX_BPFILTER_H > > +#define _UAPI_LINUX_BPFILTER_H > > + > > +#include <linux/if.h> > > +#include <linux/const.h> > > + > > +#define BPFILTER_FUNCTION_MAXNAMELEN 30 > > +#define BPFILTER_EXTENSION_MAXNAMELEN 29 > > + > > +#define BPFILTER_STANDARD_TARGET "" > > +#define BPFILTER_ERROR_TARGET "ERROR" > > + > > + > > +#define BPFILTER_ALIGN(__X) __ALIGN_KERNEL(__X, __alignof__(__u64)) > > The difference between include/uapi/linux/bpfilter.h and > tools/include/uapi/linux/bpfilter.h is the above "define". > Can we put the above define in include/uapi/linux/bpfilter.h as well > so in the commit message we can say tools/include/uapi/linux/bpfilter.h > is a copy of include/uapi/linux/bpfilter.h? Actually it seems that it is possible to drop this define as XT_ALIGN is used now instead of BPFILTER_ALIGN. I will remove the define and reword the message. Thank you. > > > + > > +enum { > > + BPFILTER_IPT_SO_SET_REPLACE = 64, > > + BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65, > > + BPFILTER_IPT_SET_MAX, > > +}; > > + > [...]
diff --git a/tools/include/uapi/linux/bpfilter.h b/tools/include/uapi/linux/bpfilter.h new file mode 100644 index 000000000000..8b49d81f81c8 --- /dev/null +++ b/tools/include/uapi/linux/bpfilter.h @@ -0,0 +1,179 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _UAPI_LINUX_BPFILTER_H +#define _UAPI_LINUX_BPFILTER_H + +#include <linux/if.h> +#include <linux/const.h> + +#define BPFILTER_FUNCTION_MAXNAMELEN 30 +#define BPFILTER_EXTENSION_MAXNAMELEN 29 + +#define BPFILTER_STANDARD_TARGET "" +#define BPFILTER_ERROR_TARGET "ERROR" + + +#define BPFILTER_ALIGN(__X) __ALIGN_KERNEL(__X, __alignof__(__u64)) + +enum { + BPFILTER_IPT_SO_SET_REPLACE = 64, + BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65, + BPFILTER_IPT_SET_MAX, +}; + +enum { + BPFILTER_IPT_SO_GET_INFO = 64, + BPFILTER_IPT_SO_GET_ENTRIES = 65, + BPFILTER_IPT_SO_GET_REVISION_MATCH = 66, + BPFILTER_IPT_SO_GET_REVISION_TARGET = 67, + BPFILTER_IPT_GET_MAX, +}; + +enum { + BPFILTER_XT_TABLE_MAXNAMELEN = 32, +}; + +enum { + BPFILTER_NF_DROP = 0, + BPFILTER_NF_ACCEPT = 1, + BPFILTER_NF_STOLEN = 2, + BPFILTER_NF_QUEUE = 3, + BPFILTER_NF_REPEAT = 4, + BPFILTER_NF_STOP = 5, + BPFILTER_NF_MAX_VERDICT = BPFILTER_NF_STOP, + BPFILTER_RETURN = (-BPFILTER_NF_REPEAT - 1), +}; + +enum { + BPFILTER_INET_HOOK_PRE_ROUTING = 0, + BPFILTER_INET_HOOK_LOCAL_IN = 1, + BPFILTER_INET_HOOK_FORWARD = 2, + BPFILTER_INET_HOOK_LOCAL_OUT = 3, + BPFILTER_INET_HOOK_POST_ROUTING = 4, + BPFILTER_INET_HOOK_MAX, +}; + +enum { + BPFILTER_IPT_F_MASK = 0x03, + BPFILTER_IPT_INV_MASK = 0x7f +}; + +struct bpfilter_ipt_match { + union { + struct { + __u16 match_size; + char name[BPFILTER_EXTENSION_MAXNAMELEN]; + __u8 revision; + } user; + struct { + __u16 match_size; + void *match; + } kernel; + __u16 match_size; + } u; + unsigned char data[0]; +}; + +struct bpfilter_ipt_target { + union { + struct { + __u16 target_size; + char name[BPFILTER_EXTENSION_MAXNAMELEN]; + __u8 revision; + } user; + struct { + __u16 target_size; + void *target; + } kernel; + __u16 target_size; + } u; + unsigned char data[0]; +}; + +struct bpfilter_ipt_standard_target { + struct bpfilter_ipt_target target; + int verdict; +}; + +struct bpfilter_ipt_error_target { + struct bpfilter_ipt_target target; + char error_name[BPFILTER_FUNCTION_MAXNAMELEN]; +}; + +struct bpfilter_ipt_get_info { + char name[BPFILTER_XT_TABLE_MAXNAMELEN]; + __u32 valid_hooks; + __u32 hook_entry[BPFILTER_INET_HOOK_MAX]; + __u32 underflow[BPFILTER_INET_HOOK_MAX]; + __u32 num_entries; + __u32 size; +}; + +struct bpfilter_ipt_counters { + __u64 packet_cnt; + __u64 byte_cnt; +}; + +struct bpfilter_ipt_counters_info { + char name[BPFILTER_XT_TABLE_MAXNAMELEN]; + __u32 num_counters; + struct bpfilter_ipt_counters counters[0]; +}; + +struct bpfilter_ipt_get_revision { + char name[BPFILTER_EXTENSION_MAXNAMELEN]; + __u8 revision; +}; + +struct bpfilter_ipt_ip { + __u32 src; + __u32 dst; + __u32 src_mask; + __u32 dst_mask; + char in_iface[IFNAMSIZ]; + char out_iface[IFNAMSIZ]; + __u8 in_iface_mask[IFNAMSIZ]; + __u8 out_iface_mask[IFNAMSIZ]; + __u16 protocol; + __u8 flags; + __u8 invflags; +}; + +struct bpfilter_ipt_entry { + struct bpfilter_ipt_ip ip; + __u32 bfcache; + __u16 target_offset; + __u16 next_offset; + __u32 comefrom; + struct bpfilter_ipt_counters counters; + __u8 elems[0]; +}; + +struct bpfilter_ipt_standard_entry { + struct bpfilter_ipt_entry entry; + struct bpfilter_ipt_standard_target target; +}; + +struct bpfilter_ipt_error_entry { + struct bpfilter_ipt_entry entry; + struct bpfilter_ipt_error_target target; +}; + +struct bpfilter_ipt_get_entries { + char name[BPFILTER_XT_TABLE_MAXNAMELEN]; + __u32 size; + struct bpfilter_ipt_entry entries[0]; +}; + +struct bpfilter_ipt_replace { + char name[BPFILTER_XT_TABLE_MAXNAMELEN]; + __u32 valid_hooks; + __u32 num_entries; + __u32 size; + __u32 hook_entry[BPFILTER_INET_HOOK_MAX]; + __u32 underflow[BPFILTER_INET_HOOK_MAX]; + __u32 num_counters; + struct bpfilter_ipt_counters *cntrs; + struct bpfilter_ipt_entry entries[0]; +}; + +#endif /* _UAPI_LINUX_BPFILTER_H */
The header will be used in bpfilter usermode helper test infrastructure. Signed-off-by: Dmitrii Banshchikov <me@ubique.spb.ru> --- tools/include/uapi/linux/bpfilter.h | 179 ++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 tools/include/uapi/linux/bpfilter.h