mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-18 04:20:44 +00:00
The introduction of IPPROTO_SMC enables eBPF programs to determine whether to use SMC based on the context of socket creation, such as network namespaces, PID and comm name, etc. As a subsequent enhancement, to introduce a new generic hook that allows decisions on whether to use SMC or not at runtime, including but not limited to local/remote IP address or ports. User can write their own implememtion via bpf_struct_ops now to choose whether to use SMC or not before TCP 3rd handshake to be comleted. Signed-off-by: D. Wythe <alibuda@linux.alibaba.com> Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org> Reviewed-by: Dust Li <dust.li@linux.alibaba.com> Link: https://patch.msgid.link/20251107035632.115950-3-alibuda@linux.alibaba.com
34 lines
907 B
C
34 lines
907 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef __NETNS_SMC_H__
|
|
#define __NETNS_SMC_H__
|
|
#include <linux/mutex.h>
|
|
#include <linux/percpu.h>
|
|
|
|
struct smc_stats_rsn;
|
|
struct smc_stats;
|
|
struct netns_smc {
|
|
/* per cpu counters for SMC */
|
|
struct smc_stats __percpu *smc_stats;
|
|
/* protect fback_rsn */
|
|
struct mutex mutex_fback_rsn;
|
|
struct smc_stats_rsn *fback_rsn;
|
|
|
|
bool limit_smc_hs; /* constraint on handshake */
|
|
#ifdef CONFIG_SYSCTL
|
|
struct ctl_table_header *smc_hdr;
|
|
#endif
|
|
#if IS_ENABLED(CONFIG_SMC_HS_CTRL_BPF)
|
|
struct smc_hs_ctrl __rcu *hs_ctrl;
|
|
#endif /* CONFIG_SMC_HS_CTRL_BPF */
|
|
unsigned int sysctl_autocorking_size;
|
|
unsigned int sysctl_smcr_buf_type;
|
|
int sysctl_smcr_testlink_time;
|
|
int sysctl_wmem;
|
|
int sysctl_rmem;
|
|
int sysctl_max_links_per_lgr;
|
|
int sysctl_max_conns_per_lgr;
|
|
unsigned int sysctl_smcr_max_send_wr;
|
|
unsigned int sysctl_smcr_max_recv_wr;
|
|
};
|
|
#endif
|