case & string

Alexander Zubkov green at qrator.net
Wed Oct 9 23:13:06 CEST 2024


Hi,

There is "from" attribute that should contain the IP address of a remote
router received via bgp protocol. But if you want to know the router ID - I
do not know about such attribute.

On Wed, Oct 9, 2024 at 12:38 PM Mikhail Mayorov <mm at tagan.ru> wrote:

> 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> <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
>
> [image: pg19.ru]
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://trubka.network.cz/pipermail/bird-users/attachments/20241009/eacef3ba/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/eacef3ba/attachment.png>


More information about the Bird-users mailing list