1 /* -*- linux-c -*- 2 * sysctl_net_core.c: sysctl interface to net core subsystem. 3 * 4 * Begun April 1, 1996, Mike Shaver. 5 * Added /proc/sys/net/core directory entry (empty =) ). [MS] 6 */ 7 8 #include <linux/mm.h> 9 #include <linux/sysctl.h> 10 #include <linux/config.h> 11 #include <linux/module.h> 12 13 #ifdef CONFIG_SYSCTL 14 15 extern int netdev_max_backlog; 16 extern int weight_p; 17 extern int no_cong_thresh; 18 extern int no_cong; 19 extern int lo_cong; 20 extern int mod_cong; 21 extern int netdev_fastroute; 22 extern int net_msg_cost; 23 extern int net_msg_burst; 24 25 extern __u32 sysctl_wmem_max; 26 extern __u32 sysctl_rmem_max; 27 extern __u32 sysctl_wmem_default; 28 extern __u32 sysctl_rmem_default; 29 30 extern int sysctl_core_destroy_delay; 31 extern int sysctl_optmem_max; 32 extern int sysctl_somaxconn; 33 34 #ifdef CONFIG_NET_DIVERT 35 extern char sysctl_divert_version[]; 36 #endif /* CONFIG_NET_DIVERT */ 37 38 ctl_table core_table[] = { 39 #ifdef CONFIG_NET 40 { 41 .ctl_name = NET_CORE_WMEM_MAX, 42 .procname = "wmem_max", 43 .data = &sysctl_wmem_max, 44 .maxlen = sizeof(int), 45 .mode = 0644, 46 .proc_handler = &proc_dointvec 47 }, 48 { 49 .ctl_name = NET_CORE_RMEM_MAX, 50 .procname = "rmem_max", 51 .data = &sysctl_rmem_max, 52 .maxlen = sizeof(int), 53 .mode = 0644, 54 .proc_handler = &proc_dointvec 55 }, 56 { 57 .ctl_name = NET_CORE_WMEM_DEFAULT, 58 .procname = "wmem_default", 59 .data = &sysctl_wmem_default, 60 .maxlen = sizeof(int), 61 .mode = 0644, 62 .proc_handler = &proc_dointvec 63 }, 64 { 65 .ctl_name = NET_CORE_RMEM_DEFAULT, 66 .procname = "rmem_default", 67 .data = &sysctl_rmem_default, 68 .maxlen = sizeof(int), 69 .mode = 0644, 70 .proc_handler = &proc_dointvec 71 }, 72 { 73 .ctl_name = NET_CORE_DEV_WEIGHT, 74 .procname = "dev_weight", 75 .data = &weight_p, 76 .maxlen = sizeof(int), 77 .mode = 0644, 78 .proc_handler = &proc_dointvec 79 }, 80 { 81 .ctl_name = NET_CORE_MAX_BACKLOG, 82 .procname = "netdev_max_backlog", 83 .data = &netdev_max_backlog, 84 .maxlen = sizeof(int), 85 .mode = 0644, 86 .proc_handler = &proc_dointvec 87 }, 88 { 89 .ctl_name = NET_CORE_NO_CONG_THRESH, 90 .procname = "no_cong_thresh", 91 .data = &no_cong_thresh, 92 .maxlen = sizeof(int), 93 .mode = 0644, 94 .proc_handler = &proc_dointvec 95 }, 96 { 97 .ctl_name = NET_CORE_NO_CONG, 98 .procname = "no_cong", 99 .data = &no_cong, 100 .maxlen = sizeof(int), 101 .mode = 0644, 102 .proc_handler = &proc_dointvec 103 }, 104 { 105 .ctl_name = NET_CORE_LO_CONG, 106 .procname = "lo_cong", 107 .data = &lo_cong, 108 .maxlen = sizeof(int), 109 .mode = 0644, 110 .proc_handler = &proc_dointvec 111 }, 112 { 113 .ctl_name = NET_CORE_MOD_CONG, 114 .procname = "mod_cong", 115 .data = &mod_cong, 116 .maxlen = sizeof(int), 117 .mode = 0644, 118 .proc_handler = &proc_dointvec 119 }, 120 { 121 .ctl_name = NET_CORE_MSG_COST, 122 .procname = "message_cost", 123 .data = &net_msg_cost, 124 .maxlen = sizeof(int), 125 .mode = 0644, 126 .proc_handler = &proc_dointvec_jiffies, 127 .strategy = &sysctl_jiffies, 128 }, 129 { 130 .ctl_name = NET_CORE_MSG_BURST, 131 .procname = "message_burst", 132 .data = &net_msg_burst, 133 .maxlen = sizeof(int), 134 .mode = 0644, 135 .proc_handler = &proc_dointvec, 136 }, 137 { 138 .ctl_name = NET_CORE_OPTMEM_MAX, 139 .procname = "optmem_max", 140 .data = &sysctl_optmem_max, 141 .maxlen = sizeof(int), 142 .mode = 0644, 143 .proc_handler = &proc_dointvec 144 }, 145 #ifdef CONFIG_NET_DIVERT 146 { 147 .ctl_name = NET_CORE_DIVERT_VERSION, 148 .procname = "divert_version", 149 .data = (void *)sysctl_divert_version, 150 .maxlen = 32, 151 .mode = 0444, 152 .proc_handler = &proc_dostring 153 }, 154 #endif /* CONFIG_NET_DIVERT */ 155 #endif /* CONFIG_NET */ 156 { 157 .ctl_name = NET_CORE_SOMAXCONN, 158 .procname = "somaxconn", 159 .data = &sysctl_somaxconn, 160 .maxlen = sizeof(int), 161 .mode = 0644, 162 .proc_handler = &proc_dointvec 163 }, 164 { .ctl_name = 0 } 165 }; 166 167 #endif 168