{
# group and class declaration config
# options
"Dhcp6": {
"option-def": [
{
"space": "dhcp6",
"name": "mysystem",
"code": 1250,
"type": "string"
},
{
"space": "dhcp6",
"name": "myversion",
"code": 1251,
"type": "uint16"
},
{
"space": "dhcp6",
"name": "myvalue",
"code": 1252,
"type": "string"
}
],
"client-classes": [
# superclass declaration
/// match: option dhcp6.mysystem
{
"name": "foobar",
"option-data": [
{
"space": "dhcp6",
"name": "myversion",
"code": 1251,
"data": "1"
}
]
},
# simple subclass declaration
/// subclass selector 'version1'
{
"name": "sub#foobar#0",
"option-data": [
{
"space": "dhcp6",
"name": "myversion",
"code": 1251,
"data": "1"
}
],
/// from: match option dhcp6.mysystem
/// data: 'version1'
"test": "option[1250].hex == 'version1'"
},
# option setting subclass declaration
/// subclass selector 'version2'
{
"name": "sub#foobar#1",
"option-data": [
{
"space": "dhcp6",
"name": "myversion",
"code": 1251,
"data": "2"
},
{
"space": "dhcp6",
"name": "myvalue",
"code": 1252,
"data": "foo"
}
],
/// from: match option dhcp6.mysystem
/// data: 'version2'
"test": "option[1250].hex == 'version2'"
},
# complex subclass declaration
/// subclass selector 'version3'
{
"name": "sub#foobar#2",
"option-data": [
{
"space": "dhcp6",
"name": "myversion",
"code": 1251,
"data": "3"
},
{
"space": "dhcp6",
"name": "myvalue",
"code": 1252,
"data": "bar"
}
],
/// from: match option dhcp6.mysystem
/// data: 'version3'
"test": "option[1250].hex == 'version3'"
},
# another simple subclass declaration
/// subclass selector 'version10'
{
"name": "sub#foobar#3",
"option-data": [
{
"space": "dhcp6",
"name": "myversion",
"code": 1251,
"data": "1"
},
{
"space": "dhcp6",
"name": "myvalue",
"code": 1252,
"data": "foo"
}
],
/// from: match option dhcp6.mysystem
/// data: 'version10'
"test": "option[1250].hex == 'version10'"
}
]
}
}