concatdx4.out revision 1.1 1 1.1 christos {
2 1.1 christos # concat data expression
3 1.1 christos # empty configs are not accepted by Kea
4 1.1 christos "Dhcp4": {
5 1.1 christos "valid-lifetime": 1800,
6 1.1 christos "client-classes": [
7 1.1 christos # use substring in a reductible match
8 1.1 christos /// match: concat('domain=', suffix(option dhcp.host-name, 3))
9 1.1 christos {
10 1.1 christos "name": "reductible"
11 1.1 christos },
12 1.1 christos /// subclass selector 'domain=com'
13 1.1 christos {
14 1.1 christos "name": "sub#reductible#0",
15 1.1 christos /// from: match concat('domain=', suffix(option dhcp.host-name, 3))
16 1.1 christos /// data: 'domain=com'
17 1.1 christos "test": "concat('domain=', substring(option[12].hex,-3,all)) == 'domain=com'"
18 1.1 christos },
19 1.1 christos # reduce literals too
20 1.1 christos {
21 1.1 christos "name": "literal",
22 1.1 christos /// from: match if (option dhcp.host-name) = (concat('www.', concat('example.', 'com')))
23 1.1 christos "test": "option[12].hex == 'www.example.com'"
24 1.1 christos }
25 1.1 christos ],
26 1.1 christos "option-data": [
27 1.1 christos // # raw
28 1.1 christos // {
29 1.1 christos // "space": "dhcp4",
30 1.1 christos // "name": "host-name",
31 1.1 christos // "code": 12,
32 1.1 christos // "csv-format": false,
33 1.1 christos // "expression": {
34 1.1 christos // "concat": {
35 1.1 christos // "left": "www.",
36 1.1 christos // "right": {
37 1.1 christos // "option": {
38 1.1 christos // "universe": "dhcp",
39 1.1 christos // "name": "domain-name",
40 1.1 christos // "code": 15
41 1.1 christos // }
42 1.1 christos // }
43 1.1 christos // }
44 1.1 christos // }
45 1.1 christos // }
46 1.1 christos ]
47 1.1 christos }
48 1.1 christos }
49