dhcp4.spec 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462
  1. {
  2. "module_spec": {
  3. "module_name": "Dhcp4",
  4. "module_description": "DHCPv4 server daemon",
  5. "config_data": [
  6. {
  7. "item_name": "hooks-libraries",
  8. "item_type": "list",
  9. "item_optional": true,
  10. "item_default": [],
  11. "list_item_spec":
  12. {
  13. "item_name": "hooks-library",
  14. "item_type": "string",
  15. "item_optional": false,
  16. "item_default": ""
  17. }
  18. },
  19. { "item_name": "interfaces",
  20. "item_type": "list",
  21. "item_optional": false,
  22. "item_default": [ "*" ],
  23. "list_item_spec":
  24. {
  25. "item_name": "interface_name",
  26. "item_type": "string",
  27. "item_optional": false,
  28. "item_default": "*"
  29. }
  30. } ,
  31. { "item_name": "renew-timer",
  32. "item_type": "integer",
  33. "item_optional": false,
  34. "item_default": 1000
  35. },
  36. { "item_name": "rebind-timer",
  37. "item_type": "integer",
  38. "item_optional": false,
  39. "item_default": 2000
  40. },
  41. { "item_name": "valid-lifetime",
  42. "item_type": "integer",
  43. "item_optional": false,
  44. "item_default": 4000
  45. },
  46. { "item_name": "next-server",
  47. "item_type": "string",
  48. "item_optional": true,
  49. "item_default": ""
  50. },
  51. { "item_name": "echo-client-id",
  52. "item_type": "boolean",
  53. "item_optional": true,
  54. "item_default": true
  55. },
  56. { "item_name": "option-def",
  57. "item_type": "list",
  58. "item_optional": false,
  59. "item_default": [],
  60. "list_item_spec":
  61. {
  62. "item_name": "single-option-def",
  63. "item_type": "map",
  64. "item_optional": false,
  65. "item_default": {},
  66. "map_item_spec": [
  67. {
  68. "item_name": "name",
  69. "item_type": "string",
  70. "item_optional": false,
  71. "item_default": ""
  72. },
  73. { "item_name": "code",
  74. "item_type": "integer",
  75. "item_optional": false,
  76. "item_default": 0
  77. },
  78. { "item_name": "type",
  79. "item_type": "string",
  80. "item_optional": false,
  81. "item_default": ""
  82. },
  83. { "item_name": "array",
  84. "item_type": "boolean",
  85. "item_optional": false,
  86. "item_default": False
  87. },
  88. { "item_name": "record-types",
  89. "item_type": "string",
  90. "item_optional": false,
  91. "item_default": ""
  92. },
  93. { "item_name": "space",
  94. "item_type": "string",
  95. "item_optional": false,
  96. "item_default": ""
  97. },
  98. { "item_name": "encapsulate",
  99. "item_type": "string",
  100. "item_optional": false,
  101. "item_default": ""
  102. } ]
  103. }
  104. },
  105. { "item_name": "option-data",
  106. "item_type": "list",
  107. "item_optional": false,
  108. "item_default": [],
  109. "list_item_spec":
  110. {
  111. "item_name": "single-option-data",
  112. "item_type": "map",
  113. "item_optional": false,
  114. "item_default": {},
  115. "map_item_spec": [
  116. {
  117. "item_name": "name",
  118. "item_type": "string",
  119. "item_optional": false,
  120. "item_default": ""
  121. },
  122. { "item_name": "code",
  123. "item_type": "integer",
  124. "item_optional": false,
  125. "item_default": 0
  126. },
  127. { "item_name": "data",
  128. "item_type": "string",
  129. "item_optional": false,
  130. "item_default": ""
  131. },
  132. { "item_name": "csv-format",
  133. "item_type": "boolean",
  134. "item_optional": false,
  135. "item_default": False
  136. },
  137. { "item_name": "space",
  138. "item_type": "string",
  139. "item_optional": false,
  140. "item_default": "dhcp4"
  141. } ]
  142. }
  143. },
  144. { "item_name": "lease-database",
  145. "item_type": "map",
  146. "item_optional": false,
  147. "item_default": {"type": "memfile"},
  148. "map_item_spec": [
  149. {
  150. "item_name": "type",
  151. "item_type": "string",
  152. "item_optional": false,
  153. "item_default": ""
  154. },
  155. {
  156. "item_name": "name",
  157. "item_type": "string",
  158. "item_optional": true,
  159. "item_default": ""
  160. },
  161. {
  162. "item_name": "user",
  163. "item_type": "string",
  164. "item_optional": true,
  165. "item_default": ""
  166. },
  167. {
  168. "item_name": "host",
  169. "item_type": "string",
  170. "item_optional": true,
  171. "item_default": ""
  172. },
  173. {
  174. "item_name": "password",
  175. "item_type": "string",
  176. "item_optional": true,
  177. "item_default": ""
  178. },
  179. {
  180. "item_name": "persist",
  181. "item_type": "boolean",
  182. "item_optional": true,
  183. "item_default": true
  184. }
  185. ]
  186. },
  187. { "item_name": "subnet4",
  188. "item_type": "list",
  189. "item_optional": false,
  190. "item_default": [],
  191. "list_item_spec":
  192. {
  193. "item_name": "single-subnet4",
  194. "item_type": "map",
  195. "item_optional": false,
  196. "item_default": {},
  197. "map_item_spec": [
  198. { "item_name": "subnet",
  199. "item_type": "string",
  200. "item_optional": false,
  201. "item_default": ""
  202. },
  203. { "item_name": "id",
  204. "item_type": "integer",
  205. "item_optional": false,
  206. "item_default": 0
  207. },
  208. { "item_name": "renew-timer",
  209. "item_type": "integer",
  210. "item_optional": false,
  211. "item_default": 1000
  212. },
  213. { "item_name": "rebind-timer",
  214. "item_type": "integer",
  215. "item_optional": false,
  216. "item_default": 2000
  217. },
  218. { "item_name": "valid-lifetime",
  219. "item_type": "integer",
  220. "item_optional": false,
  221. "item_default": 7200
  222. },
  223. { "item_name": "next-server",
  224. "item_type": "string",
  225. "item_optional": true,
  226. "item_default": "0.0.0.0"
  227. },
  228. { "item_name": "pool",
  229. "item_type": "list",
  230. "item_optional": false,
  231. "item_default": [],
  232. "list_item_spec":
  233. {
  234. "item_name": "type",
  235. "item_type": "string",
  236. "item_optional": false,
  237. "item_default": ""
  238. }
  239. },
  240. { "item_name": "client-class",
  241. "item_type": "string",
  242. "item_optional": false,
  243. "item_default": "",
  244. "item_description" : "Restricts access to this subnet to specified client class (if defined)"
  245. },
  246. { "item_name": "relay",
  247. "item_type": "map",
  248. "item_optional": false,
  249. "item_default": {},
  250. "item_description" : "Structure holding relay information.",
  251. "map_item_spec": [
  252. {
  253. "item_name": "ip-address",
  254. "item_type": "string",
  255. "item_optional": false,
  256. "item_default": "0.0.0.0",
  257. "item_description" : "IPv4 address of the relay (defaults to 0.0.0.0 if not specified)."
  258. }
  259. ]
  260. },
  261. { "item_name": "option-data",
  262. "item_type": "list",
  263. "item_optional": false,
  264. "item_default": [],
  265. "list_item_spec":
  266. {
  267. "item_name": "single-option-data",
  268. "item_type": "map",
  269. "item_optional": false,
  270. "item_default": {},
  271. "map_item_spec": [
  272. {
  273. "item_name": "name",
  274. "item_type": "string",
  275. "item_optional": false,
  276. "item_default": ""
  277. },
  278. {
  279. "item_name": "code",
  280. "item_type": "integer",
  281. "item_optional": false,
  282. "item_default": 0
  283. },
  284. {
  285. "item_name": "data",
  286. "item_type": "string",
  287. "item_optional": false,
  288. "item_default": ""
  289. },
  290. { "item_name": "csv-format",
  291. "item_type": "boolean",
  292. "item_optional": false,
  293. "item_default": False
  294. },
  295. { "item_name": "space",
  296. "item_type": "string",
  297. "item_optional": false,
  298. "item_default": "dhcp4"
  299. } ]
  300. }
  301. } ]
  302. }
  303. },
  304. { "item_name": "dhcp-ddns",
  305. "item_type": "map",
  306. "item_optional": false,
  307. "item_default": {"enable-updates": false},
  308. "item_description" : "Contains parameters pertaining DHCP-driven DDNS updates",
  309. "map_item_spec": [
  310. {
  311. "item_name": "enable-updates",
  312. "item_type": "boolean",
  313. "item_optional": false,
  314. "item_default": false,
  315. "item_description" : "Enables DDNS update processing"
  316. },
  317. {
  318. "item_name": "server-ip",
  319. "item_type": "string",
  320. "item_optional": true,
  321. "item_default": "127.0.0.1",
  322. "item_description" : "IP address of b10-dhcp-ddns (IPv4 or IPv6)"
  323. },
  324. {
  325. "item_name": "server-port",
  326. "item_type": "integer",
  327. "item_optional": true,
  328. "item_default": 53001,
  329. "item_description" : "port number of b10-dhcp-ddns"
  330. },
  331. {
  332. "item_name": "sender-ip",
  333. "item_type": "string",
  334. "item_optional": true,
  335. "item_default": "",
  336. "item_description" : "IP address from which to send to b10-dhcp-ddns (IPv4 or IPv6)"
  337. },
  338. {
  339. "item_name": "sender-port",
  340. "item_type": "integer",
  341. "item_optional": true,
  342. "item_default": 0,
  343. "item_description" : "port number from which to send to b10-dhcp-ddns"
  344. },
  345. {
  346. "item_name": "max-queue-size",
  347. "item_type": "integer",
  348. "item_optional": true,
  349. "item_default": 1024,
  350. "item_description" : "maximum number of requests allowed in the send queue"
  351. },
  352. {
  353. "item_name": "ncr-protocol",
  354. "item_type": "string",
  355. "item_optional": true,
  356. "item_default": "UDP",
  357. "item_description" : "Socket protocol to use with b10-dhcp-ddns"
  358. },
  359. {
  360. "item_name": "ncr-format",
  361. "item_type": "string",
  362. "item_optional": true,
  363. "item_default": "JSON",
  364. "item_description" : "Format of the update request packet"
  365. },
  366. {
  367. "item_name": "always-include-fqdn",
  368. "item_type": "boolean",
  369. "item_optional": true,
  370. "item_default": false,
  371. "item_description": "Enable always including the FQDN option in its response"
  372. },
  373. {
  374. "item_name": "override-no-update",
  375. "item_type": "boolean",
  376. "item_optional": true,
  377. "item_default": false,
  378. "item_description": "Do update, even if client requested no updates with N flag"
  379. },
  380. {
  381. "item_name": "override-client-update",
  382. "item_type": "boolean",
  383. "item_optional": true,
  384. "item_default": false,
  385. "item_description": "Server performs an update even if client requested delegation"
  386. },
  387. {
  388. "item_name": "replace-client-name",
  389. "item_type": "boolean",
  390. "item_optional": true,
  391. "item_default": false,
  392. "item_description": "Should server replace the domain-name supplied by the client"
  393. },
  394. {
  395. "item_name": "generated-prefix",
  396. "item_type": "string",
  397. "item_optional": true,
  398. "item_default": "myhost",
  399. "item_description": "Prefix to use when generating the client's name"
  400. },
  401. {
  402. "item_name": "qualifying-suffix",
  403. "item_type": "string",
  404. "item_optional": true,
  405. "item_default": "example.com",
  406. "item_description": "Fully qualified domain-name suffix if partial name provided by client"
  407. },
  408. ]
  409. },
  410. ],
  411. "commands": [
  412. {
  413. "command_name": "shutdown",
  414. "command_description": "Shuts down DHCPv4 server.",
  415. "command_args": [
  416. {
  417. "item_name": "pid",
  418. "item_type": "integer",
  419. "item_optional": true
  420. }
  421. ]
  422. },
  423. {
  424. "command_name": "libreload",
  425. "command_description": "Reloads the current hooks libraries.",
  426. "command_args": []
  427. }
  428. ]
  429. }
  430. }