sysctl_net_netrom.c 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. *
  4. * Copyright (C) 1996 Mike Shaver ([email protected])
  5. */
  6. #include <linux/mm.h>
  7. #include <linux/sysctl.h>
  8. #include <linux/init.h>
  9. #include <net/ax25.h>
  10. #include <net/netrom.h>
  11. /*
  12. * Values taken from NET/ROM documentation.
  13. */
  14. static int min_quality[] = {0}, max_quality[] = {255};
  15. static int min_obs[] = {0}, max_obs[] = {255};
  16. static int min_ttl[] = {0}, max_ttl[] = {255};
  17. static int min_t1[] = {5 * HZ};
  18. static int max_t1[] = {600 * HZ};
  19. static int min_n2[] = {2}, max_n2[] = {127};
  20. static int min_t2[] = {1 * HZ};
  21. static int max_t2[] = {60 * HZ};
  22. static int min_t4[] = {1 * HZ};
  23. static int max_t4[] = {1000 * HZ};
  24. static int min_window[] = {1}, max_window[] = {127};
  25. static int min_idle[] = {0 * HZ};
  26. static int max_idle[] = {65535 * HZ};
  27. static int min_route[] = {0}, max_route[] = {1};
  28. static int min_fails[] = {1}, max_fails[] = {10};
  29. static int min_reset[] = {0}, max_reset[] = {1};
  30. static struct ctl_table_header *nr_table_header;
  31. static struct ctl_table nr_table[] = {
  32. {
  33. .procname = "default_path_quality",
  34. .data = &sysctl_netrom_default_path_quality,
  35. .maxlen = sizeof(int),
  36. .mode = 0644,
  37. .proc_handler = proc_dointvec_minmax,
  38. .extra1 = &min_quality,
  39. .extra2 = &max_quality
  40. },
  41. {
  42. .procname = "obsolescence_count_initialiser",
  43. .data = &sysctl_netrom_obsolescence_count_initialiser,
  44. .maxlen = sizeof(int),
  45. .mode = 0644,
  46. .proc_handler = proc_dointvec_minmax,
  47. .extra1 = &min_obs,
  48. .extra2 = &max_obs
  49. },
  50. {
  51. .procname = "network_ttl_initialiser",
  52. .data = &sysctl_netrom_network_ttl_initialiser,
  53. .maxlen = sizeof(int),
  54. .mode = 0644,
  55. .proc_handler = proc_dointvec_minmax,
  56. .extra1 = &min_ttl,
  57. .extra2 = &max_ttl
  58. },
  59. {
  60. .procname = "transport_timeout",
  61. .data = &sysctl_netrom_transport_timeout,
  62. .maxlen = sizeof(int),
  63. .mode = 0644,
  64. .proc_handler = proc_dointvec_minmax,
  65. .extra1 = &min_t1,
  66. .extra2 = &max_t1
  67. },
  68. {
  69. .procname = "transport_maximum_tries",
  70. .data = &sysctl_netrom_transport_maximum_tries,
  71. .maxlen = sizeof(int),
  72. .mode = 0644,
  73. .proc_handler = proc_dointvec_minmax,
  74. .extra1 = &min_n2,
  75. .extra2 = &max_n2
  76. },
  77. {
  78. .procname = "transport_acknowledge_delay",
  79. .data = &sysctl_netrom_transport_acknowledge_delay,
  80. .maxlen = sizeof(int),
  81. .mode = 0644,
  82. .proc_handler = proc_dointvec_minmax,
  83. .extra1 = &min_t2,
  84. .extra2 = &max_t2
  85. },
  86. {
  87. .procname = "transport_busy_delay",
  88. .data = &sysctl_netrom_transport_busy_delay,
  89. .maxlen = sizeof(int),
  90. .mode = 0644,
  91. .proc_handler = proc_dointvec_minmax,
  92. .extra1 = &min_t4,
  93. .extra2 = &max_t4
  94. },
  95. {
  96. .procname = "transport_requested_window_size",
  97. .data = &sysctl_netrom_transport_requested_window_size,
  98. .maxlen = sizeof(int),
  99. .mode = 0644,
  100. .proc_handler = proc_dointvec_minmax,
  101. .extra1 = &min_window,
  102. .extra2 = &max_window
  103. },
  104. {
  105. .procname = "transport_no_activity_timeout",
  106. .data = &sysctl_netrom_transport_no_activity_timeout,
  107. .maxlen = sizeof(int),
  108. .mode = 0644,
  109. .proc_handler = proc_dointvec_minmax,
  110. .extra1 = &min_idle,
  111. .extra2 = &max_idle
  112. },
  113. {
  114. .procname = "routing_control",
  115. .data = &sysctl_netrom_routing_control,
  116. .maxlen = sizeof(int),
  117. .mode = 0644,
  118. .proc_handler = proc_dointvec_minmax,
  119. .extra1 = &min_route,
  120. .extra2 = &max_route
  121. },
  122. {
  123. .procname = "link_fails_count",
  124. .data = &sysctl_netrom_link_fails_count,
  125. .maxlen = sizeof(int),
  126. .mode = 0644,
  127. .proc_handler = proc_dointvec_minmax,
  128. .extra1 = &min_fails,
  129. .extra2 = &max_fails
  130. },
  131. {
  132. .procname = "reset",
  133. .data = &sysctl_netrom_reset_circuit,
  134. .maxlen = sizeof(int),
  135. .mode = 0644,
  136. .proc_handler = proc_dointvec_minmax,
  137. .extra1 = &min_reset,
  138. .extra2 = &max_reset
  139. },
  140. { }
  141. };
  142. int __init nr_register_sysctl(void)
  143. {
  144. nr_table_header = register_net_sysctl(&init_net, "net/netrom", nr_table);
  145. if (!nr_table_header)
  146. return -ENOMEM;
  147. return 0;
  148. }
  149. void nr_unregister_sysctl(void)
  150. {
  151. unregister_net_sysctl_table(nr_table_header);
  152. }