sk_psockRegular
4.4: Absent ⚠️
4.8: Absent ⚠️
4.10: Absent ⚠️
4.13: Absent ⚠️
4.15: Absent ⚠️
4.18: Absent ⚠️
5.0: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
5.3: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
5.4: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
5.8: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
5.11: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
5.13: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct strparser strp;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
spinlock_t ingress_lock;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
void (*saved_data_ready)(struct sock *);
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
struct proto *sk_proto;
struct mutex work_mutex;
struct sk_psock_work_state work_state;
struct work_struct work;
struct rcu_work rwork;
};
5.15: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct strparser strp;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
spinlock_t ingress_lock;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
void (*saved_data_ready)(struct sock *);
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
struct proto *sk_proto;
struct mutex work_mutex;
struct sk_psock_work_state work_state;
struct work_struct work;
struct rcu_work rwork;
};
5.19: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct strparser strp;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
spinlock_t ingress_lock;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
void (*saved_data_ready)(struct sock *);
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
struct proto *sk_proto;
struct mutex work_mutex;
struct sk_psock_work_state work_state;
struct work_struct work;
struct rcu_work rwork;
};
6.2: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
bool redir_ingress;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct strparser strp;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
spinlock_t ingress_lock;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_destroy)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
void (*saved_data_ready)(struct sock *);
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
struct proto *sk_proto;
struct mutex work_mutex;
struct sk_psock_work_state work_state;
struct work_struct work;
struct rcu_work rwork;
};
6.5: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
bool redir_ingress;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct strparser strp;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
spinlock_t ingress_lock;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_destroy)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
void (*saved_data_ready)(struct sock *);
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
struct proto *sk_proto;
struct mutex work_mutex;
struct sk_psock_work_state work_state;
struct delayed_work work;
struct rcu_work rwork;
};
6.8: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
bool redir_ingress;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct strparser strp;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
spinlock_t ingress_lock;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_destroy)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
void (*saved_data_ready)(struct sock *);
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool);
struct proto *sk_proto;
struct mutex work_mutex;
struct sk_psock_work_state work_state;
struct delayed_work work;
struct sock *sk_pair;
struct rcu_work rwork;
};
arm64: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
armhf: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
ppc64el: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
riscv64: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
aws: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
azure: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
gcp: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
lowlatency: ✅struct sk_psock {
struct sock *sk;
struct sock *sk_redir;
u32 apply_bytes;
u32 cork_bytes;
u32 eval;
struct sk_msg *cork;
struct sk_psock_progs progs;
struct sk_psock_parser parser;
struct sk_buff_head ingress_skb;
struct list_head ingress_msg;
long unsigned int state;
struct list_head link;
spinlock_t link_lock;
refcount_t refcnt;
void (*saved_unhash)(struct sock *);
void (*saved_close)(struct sock *, long int);
void (*saved_write_space)(struct sock *);
struct proto *sk_proto;
struct sk_psock_work_state work_state;
struct work_struct work;
struct callback_head rcu;
struct work_struct gc;
};
Regular
5.0 and 5.3 ✅
5.3 and 5.4 ✅
5.4 and 5.8 ✅
5.8 and 5.11 ✅
5.11 and 5.13 ⚠️struct strparser strp
spinlock_t ingress_lock
void (*saved_data_ready)(struct sock *)
int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool)
struct mutex work_mutex
struct rcu_work rwork
struct sk_psock_parser parser
struct callback_head rcu
struct work_struct gc
5.13 and 5.15 ✅
5.15 and 5.19 ✅
5.19 and 6.2 ⚠️bool redir_ingress
void (*saved_destroy)(struct sock *)
6.2 and 6.5 ⚠️struct work_struct work ➡️ struct delayed_work work
6.5 and 6.8 ⚠️struct sock *sk_pair
amd64 and arm64 ✅
amd64 and armhf ✅
amd64 and ppc64el ✅
amd64 and riscv64 ✅
generic and aws ✅
generic and azure ✅
generic and gcp ✅
generic and lowlatency ✅