case & string

Mikhail Mayorov mm at tagan.ru
Wed Oct 9 12:32:42 CEST 2024


Hi

Thank you for explain. Of course you are right, I replace string with 
int and got similar functionality. For me it doesn't matter.

I already wrote about dynamic BGP protocols and a import/export filter 
in which I need to understand with whom I have a session for correct 
filtering. It would be very useful to add to route attributes 
"routerid", "source ip" or "BGP.hostname". This functionality is similar 
to the "proto" route attribute, but if use bgp dynamic protocols 
creating attribute "proto" is meaningless.

I find сustom attributes have to be first declared by "attribute" global 
option. This suits me, but I can't find ways to assign the required value.

Also, name of dynamic proto will be more filled with meaning if use 
hostname or routerid.

08.10.2024 18:07, Ondrej Zajicek пишет:
> On Tue, Oct 08, 2024 at 12:16:42PM +0300, Mikhail Mayorov wrote:
>> Hi!
>>
>> I try use CASE and string variable and a have error.... I checked User's
>> guide 2.0<https://bird.network.cz/?get_doc&f=bird.html&v=20>.... CASE use
>> operator ~.  This operator applies to string variables. What am I doing
>> wrong?
> Hi
>
> Seems like a discrepancy between functionality and documentation.
> The description of 'case' [1] says:
>
>     The expression after case can be of any type which can be on the left
>     side of the ~ operator and anything that could be a member of a set is
>     allowed
>
> But in fact, only the second part is true, only values that could be
> members of sets are allowed (with the exception of prefixes, as prefix
> sets are implemented in a different way). According to [2], that are:
>
> int | pair | quad | ip | prefix | ec | lc | enum
>
> We probably should fix 'case' for prefixes. Looking at it now, there is
> also vpnrd, which is allowed in set, but undocumented, and not in switch.
>
> In principle, we could extend sets / case to contain strings / bytesrings,
> but i do not really see use case.
>
> [1]https://bird.network.cz/?get_doc&v=20&f=bird-5.html#control-structures
> [2]https://bird.network.cz/?get_doc&v=20&f=bird-5.html#type-set
>
>
>> [root at wine etc]# cat 123.conf && bird -c ./123.conf -p
>> function teststring(string myvar) -> bool
>>    {
>>    case myvar {
>>      "text A" : print "A"; return true;
>>      "text B" : print "B"; return true;
>>      "text C" : print "C"; return true;
>>      else : print "unknown"; return false;
>>      }
>>    }
>> bird: ./123.conf:4:12 syntax error, unexpected TEXT
>>
>> -- 
>>
>> Regards,
>> Mikhail Mayorov
-- 

Regards,
Mikhail Mayorov
PG19, founder and inspirer
B.Bulvarnaya 11, Taganrog, Russia, 347913
tel work: +7 8634 431431 (ext 101)
tel mobile: +7 905 4309006

pg19.ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20241009/c729328b/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: logo.png
Type: image/png
Size: 11613 bytes
Desc: not available
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20241009/c729328b/attachment.png>


More information about the Bird-users mailing list