dhcp6.spec 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602
  1. {
  2. "module_spec": {
  3. "module_name": "Dhcp6",
  4. "module_description": "DHCPv6 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-config",
  20. "item_type": "map",
  21. "item_optional": false,
  22. "item_default": {},
  23. "map_item_spec": [
  24. {
  25. "item_name": "interfaces",
  26. "item_type": "list",
  27. "item_optional": false,
  28. "item_default": [ "*" ],
  29. "list_item_spec":
  30. {
  31. "item_name": "interface_name",
  32. "item_type": "string",
  33. "item_optional": false,
  34. "item_default": "*"
  35. }
  36. }
  37. ]
  38. },
  39. { "item_name": "renew-timer",
  40. "item_type": "integer",
  41. "item_optional": false,
  42. "item_default": 1000
  43. },
  44. { "item_name": "rebind-timer",
  45. "item_type": "integer",
  46. "item_optional": false,
  47. "item_default": 2000
  48. },
  49. { "item_name": "preferred-lifetime",
  50. "item_type": "integer",
  51. "item_optional": false,
  52. "item_default": 3000
  53. },
  54. { "item_name": "valid-lifetime",
  55. "item_type": "integer",
  56. "item_optional": false,
  57. "item_default": 4000
  58. },
  59. { "item_name": "new-leases-on-renew",
  60. "item_type": "boolean",
  61. "item_optional": true,
  62. "item_default": true
  63. },
  64. { "item_name": "option-def",
  65. "item_type": "list",
  66. "item_optional": false,
  67. "item_default": [],
  68. "list_item_spec":
  69. {
  70. "item_name": "single-option-def",
  71. "item_type": "map",
  72. "item_optional": false,
  73. "item_default": {},
  74. "map_item_spec": [
  75. {
  76. "item_name": "name",
  77. "item_type": "string",
  78. "item_optional": false,
  79. "item_default": ""
  80. },
  81. { "item_name": "code",
  82. "item_type": "integer",
  83. "item_optional": false,
  84. "item_default": 0
  85. },
  86. { "item_name": "type",
  87. "item_type": "string",
  88. "item_optional": false,
  89. "item_default": ""
  90. },
  91. { "item_name": "array",
  92. "item_type": "boolean",
  93. "item_optional": false,
  94. "item_default": false
  95. },
  96. { "item_name": "record-types",
  97. "item_type": "string",
  98. "item_optional": false,
  99. "item_default": ""
  100. },
  101. { "item_name": "space",
  102. "item_type": "string",
  103. "item_optional": false,
  104. "item_default": ""
  105. },
  106. { "item_name": "encapsulate",
  107. "item_type": "string",
  108. "item_optional": false,
  109. "item_default": ""
  110. } ]
  111. }
  112. },
  113. { "item_name": "option-data",
  114. "item_type": "list",
  115. "item_optional": false,
  116. "item_default": [],
  117. "list_item_spec":
  118. {
  119. "item_name": "single-option-data",
  120. "item_type": "map",
  121. "item_optional": false,
  122. "item_default": {},
  123. "map_item_spec": [
  124. {
  125. "item_name": "name",
  126. "item_type": "string",
  127. "item_optional": false,
  128. "item_default": ""
  129. },
  130. { "item_name": "code",
  131. "item_type": "integer",
  132. "item_optional": false,
  133. "item_default": 0
  134. },
  135. { "item_name": "data",
  136. "item_type": "string",
  137. "item_optional": false,
  138. "item_default": ""
  139. },
  140. { "item_name": "csv-format",
  141. "item_type": "boolean",
  142. "item_optional": false,
  143. "item_default": false
  144. },
  145. { "item_name": "space",
  146. "item_type": "string",
  147. "item_optional": false,
  148. "item_default": "dhcp6"
  149. } ]
  150. }
  151. },
  152. { "item_name": "lease-database",
  153. "item_type": "map",
  154. "item_optional": false,
  155. "item_default": {"type": "memfile"},
  156. "map_item_spec": [
  157. {
  158. "item_name": "type",
  159. "item_type": "string",
  160. "item_optional": false,
  161. "item_default": ""
  162. },
  163. {
  164. "item_name": "name",
  165. "item_type": "string",
  166. "item_optional": true,
  167. "item_default": ""
  168. },
  169. {
  170. "item_name": "user",
  171. "item_type": "string",
  172. "item_optional": true,
  173. "item_default": ""
  174. },
  175. {
  176. "item_name": "host",
  177. "item_type": "string",
  178. "item_optional": true,
  179. "item_default": ""
  180. },
  181. {
  182. "item_name": "password",
  183. "item_type": "string",
  184. "item_optional": true,
  185. "item_default": ""
  186. },
  187. {
  188. "item_name": "persist",
  189. "item_type": "boolean",
  190. "item_optional": true,
  191. "item_default": true
  192. },
  193. {
  194. "item_name": "lfc-interval",
  195. "item_type": "integer",
  196. "item_optional": true,
  197. "item_default": 0
  198. }
  199. ]
  200. },
  201. { "item_name": "subnet6",
  202. "item_type": "list",
  203. "item_optional": false,
  204. "item_default": [],
  205. "list_item_spec":
  206. {
  207. "item_name": "single-subnet6",
  208. "item_type": "map",
  209. "item_optional": false,
  210. "item_default": {},
  211. "map_item_spec": [
  212. { "item_name": "subnet",
  213. "item_type": "string",
  214. "item_optional": false,
  215. "item_default": ""
  216. },
  217. { "item_name": "id",
  218. "item_type": "integer",
  219. "item_optional": false,
  220. "item_default": 0
  221. },
  222. { "item_name": "interface",
  223. "item_type": "string",
  224. "item_optional": false,
  225. "item_default": ""
  226. },
  227. { "item_name": "interface-id",
  228. "item_type": "string",
  229. "item_optional": false,
  230. "item_default": ""
  231. },
  232. { "item_name": "rapid-commit",
  233. "item_type": "boolean",
  234. "item_optional": false,
  235. "item_default": false
  236. },
  237. { "item_name": "renew-timer",
  238. "item_type": "integer",
  239. "item_optional": false,
  240. "item_default": 1000
  241. },
  242. { "item_name": "rebind-timer",
  243. "item_type": "integer",
  244. "item_optional": false,
  245. "item_default": 2000
  246. },
  247. { "item_name": "preferred-lifetime",
  248. "item_type": "integer",
  249. "item_optional": false,
  250. "item_default": 3000
  251. },
  252. { "item_name": "valid-lifetime",
  253. "item_type": "integer",
  254. "item_optional": false,
  255. "item_default": 7200
  256. },
  257. { "item_name": "pool",
  258. "item_type": "list",
  259. "item_optional": false,
  260. "item_default": [],
  261. "list_item_spec":
  262. {
  263. "item_name": "type",
  264. "item_type": "string",
  265. "item_optional": false,
  266. "item_default": ""
  267. }
  268. },
  269. { "item_name": "client-class",
  270. "item_type": "string",
  271. "item_optional": false,
  272. "item_default": "",
  273. "item_description" : "Restricts access to this subnet to specified client class (if defined)"
  274. },
  275. { "item_name": "relay",
  276. "item_type": "map",
  277. "item_optional": false,
  278. "item_default": {},
  279. "item_description" : "Structure holding relay information.",
  280. "map_item_spec": [
  281. {
  282. "item_name": "ip-address",
  283. "item_type": "string",
  284. "item_optional": false,
  285. "item_default": "::",
  286. "item_description" : "IPv6 address of the relay (defaults to :: if not specified)."
  287. }
  288. ]
  289. },
  290. {
  291. "item_name": "pd-pools",
  292. "item_type": "list",
  293. "item_optional": true,
  294. "item_default": [],
  295. "list_item_spec":
  296. {
  297. "item_name": "pd-pool",
  298. "item_type": "map",
  299. "item_optional": false,
  300. "item_default": {},
  301. "map_item_spec": [
  302. {
  303. "item_name": "prefix",
  304. "item_type": "string",
  305. "item_optional": false,
  306. "item_default": ""
  307. },
  308. {
  309. "item_name": "prefix-len",
  310. "item_type": "integer",
  311. "item_optional": false,
  312. "item_default": 128
  313. },
  314. {
  315. "item_name": "delegated-len",
  316. "item_type": "integer",
  317. "item_optional": false,
  318. "item_default": 128
  319. }]
  320. }
  321. },
  322. { "item_name": "option-data",
  323. "item_type": "list",
  324. "item_optional": false,
  325. "item_default": [],
  326. "list_item_spec":
  327. {
  328. "item_name": "single-option-data",
  329. "item_type": "map",
  330. "item_optional": false,
  331. "item_default": {},
  332. "map_item_spec": [
  333. {
  334. "item_name": "name",
  335. "item_type": "string",
  336. "item_optional": false,
  337. "item_default": ""
  338. },
  339. {
  340. "item_name": "code",
  341. "item_type": "integer",
  342. "item_optional": false,
  343. "item_default": 0
  344. },
  345. {
  346. "item_name": "data",
  347. "item_type": "string",
  348. "item_optional": false,
  349. "item_default": ""
  350. },
  351. { "item_name": "csv-format",
  352. "item_type": "boolean",
  353. "item_optional": false,
  354. "item_default": false
  355. },
  356. { "item_name": "space",
  357. "item_type": "string",
  358. "item_optional": false,
  359. "item_default": "dhcp6"
  360. } ]
  361. }
  362. },
  363. { "item_name": "reservations",
  364. "item_type": "list",
  365. "item_optional": false,
  366. "item_default": [],
  367. "list_item_spec":
  368. {
  369. "item_name": "reservation",
  370. "item_type": "map",
  371. "item_optional": false,
  372. "item_default": {},
  373. "map_item_spec": [
  374. {
  375. "item_name": "hw-address",
  376. "item_type": "string",
  377. "item_optional": true,
  378. "item_default": ""
  379. },
  380. {
  381. "item_name": "duid",
  382. "item_type": "string",
  383. "item_optional": true,
  384. "item_default": ""
  385. },
  386. {
  387. "item_name": "hostname",
  388. "item_type": "string",
  389. "item_optional": false,
  390. "item_default": ""
  391. },
  392. {
  393. "item_name": "ip-addresses",
  394. "item_type": "list",
  395. "item_optional": false,
  396. "item_default": [],
  397. "list_item_spec":
  398. {
  399. "item_name": "ip-address-reservation",
  400. "item_type": "string",
  401. "item_optional": false,
  402. "item_default": ""
  403. }
  404. },
  405. {
  406. "item_name": "prefixes",
  407. "item_type": "list",
  408. "item_optional": false,
  409. "item_default": [],
  410. "list_item_spec":
  411. {
  412. "item_name": "prefix-reservation",
  413. "item_type": "string",
  414. "item_optional": false,
  415. "item_default": ""
  416. }
  417. } ]
  418. }
  419. },
  420. {
  421. "item_name": "reservation-mode",
  422. "item_type": "string",
  423. "item_optional": true,
  424. "item_default": "all",
  425. "item_description": "Specifies allowed host reservation types. Disabling unused modes may improve performance. Allowed values: disabled, off, out-of-pool, all"
  426. } ]
  427. }
  428. },
  429. { "item_name": "mac-sources",
  430. "item_type": "list",
  431. "item_optional": true,
  432. "item_default": [ "any" ],
  433. "item_description": "Lists MAC/hardware address acquisition sources",
  434. "list_item_spec":
  435. {
  436. "item_name": "source",
  437. "item_type": "string",
  438. "item_optional": true,
  439. "item_default": "any"
  440. }
  441. } ,
  442. { "item_name": "dhcp-ddns",
  443. "item_type": "map",
  444. "item_optional": false,
  445. "item_default": {"enable-updates": false},
  446. "item_description" : "Contains parameters pertaining DHCP-driven DDNS updates",
  447. "map_item_spec": [
  448. {
  449. "item_name": "enable-updates",
  450. "item_type": "boolean",
  451. "item_optional": false,
  452. "item_default": false,
  453. "item_description" : "Enables DDNS update processing"
  454. },
  455. {
  456. "item_name": "server-ip",
  457. "item_type": "string",
  458. "item_optional": true,
  459. "item_default": "127.0.0.1",
  460. "item_description" : "IP address of kea-dhcp-ddns (IPv4 or IPv6)"
  461. },
  462. {
  463. "item_name": "server-port",
  464. "item_type": "integer",
  465. "item_optional": true,
  466. "item_default": 53001,
  467. "item_description" : "port number of kea-dhcp-ddns"
  468. },
  469. {
  470. "item_name": "sender-ip",
  471. "item_type": "string",
  472. "item_optional": true,
  473. "item_default": "",
  474. "item_description" : "IP address from which to send to kea-dhcp-ddns (IPv4 or IPv6)"
  475. },
  476. {
  477. "item_name": "sender-port",
  478. "item_type": "integer",
  479. "item_optional": true,
  480. "item_default": 0,
  481. "item_description" : "port number from which to send to kea-dhcp-ddns"
  482. },
  483. {
  484. "item_name": "max-queue-size",
  485. "item_type": "integer",
  486. "item_optional": true,
  487. "item_default": 1024,
  488. "item_description" : "maximum number of requests allowed in the send queue"
  489. },
  490. {
  491. "item_name": "ncr-protocol",
  492. "item_type": "string",
  493. "item_optional": true,
  494. "item_default": "UDP",
  495. "item_description" : "Socket protocol to use with kea-dhcp-ddns"
  496. },
  497. {
  498. "item_name": "ncr-format",
  499. "item_type": "string",
  500. "item_optional": true,
  501. "item_default": "JSON",
  502. "item_description" : "Format of the update request packet"
  503. },
  504. {
  505. "item_name": "always-include-fqdn",
  506. "item_type": "boolean",
  507. "item_optional": true,
  508. "item_default": false,
  509. "item_description": "Enable always including the FQDN option in its response"
  510. },
  511. {
  512. "item_name": "override-no-update",
  513. "item_type": "boolean",
  514. "item_optional": true,
  515. "item_default": false,
  516. "item_description": "Do update, even if client requested no updates with N flag"
  517. },
  518. {
  519. "item_name": "override-client-update",
  520. "item_type": "boolean",
  521. "item_optional": true,
  522. "item_default": false,
  523. "item_description": "Server performs an update even if client requested delegation"
  524. },
  525. {
  526. "item_name": "replace-client-name",
  527. "item_type": "boolean",
  528. "item_optional": true,
  529. "item_default": false,
  530. "item_description": "Should server replace the domain-name supplied by the client"
  531. },
  532. {
  533. "item_name": "generated-prefix",
  534. "item_type": "string",
  535. "item_optional": true,
  536. "item_default": "myhost",
  537. "item_description": "Prefix to use when generating the client's name"
  538. },
  539. {
  540. "item_name": "qualifying-suffix",
  541. "item_type": "string",
  542. "item_optional": true,
  543. "item_default": "",
  544. "item_description": "Fully qualified domain-name suffix if partial name provided by client"
  545. },
  546. ]
  547. },
  548. ],
  549. "commands": [
  550. {
  551. "command_name": "shutdown",
  552. "command_description": "Shuts down DHCPv6 server.",
  553. "command_args": [
  554. {
  555. "item_name": "pid",
  556. "item_type": "integer",
  557. "item_optional": true
  558. }
  559. ]
  560. },
  561. {
  562. "command_name": "libreload",
  563. "command_description": "Reloads the current hooks libraries.",
  564. "command_args": []
  565. }
  566. ]
  567. }
  568. }