Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-08-24 Thread Ondrej Zajicek
On Fri, Aug 25, 2023 at 04:20:04AM +0200, Alexander Zubkov wrote: > And I forgot to ask about kw_sym. "kw_sym: FROM_HEX" definition is not > needed? To provide fallback for someone using such name in config > already. I plan to add all keywords to kw_sym (through M4 macro) in some followup commit,

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-08-24 Thread Alexander Zubkov via Bird-users
And I forgot to ask about kw_sym. "kw_sym: FROM_HEX" definition is not needed? To provide fallback for someone using such name in config already. On Fri, Aug 25, 2023 at 3:55 AM Alexander Zubkov wrote: > > Hi, > > Good news, thanks! > > On Thu, Aug 24, 2023 at 7:11 PM Ondrej Zajicek wrote: > > >

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-08-24 Thread Alexander Zubkov via Bird-users
Hi, Good news, thanks! On Thu, Aug 24, 2023 at 7:11 PM Ondrej Zajicek wrote: > > On Thu, Jul 27, 2023 at 03:38:27PM +0200, Alexander Zubkov wrote: > > Hi, > > > > Have you had a chance to look at all this? > > Hi > > Sorry for keeping you wait, i finally got to this patchset and merged it. No p

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-08-24 Thread Ondrej Zajicek
On Thu, Jul 27, 2023 at 03:38:27PM +0200, Alexander Zubkov wrote: > Hi, > > Have you had a chance to look at all this? Hi Sorry for keeping you wait, i finally got to this patchset and merged it. I did some changes: 1) Removal of support for multiline string literals - the patch is simple but i

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-07-27 Thread Alexander Zubkov via Bird-users
Hi, Have you had a chance to look at all this? On Fri, Jul 7, 2023 at 12:55 AM Alexander Zubkov wrote: > > Hi, > > And the final patch for the bytestring documentation. Also slightly > modified radv documentation patch - added a semicolon in the end of > the example. > I actually would prefer th

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-07-06 Thread Alexander Zubkov via Bird-users
Hi, And the final patch for the bytestring documentation. Also slightly modified radv documentation patch - added a semicolon in the end of the example. I actually would prefer the "binary" name for the type more than "bytestring". Or maybe you have something else on your mind. So if you would als

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-29 Thread Alexander Zubkov via Bird-users
Patch for RAdv documentation for a new custom option. I was also thinking about the new bytestring type. I needed tho change BYTESTRING -> BYTETEXT to avoid collision. But probably the better variant would be to name the new type for example "binary", it might sound better. What do you think? As f

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-29 Thread Alexander Zubkov via Bird-users
On Tue, Jun 27, 2023 at 2:13 AM Alexander Zubkov wrote: > > On Mon, Jun 26, 2023 at 5:54 PM Alexander Zubkov wrote: > > > > On Mon, Jun 26, 2023 at 5:43 PM Ondrej Zajicek > > wrote: > > > > > > On Mon, Jun 26, 2023 at 03:24:47AM +0200, Alexander Zubkov wrote: > > > > On Sat, Jun 24, 2023 at 3:1

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-26 Thread Alexander Zubkov via Bird-users
On Mon, Jun 26, 2023 at 5:54 PM Alexander Zubkov wrote: > > On Mon, Jun 26, 2023 at 5:43 PM Ondrej Zajicek wrote: > > > > On Mon, Jun 26, 2023 at 03:24:47AM +0200, Alexander Zubkov wrote: > > > On Sat, Jun 24, 2023 at 3:16 PM Ondrej Zajicek > > > wrote: > > > > > > > > On Sat, Jun 24, 2023 at 0

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-26 Thread Alexander Zubkov via Bird-users
On Mon, Jun 26, 2023 at 5:43 PM Ondrej Zajicek wrote: > > On Mon, Jun 26, 2023 at 03:24:47AM +0200, Alexander Zubkov wrote: > > On Sat, Jun 24, 2023 at 3:16 PM Ondrej Zajicek > > wrote: > > > > > > On Sat, Jun 24, 2023 at 02:20:03AM +0200, Alexander Zubkov wrote: > > > > > Yes, the original idea

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-26 Thread Ondrej Zajicek
On Mon, Jun 26, 2023 at 03:24:47AM +0200, Alexander Zubkov wrote: > On Sat, Jun 24, 2023 at 3:16 PM Ondrej Zajicek wrote: > > > > On Sat, Jun 24, 2023 at 02:20:03AM +0200, Alexander Zubkov wrote: > > > > Yes, the original idea there was to add bytestring as a data type, make > > > > hex() a regula

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-26 Thread Ondrej Zajicek
On Mon, Jun 26, 2023 at 03:01:55AM +0200, Alexander Zubkov wrote: > Attached the patch with the new syntax for custom options and to use > WALK_LIST. Thanks, merged: https://gitlab.nic.cz/labs/bird/-/commit/ccfa48a24aea64d1a844fb97cfe15965197c0908 -- Elen sila lumenn' omentielvo Ondrej 'Santi

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-25 Thread Alexander Zubkov via Bird-users
On Sat, Jun 24, 2023 at 3:16 PM Ondrej Zajicek wrote: > > On Sat, Jun 24, 2023 at 02:20:03AM +0200, Alexander Zubkov wrote: > > > Yes, the original idea there was to add bytestring as a data type, make > > > hex() a regular (filter) function instead of special function-like > > > syntax, and add e

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-25 Thread Alexander Zubkov via Bird-users
Hello! On Sat, Jun 24, 2023 at 3:30 PM Maria Matejka wrote: > > Hello! > > On 6/24/23 15:13, Ondrej Zajicek wrote: > > On Thu, Jun 15, 2023 at 03:57:10AM +0200, Alexander Zubkov wrote: > > Also, I think that the current realization in bird relies on the fact > that lexer would not have symbols pa

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-25 Thread Alexander Zubkov via Bird-users
Attached the patch with the new syntax for custom options and to use WALK_LIST. On Sat, Jun 24, 2023 at 3:32 PM Ondrej Zajicek wrote: > > On Sat, Jun 24, 2023 at 02:03:08AM +0200, Alexander Zubkov wrote: > > On Fri, Jun 23, 2023, 17:47 Ondrej Zajicek wrote: > > > The only objection from me is th

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-25 Thread Maria Matejka via Bird-users
Hello! On 6/24/23 15:13, Ondrej Zajicek wrote: On Thu, Jun 15, 2023 at 03:57:10AM +0200, Alexander Zubkov wrote: Also, I think that the current realization in bird relies on the fact that lexer would not have symbols parsed in advance, i.e. that further mentions of the keyword should return CF

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-25 Thread Ondrej Zajicek
On Thu, Jun 15, 2023 at 03:57:10AM +0200, Alexander Zubkov wrote: > Hi, > > While waiting for the fate of the previous patches, I was thinking > about that thing about using keywords as symbols. So here is another > longread. :) > > Now it is not possible to mix a keyword and a keyword as a symbo

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-25 Thread Ondrej Zajicek
On Sat, Jun 24, 2023 at 02:03:08AM +0200, Alexander Zubkov wrote: > On Fri, Jun 23, 2023, 17:47 Ondrej Zajicek wrote: > > The only objection from me is that 'other type' option name is kind of > > non-descriptive, does not indicate it is related to RA options (nor it is > > implicated by context).

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-25 Thread Ondrej Zajicek
On Sat, Jun 24, 2023 at 02:20:03AM +0200, Alexander Zubkov wrote: > > Yes, the original idea there was to add bytestring as a data type, make > > hex() a regular (filter) function instead of special function-like > > syntax, and add equivalent of 'expr' grammar term for other data types. > > > > I

Void values in variables (Was: Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex)

2023-06-25 Thread Ondrej Zajicek
On Sat, Jun 24, 2023 at 03:13:11PM +0200, Ondrej Zajicek wrote: > > But if I try to call "eval role()" from cli, I get an error: "runtime > > error", and the daemon logs this: > > > > bird: filters, line 2: Argument 1 of VAR_INIT must be of type int, got type > > void > > > > So it looks like it

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-23 Thread Alexander Zubkov via Bird-users
On Fri, Jun 23, 2023, 18:30 Ondrej Zajicek wrote: > On Wed, Jun 14, 2023 at 12:40:47AM +0200, Alexander Zubkov wrote: > > Hi, > > > > Please look at these patches: > > > > bytestring-hex-prefix.patch - syntax with "hex:" prefix > > I allowed mixed colons with no-divider there, so hex:12:345678:90

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-23 Thread Alexander Zubkov via Bird-users
On Fri, Jun 23, 2023, 17:47 Ondrej Zajicek wrote: > On Mon, Jun 12, 2023 at 01:08:15PM +0200, Alexander Zubkov via Bird-users > wrote: > > Hi, > > > > Currently one can use only a predefined set of advertised options in radv > > protocol, that are supported by bird's configuration. It would be >

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-23 Thread Ondrej Zajicek
On Wed, Jun 14, 2023 at 12:40:47AM +0200, Alexander Zubkov wrote: > Hi, > > Please look at these patches: > > bytestring-hex-prefix.patch - syntax with "hex:" prefix > I allowed mixed colons with no-divider there, so hex:12:345678:90 is > allowed. As there is a distinguishing prefix here, this sh

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-23 Thread Ondrej Zajicek
On Mon, Jun 12, 2023 at 01:08:15PM +0200, Alexander Zubkov via Bird-users wrote: > Hi, > > Currently one can use only a predefined set of advertised options in radv > protocol, that are supported by bird's configuration. It would be > convenient to be able to specify other possible options at leas

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-22 Thread Ondrej Zajicek
On Thu, Jun 22, 2023 at 09:04:11PM +0200, Alexander Zubkov wrote: > Hi, > > Please give some feedback. Hi Sorry for letting you wait, will look at it tomorrow. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santi...@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-22 Thread Alexander Zubkov via Bird-users
Hi, Please give some feedback. On Thu, Jun 15, 2023 at 3:57 AM Alexander Zubkov wrote: > > Hi, > > While waiting for the fate of the previous patches, I was thinking > about that thing about using keywords as symbols. So here is another > longread. :) > > Now it is not possible to mix a keyword

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-14 Thread Alexander Zubkov via Bird-users
Hi, While waiting for the fate of the previous patches, I was thinking about that thing about using keywords as symbols. So here is another longread. :) Now it is not possible to mix a keyword and a keyword as a symbol together. Here is what I mean. With current master bird if I use config: prot

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-13 Thread Alexander Zubkov via Bird-users
Hi, Please look at these patches: bytestring-hex-prefix.patch - syntax with "hex:" prefix I allowed mixed colons with no-divider there, so hex:12:345678:90 is allowed. As there is a distinguishing prefix here, this should not be a problem. Empty bytestrings are allowed too: "hex:" bytestring-hex

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-13 Thread Ondrej Zajicek
On Tue, Jun 13, 2023 at 05:34:18PM +0200, Alexander Zubkov wrote: > On Tue, Jun 13, 2023, 16:07 Ondrej Zajicek wrote: > > > We agreed on keeping existing format for suffiently long hex bytestrings, > > using hex: prefix for bytestrings of any length, and adding hex("...") / > > base64("...") as or

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-13 Thread Alexander Zubkov via Bird-users
On Tue, Jun 13, 2023, 16:07 Ondrej Zajicek wrote: > On Mon, Jun 12, 2023 at 05:55:34PM +0200, Alexander Zubkov wrote: > > BTW, if we put a string literal inside the brackets, we can mimic a > > function call without dirty lexer/parser hacks: > > hex("...") > > > > Or maybe you have already agreed

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-13 Thread Ondrej Zajicek
On Mon, Jun 12, 2023 at 05:55:34PM +0200, Alexander Zubkov wrote: > BTW, if we put a string literal inside the brackets, we can mimic a > function call without dirty lexer/parser hacks: > hex("...") > > Or maybe you have already agreed on something? Hi We agreed on keeping existing format for su

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Maria Matejka via Bird-users
Well, we haven't agreed yet. We're gonna meet tomorrow so there may be a discussion about this in person and then we'll come with some agreement. Anyway, thank you for all the input! Maria On 12 June 2023 17:55:34 CEST, Alexander Zubkov wrote: >Some additional ideas for decorating binary stri

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Alexander Zubkov via Bird-users
Some additional ideas for decorating binary strings so that they do not resemble other statements: @hex(...) bin:hex(...) BTW, if we put a string literal inside the brackets, we can mimic a function call without dirty lexer/parser hacks: hex("...") Or maybe you have already agreed on something?

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Ondrej Zajicek
On Mon, Jun 12, 2023 at 03:32:20PM +0200, Maria Matejka wrote: > We can simply change the lexer state externally from the parser as soon as > the hex( prefix is seen, and provide the result directly from the lexer. > > This way, we can allow all the syntaxes like hex(de-ad-be-ef), > hex(de:ad:b

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Alexander Zubkov via Bird-users
On Mon, Jun 12, 2023 at 3:17 PM Ondrej Zajicek wrote: > On Mon, Jun 12, 2023 at 01:08:15PM +0200, Alexander Zubkov via Bird-users > wrote: > > Hi, > > > > The main concern is that a 6-byte bytestring conflicts with the MAC > address > > representation. Bird does not have the type for it currently

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Maria Matejka via Bird-users
We can simply change the lexer state externally from the parser as soon as the hex( prefix is seen, and provide the result directly from the lexer. This way, we can allow all the syntaxes like hex(de-ad-be-ef), hex(de:ad:be:ef), hex(de ad be ef) or even hex(dea:db-eef) just by ignoring nonalnu

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Ondrej Zajicek
On Mon, Jun 12, 2023 at 01:08:15PM +0200, Alexander Zubkov via Bird-users wrote: > Hi, > > The main concern is that a 6-byte bytestring conflicts with the MAC address > representation. Bird does not have the type for it currently, but who > knows, it might need it in the future. So we might need s

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Alexander Zubkov via Bird-users
On Mon, Jun 12, 2023 at 3:04 PM Toke Høiland-Jørgensen wrote: > Alexander Zubkov via Bird-users writes: > > > Hello, Maria! > > > > You suggestion for blob syntax seems good to me. I think I can try to > > prepare patches for that. Only one concern is that it could break some > > current configu

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Alexander Zubkov via Bird-users
Hello! I'm not sure if it is possible to parse something like: hex(1234) both as a function call and a special bytestring depending on the symbol presense. I thought such bytestrings is needed to be defined in the lexer as a single expression for the whole sequence, because if you pass it upper

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Ondrej Zajicek
On Mon, Jun 12, 2023 at 02:40:42PM +0200, Maria Matejka via Bird-users wrote: > Hello! > > I think using hex() and base64() with adding these two tokens to the > "kw_sym:" non-terminal. This way, no current config should break. I would prefer hex:XX:YY:... to hex(XX:YY:...) to emphasize it is lex

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Toke Høiland-Jørgensen via Bird-users
Alexander Zubkov via Bird-users writes: > Hello, Maria! > > You suggestion for blob syntax seems good to me. I think I can try to > prepare patches for that. Only one concern is that it could break some > current configuration files, if they have functions with such names. Maybe > it is better to

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Maria Matejka via Bird-users
Hello! I think using hex() and base64() with adding these two tokens to the "kw_sym:" non-terminal. This way, no current config should break. Also it may be handy for both hex() and base64() to accept any number of whitespace inside the argument, to enable configs like hex(de ad be ef) or ot

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Alexander Zubkov via Bird-users
Hello, Maria! You suggestion for blob syntax seems good to me. I think I can try to prepare patches for that. Only one concern is that it could break some current configuration files, if they have functions with such names. Maybe it is better to use some other "brackets" to make it less possible t

Re: [PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Maria Matejka via Bird-users
Hello! This looks like a clever solution for such a problem. Thank you for the patch! Regarding the bytestring syntax, what about adding some syntax like hex(deadbeef12345678) or even base64(...) where the user could write byte blob of any length? Maria On 6/12/23 13:08, Alexander Zubkov

[PATCH] adding custom options in radv protocol, strict ipv6 regex

2023-06-12 Thread Alexander Zubkov via Bird-users
Hi, Currently one can use only a predefined set of advertised options in radv protocol, that are supported by bird's configuration. It would be convenient to be able to specify other possible options at least manually as a blob so one should not wait until it is supported in the code, released, et