/*linux-5.10.x\net\ipv4\sysctl_net_ipv4.c
每个结构体代表一个IPV4网络参数,通过该结构体可以设置和获取相关的网络配置*/
static struct ctl_table ipv4_table[] = {
{ //TCP最大孤立连接数。用于限制系统同时支持的处于TIME_WAIT状态的孤立TCP连接的最大数量
.procname = "tcp_max_orphans", //配置项名称
.data = &sysctl_tcp_max_orphans, //存储配置项值的变量,可以通过修改data字段来设置或获取相应的参数值
.maxlen = sizeof(int), //配置项值的最大长度
.mode = 0644, //访问权限为0644(即user可读写、group和others只读)
.proc_handler = proc_dointvec //处理器函数,可以通过proc_handler字段指定的处理器函数来处理相关操作
},
{
.procname = "inet_peer_threshold", //INET对等体阈值。当INET对等体数量超过该阈值时,将对存储在缓存中的INET对等体进行清理
.data = &inet_peer_threshold,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec
},
{
.procname = "inet_peer_minttl", //INET对等体最小TTL。用于指定存储在缓存中的INET对等体的最小存活时间
.data = &inet_peer_minttl,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_jiffies,
},
{
.procname = "inet_peer_maxttl", //INET对等体最大TTL。用于指定存储在缓存中的INET对等体的最大存活时间
.data = &inet_peer_maxttl,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_jiffies,
},
{
.procname = "tcp_mem", //TCP内存参数。用于设置TCP协议栈中与内存管理相关的参数,包括最小值、默认值和最大值。该参数可以影响TCP连接和缓冲区管理的性能
.maxlen = sizeof(sysctl_tcp_mem),
.data = &sysctl_tcp_mem,
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
},
{
.procname = "tcp_low_latency", //TCP低延迟模式。用于控制TCP协议在传输过程中的延迟。启用该模式可以减小网络延迟,但可能会增加网络拥塞和带宽利用率
.data = &sysctl_tcp_low_latency,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec
},
#ifdef CONFIG_NETLABEL //CIPSO(Common IP Security Option,常见的IP安全选项)相关的配置参数。CIPSO是用于IP数据包安全标记和标签的一种机制
{ //常见的IP安全选项:IPsec、火墙规则、IP地址过滤、反向路径转发检查、入侵检测系统等
.procname = "cipso_cache_enable", //CIPSO缓存是否启用
.data = &cipso_v4_cache_enabled,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec,
},
{
.procname = "cipso_cache_bucket_size",// CIPSO缓存桶大小
.data = &cipso_v4_cache_bucketsize,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec,
},
{
.procname = "cipso_rbm_optfmt", // CIPSO RBM选择格式
.data = &cipso_v4_rbm_optfmt,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec,
},
{
.procname = "cipso_rbm_strictvalid", // CIPSO RBM严格有效性
.data = &cipso_v4_rbm_strictvalid,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec,
},
#endif /* CONFIG_NETLABEL */
{
.procname = "tcp_available_ulp", //TCP可用的传输层协议。这个配置项用于获取当前系统中可用的TCP传输层协议的名称列表
.maxlen = TCP_ULP_BUF_MAX,
.mode = 0444,
.proc_handler = proc_tcp_available_ulp,
},
{
.procname = "icmp_msgs_per_sec", //每秒允许的ICMP消息数。该配置项用于限制每秒系统可以发送的ICMP消息的数量
.data = &sysctl_icmp_msgs_per_sec,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
.extra1 = SYSCTL_ZERO, //限制最小值为零
},
{
.procname = "icmp_msgs_burst", //ICMP消息的突发限制。该配置项用于限制系统可以在一个突发时间内发送的ICMP消息的数量
.data = &sysctl_icmp_msgs_burst,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = proc_dointvec_minmax,
.extra1 = SYSCTL_ZERO, //限制最小值为零
},
{
.procname = "udp_mem", //UDP内存设置。该配置项用于设置系统中用于UDP的内存限制
.data = &sysctl_udp_mem,
.maxlen = sizeof(sysctl_udp_mem),
.mode = 0644,
.proc_handler = proc_doulongvec_minmax,
},
{
.procname = "fib_sync_mem", //FIB同步内存设置。该配置项用于设置FIB同步过程中所使用的内存限制
.data = &sysctl_fib_sync_mem, //存储FIB同步内存限制的参数值,包括最小值、默认值和最大值
.maxlen = sizeof(sysctl_fib_sync_mem),
.mode = 0644,
.proc_handler = proc_douintvec_minmax,
.extra1 = &sysctl_fib_sync_mem_min, //限制最小值
.extra2 = &sysctl_fib_sync_mem_max, //限制最大值
},
{
.procname = "tcp_rx_skb_cache", //TCP接收sk_buff缓存。该配置项用于控制TCP接收数据包时所使用的sk_buff缓存
.data = &tcp_rx_skb_cache_key.key,
.mode = 0644,
.proc_handler = proc_do_static_key,
},
{
.procname = "tcp_tx_skb_cache", //TCP发送sk_buff缓存。该配置项用于控制TCP发送数据包时所使用的sk_buff缓存
.data = &tcp_tx_skb_cache_key.key,
.mode = 0644,
.proc_handler = proc_do_static_key,
},
{ }
};
linux内核结构体-注释详解:struct ctl_table ipv4_table[]
最新推荐文章于 2024-04-30 15:34:55 发布