Unverified Commit c2c991df authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!2699 add sample sockmap code for redis

Merge Pull Request from: @ci-robot 
 
PR sync from: Liu Jian <liujian56@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/5JVMWLRGNP5K6H35V5IRR7QKAFGDKQD2/ 
v1->v2: 
	Move local_skb to a reserved field instead of inserting it to a structure hole.
	Fix a cgroup ref leak bug.

Hengqi Chen (1):
  libbpf: Support uniform BTF-defined key/value specification across all
    BPF maps

Liu Jian (4):
  cgroup: make cgroup_bpf_prog_attach work when cgroup2 is not mounted
  net: let sockops can use bpf_get_current_comm()
  net: add local_skb parameter to identify local tcp connection
  tools: add sample sockmap code for redis

Xu Kuohai (1):
  bpf, sockmap: Fix map type error in sock_map_del_link

Yosry Ahmed (1):
  cgroup: add cgroup_v1v2_get_from_[fd/file]()


-- 
2.34.1
 
https://gitee.com/openeuler/kernel/issues/I7DNAP 
 
Link:https://gitee.com/openeuler/kernel/pulls/2699

 

Reviewed-by: default avatarYue Haibing <yuehaibing@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents 808ca201 4e4e174f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -106,6 +106,8 @@ struct cgroup_subsys_state *css_tryget_online_from_dir(struct dentry *dentry,

struct cgroup *cgroup_get_from_path(const char *path);
struct cgroup *cgroup_get_from_fd(int fd);
struct cgroup *cgroup_get_from_fd_v2(int fd);
struct cgroup *cgroup_v1v2_get_from_fd(int fd);

int cgroup_attach_task_all(struct task_struct *from, struct task_struct *);
int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from);
+1 −0
Original line number Diff line number Diff line
@@ -1284,6 +1284,7 @@ struct bpf_sock_ops_kern {
	u8	op;
	u8	is_fullsock;
	u8	remaining_opt_len;
	u8	local_skb;
	u64	temp;			/* temp and everything after is not
					 * initialized to 0 before calling
					 * the BPF program. New fields that
+1 −1
Original line number Diff line number Diff line
@@ -923,7 +923,7 @@ struct sk_buff {
	__u32			headers_end[0];
	/* public: */

	KABI_USE(1, __u8 scm_io_uring:1)
	KABI_USE2(1, __u8 scm_io_uring:1, __u8 local_skb:1)
	KABI_RESERVE(2)
	KABI_RESERVE(3)
	KABI_RESERVE(4)
+1 −0
Original line number Diff line number Diff line
@@ -4707,6 +4707,7 @@ struct bpf_sock_ops {
				 * the outgoing header has not
				 * been written yet.
				 */
	__u32 local_skb;
};

/* Definitions for bpf_sock_ops_cb_flags */
+4 −4
Original line number Diff line number Diff line
@@ -848,7 +848,7 @@ int cgroup_bpf_prog_attach(const union bpf_attr *attr,
	struct cgroup *cgrp;
	int ret;

	cgrp = cgroup_get_from_fd(attr->target_fd);
	cgrp = cgroup_get_from_fd_v2(attr->target_fd);
	if (IS_ERR(cgrp))
		return PTR_ERR(cgrp);

@@ -876,7 +876,7 @@ int cgroup_bpf_prog_detach(const union bpf_attr *attr, enum bpf_prog_type ptype)
	struct cgroup *cgrp;
	int ret;

	cgrp = cgroup_get_from_fd(attr->target_fd);
	cgrp = cgroup_get_from_fd_v2(attr->target_fd);
	if (IS_ERR(cgrp))
		return PTR_ERR(cgrp);

@@ -993,7 +993,7 @@ int cgroup_bpf_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
	if (attr->link_create.flags)
		return -EINVAL;

	cgrp = cgroup_get_from_fd(attr->link_create.target_fd);
	cgrp = cgroup_get_from_fd_v2(attr->link_create.target_fd);
	if (IS_ERR(cgrp))
		return PTR_ERR(cgrp);

@@ -1033,7 +1033,7 @@ int cgroup_bpf_prog_query(const union bpf_attr *attr,
	struct cgroup *cgrp;
	int ret;

	cgrp = cgroup_get_from_fd(attr->query.target_fd);
	cgrp = cgroup_get_from_fd_v2(attr->query.target_fd);
	if (IS_ERR(cgrp))
		return PTR_ERR(cgrp);

Loading