dhcp6.spec 23 KB

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