Thank you, Darren, 

That does indeed at least pass the parser stage (actual device testing will 
have to wait). It is a pity that a regex is not yet available. I saw it was 
planned for 2.6 release?

If I can build on the previous request, this part is more challenging, since it 
relays on a custom vendor address space, specifically, DOCSIS-specific 
sub-options in Option 17. Assume I have a "device-type" sub-option defined as 
follows

"option-def": [
      {
        "space": "vendor-4491",
        "name": "device-type",
        "code": 2,
        "type": "string"
      }]

and then I would like to classify based on it to translate the ISC compare 
statement of " match if (option docsis.device-type) = 'EROUTER'". Following 
your example below 

"test": "substring(vendor-4491.option[2].hex,-1,7) == 'EROUTER'" 

Should be theoretically possible, but I do not think the parser likes it much: 
[substring(vendor-4491.option[2].hex,-1,7) == 'EROUTER'] error: 
<string>:1.17-21: syntax error, unexpected integer, expecting [ or . at 
(/etc/kea/kea-dhcp6.conf:141:17)

Regards

Marek

-----Original Message-----
From: Kea-users <[email protected]> On Behalf Of Darren Ankney
Sent: Friday, April 19, 2024 3:08 PM
To: Kea user's list <[email protected]>
Subject: Re: [Kea-users] Converting an ISC IPv6 class definition to Kea syntax

Hi Marek,

That is pseudo code generated by KeaMA as Kea doesn't support regex statements 
like ISC DHCP did.  There was probably an additional line output that linked to 
some GL issue explaining.  Something like this might work (I've not tested it):

"client-classes": [
  {
    "name": "rpd-1",
    "test": "substring(relay6[1].option[18].hex,-1,9) == 'Md1:0/0.0'"
  }
]

Thank you,
Darren Ankney

On Fri, Apr 19, 2024 at 4:27 PM Marek Hajduczenia <[email protected]> 
wrote:
>
> Dear colleagues,
>
>
>
> I ran into a bit of a challenge with the conversion of the config from ISC to 
> Kea, namely this little class definition gem:
>
>
>
> class "rpd-1" { match if v6relay( 1, option dhcp6.interface-id ) ~= 
> "Md1:0/0.0$"; }
>
>
>
> What it does, as you can tell, it matches on the inner relay interface-id 
> field in the DHCPv6 messages. Nothing fancy, it does work as tested.
>
>
>
> I have been looking at the available options and nothing comes to mind 
> so I used keama for automatic conversion and it generated something 
> pretty complex, as follows. Additionally, it is commented out, so I 
> assume this is a non-working configuration element (?)
>
>
>
>     "client-classes": [
>
>       {
>
>         "name": "rpd-1"
>
> //      /// match if (v6relay(1, option dhcp6.interface-id)) ~= 'Md1:0/0.0$'
>
> //      "match-if": {
>
> //        "regex-match": {
>
> //          "left": {
>
> //            "v6relay": {
>
> //              "relay": 1,
>
> //              "relay-option": {
>
> //                "option": {
>
> //                  "universe": "dhcp6",
>
> //                  "name": "interface-id",
>
> //                  "code": 18
>
> //                }
>
> //              }
>
> //            }
>
> //          },
>
> //          "right": "Md1:0/0.0$"
>
> //        }
>
> //      }
>
>       }]
>
>
>
> If I try to remove the comment markup and apply it with Kea 2.4.1, the parser 
> does not like the “match-if” statement for some reason. I cannot locate it in 
> the list of Kea statements, so not sure why it would be generated by keama. 
> However, the bigger question is on how to build a Kea-compatible match on 
> such embedded message. Any help here would be really appreciated.
>
>
>
> Apr 19 18:54:20 server-kea-node1 systemd[1]: Started Kea DHCPv6 Service.
>
> Apr 19 18:54:20 server-kea-node1 kea-dhcp6[2099]: 2024-04-19 
> 18:54:20.202 ERROR [kea-dhcp6.dhcp6/2099.841038976] DHCP6_INIT_FAIL 
> failed to initialize Kea server: configuration error using file 
> '/etc/kea/kea-dhcp6.conf': /etc/kea/kea-dhcp6.conf:118.9-18: syntax 
> error, unexpected constant string, expecting }
>
> Apr 19 18:54:20 server-kea-node1 systemd[1]: 
> isc-kea-dhcp6-server.service: Main process exited, code=exited, 
> status=1/FAILURE
>
> Apr 19 18:54:20 server-kea-node1 systemd[1]: isc-kea-dhcp6-server.service: 
> Failed with result 'exit-code'.
>
>
>
> Regards
>
>
>
> Marek
>
> --
> ISC funds the development of this software with paid support subscriptions. 
> Contact us at https://www.isc.org/contact/ for more information.
>
> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>
> Kea-users mailing list
> [email protected]
> https://lists.isc.org/mailman/listinfo/kea-users
--
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.

Kea-users mailing list
[email protected]
https://lists.isc.org/mailman/listinfo/kea-users

-- 
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.

Kea-users mailing list
[email protected]
https://lists.isc.org/mailman/listinfo/kea-users

Reply via email to