dhcp6.spec 21 KB

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