sysctl_net_core.c 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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. #include <linux/mm.h>
  8. #include <linux/sysctl.h>
  9. #include <linux/module.h>
  10. #include <linux/socket.h>
  11. #include <net/sock.h>
  12. #ifdef CONFIG_SYSCTL
  13. extern int netdev_max_backlog;
  14. extern int weight_p;
  15. extern __u32 sysctl_wmem_max;
  16. extern __u32 sysctl_rmem_max;
  17. extern int sysctl_core_destroy_delay;
  18. #ifdef CONFIG_NET_DIVERT
  19. extern char sysctl_divert_version[];
  20. #endif /* CONFIG_NET_DIVERT */
  21. #ifdef CONFIG_XFRM
  22. extern u32 sysctl_xfrm_aevent_etime;
  23. extern u32 sysctl_xfrm_aevent_rseqth;
  24. #endif
  25. ctl_table core_table[] = {
  26. #ifdef CONFIG_NET
  27. {
  28. .ctl_name = NET_CORE_WMEM_MAX,
  29. .procname = "wmem_max",
  30. .data = &sysctl_wmem_max,
  31. .maxlen = sizeof(int),
  32. .mode = 0644,
  33. .proc_handler = &proc_dointvec
  34. },
  35. {
  36. .ctl_name = NET_CORE_RMEM_MAX,
  37. .procname = "rmem_max",
  38. .data = &sysctl_rmem_max,
  39. .maxlen = sizeof(int),
  40. .mode = 0644,
  41. .proc_handler = &proc_dointvec
  42. },
  43. {
  44. .ctl_name = NET_CORE_WMEM_DEFAULT,
  45. .procname = "wmem_default",
  46. .data = &sysctl_wmem_default,
  47. .maxlen = sizeof(int),
  48. .mode = 0644,
  49. .proc_handler = &proc_dointvec
  50. },
  51. {
  52. .ctl_name = NET_CORE_RMEM_DEFAULT,
  53. .procname = "rmem_default",
  54. .data = &sysctl_rmem_default,
  55. .maxlen = sizeof(int),
  56. .mode = 0644,
  57. .proc_handler = &proc_dointvec
  58. },
  59. {
  60. .ctl_name = NET_CORE_DEV_WEIGHT,
  61. .procname = "dev_weight",
  62. .data = &weight_p,
  63. .maxlen = sizeof(int),
  64. .mode = 0644,
  65. .proc_handler = &proc_dointvec
  66. },
  67. {
  68. .ctl_name = NET_CORE_MAX_BACKLOG,
  69. .procname = "netdev_max_backlog",
  70. .data = &netdev_max_backlog,
  71. .maxlen = sizeof(int),
  72. .mode = 0644,
  73. .proc_handler = &proc_dointvec
  74. },
  75. {
  76. .ctl_name = NET_CORE_MSG_COST,
  77. .procname = "message_cost",
  78. .data = &net_msg_cost,
  79. .maxlen = sizeof(int),
  80. .mode = 0644,
  81. .proc_handler = &proc_dointvec_jiffies,
  82. .strategy = &sysctl_jiffies,
  83. },
  84. {
  85. .ctl_name = NET_CORE_MSG_BURST,
  86. .procname = "message_burst",
  87. .data = &net_msg_burst,
  88. .maxlen = sizeof(int),
  89. .mode = 0644,
  90. .proc_handler = &proc_dointvec,
  91. },
  92. {
  93. .ctl_name = NET_CORE_OPTMEM_MAX,
  94. .procname = "optmem_max",
  95. .data = &sysctl_optmem_max,
  96. .maxlen = sizeof(int),
  97. .mode = 0644,
  98. .proc_handler = &proc_dointvec
  99. },
  100. #ifdef CONFIG_NET_DIVERT
  101. {
  102. .ctl_name = NET_CORE_DIVERT_VERSION,
  103. .procname = "divert_version",
  104. .data = (void *)sysctl_divert_version,
  105. .maxlen = 32,
  106. .mode = 0444,
  107. .proc_handler = &proc_dostring
  108. },
  109. #endif /* CONFIG_NET_DIVERT */
  110. #ifdef CONFIG_XFRM
  111. {
  112. .ctl_name = NET_CORE_AEVENT_ETIME,
  113. .procname = "xfrm_aevent_etime",
  114. .data = &sysctl_xfrm_aevent_etime,
  115. .maxlen = sizeof(u32),
  116. .mode = 0644,
  117. .proc_handler = &proc_dointvec
  118. },
  119. {
  120. .ctl_name = NET_CORE_AEVENT_RSEQTH,
  121. .procname = "xfrm_aevent_rseqth",
  122. .data = &sysctl_xfrm_aevent_rseqth,
  123. .maxlen = sizeof(u32),
  124. .mode = 0644,
  125. .proc_handler = &proc_dointvec
  126. },
  127. #endif /* CONFIG_XFRM */
  128. #endif /* CONFIG_NET */
  129. {
  130. .ctl_name = NET_CORE_SOMAXCONN,
  131. .procname = "somaxconn",
  132. .data = &sysctl_somaxconn,
  133. .maxlen = sizeof(int),
  134. .mode = 0644,
  135. .proc_handler = &proc_dointvec
  136. },
  137. {
  138. .ctl_name = NET_CORE_BUDGET,
  139. .procname = "netdev_budget",
  140. .data = &netdev_budget,
  141. .maxlen = sizeof(int),
  142. .mode = 0644,
  143. .proc_handler = &proc_dointvec
  144. },
  145. { .ctl_name = 0 }
  146. };
  147. #endif