sysctl_net_core.c 3.0 KB

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