{ # group and class declaration config # authoritative is mandatory "Dhcp4": { "option-def": [ # options { "space": "dhcp4", "name": "mysystem", "code": 250, "type": "string" }, { "space": "dhcp4", "name": "myversion", "code": 251, "type": "uint16" } ], "client-classes": [ # superclass declaration /// match: option dhcp.mysystem { "name": "foobar", "option-data": [ { "space": "dhcp4", "name": "myversion", "code": 251, "data": "1" } ] }, # simple subclass declaration /// subclass selector 'version1' { "name": "sub#foobar#0", "option-data": [ { "space": "dhcp4", "name": "myversion", "code": 251, "data": "1" } ], /// from: match option dhcp.mysystem /// data: 'version1' "test": "option[250].hex == 'version1'" }, # option setting subclass declaration /// subclass selector 'version2' { "name": "sub#foobar#1", "option-data": [ { "space": "dhcp4", "name": "myversion", "code": 251, "data": "2" } ], /// from: match option dhcp.mysystem /// data: 'version2' "test": "option[250].hex == 'version2'", "next-server": "10.10.10.1" }, # complex subclass declaration /// subclass selector 'version3' { "name": "sub#foobar#2", "option-data": [ { "space": "dhcp4", "name": "myversion", "code": 251, "data": "3" } ], "next-server": "192.168.0.1", /// from: match option dhcp.mysystem /// data: 'version3' "test": "option[250].hex == 'version3'" }, # another simple subclass declaration /// subclass selector 'version10' { "name": "sub#foobar#3", "option-data": [ { "space": "dhcp4", "name": "myversion", "code": 251, "data": "1" } ], /// from: match option dhcp.mysystem /// data: 'version10' "test": "option[250].hex == 'version10'", "next-server": "10.10.10.1" } ] } }