dhcp6.spec 16 KB

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