{
# multiple groups declaration config
# options
"Dhcp4": {
"option-def": [
{
"space": "dhcp4",
"name": "mysystem",
"code": 250,
"type": "string"
},
{
"space": "dhcp4",
"name": "myversion",
"code": 251,
"type": "uint16"
},
{
"space": "dhcp4",
"name": "myvalue",
"code": 252,
"type": "string"
}
],
"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"
},
# positions of delaration do not matter
{
"space": "dhcp4",
"name": "myvalue",
"code": 252,
"data": "ten"
}
],
/// from: match option dhcp.mysystem
/// data: 'version10'
"test": "option[250].hex == 'version10'",
"next-server": "10.10.10.1"
},
# and a final subclass declaration
/// subclass selector 'version20'
{
"name": "sub#foobar#4",
"option-data": [
{
"space": "dhcp4",
"name": "myversion",
"code": 251,
"data": "20"
},
{
"space": "dhcp4",
"name": "myvalue",
"code": 252,
"data": "twenty"
}
],
"next-server": "192.168.0.20",
/// from: match option dhcp.mysystem
/// data: 'version20'
"test": "option[250].hex == 'version20'"
}
]
}
}