case & string
Mikhail Mayorov
mm at tagan.ru
Thu Oct 10 18:30:10 CEST 2024
Hi!
I try make route reflector using bird for 20 BGP routers in my network.
4 of them have many RIB and have fullview with over millions routes. But
over needs only local ASN's routes and default.
I was try configure dynamic peers . But I can't known context of which
the filter is executed. I need to identify the neighbor with whom I have
a session.
To do this, I was forced to abandon dynamic neighbors and create a
separate config for each neighbor. This is certainly not difficult, but
very inconvenient. Moreover, the filtering process is also very
important for marking routes by different communities. I didn't find any
mechanisms to do this with dynamic neighbors. Probably this option is
not very popular with the community and it is rarely used. Or maybe I'm
just being stupid. :)
10.10.2024 00:13, Alexander Zubkov пишет:
> 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 <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 <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
>
--
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/20241010/44214b93/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/20241010/44214b93/attachment.png>
More information about the Bird-users
mailing list