<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi</p>
<p>Thank you for explain. Of course you are right, I replace string
with int and got similar functionality. For me it doesn't matter.<br>
</p>
<p>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.<br>
</p>
<p>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.</p>
<p>Also, name of dynamic proto will be more filled with meaning if
use hostname or routerid.<br>
</p>
<div class="moz-cite-prefix">08.10.2024 18:07, Ondrej Zajicek пишет:<br>
</div>
<blockquote type="cite" cite="mid:ZwVKwJ97COjM1mxj@feanor">
<pre wrap="" class="moz-quote-pre">On Tue, Oct 08, 2024 at 12:16:42PM +0300, Mikhail Mayorov wrote:
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">Hi!
I try use CASE and string variable and a have error.... I checked User's
guide 2.0 <a class="moz-txt-link-rfc2396E" href="https://bird.network.cz/?get_doc&f=bird.html&v=20"><https://bird.network.cz/?get_doc&f=bird.html&v=20></a>.... CASE use
operator ~. This operator applies to string variables. What am I doing
wrong?
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">
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] <a class="moz-txt-link-freetext" href="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</a>
[2] <a class="moz-txt-link-freetext" href="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</a>
</pre>
<blockquote type="cite">
<pre wrap="" class="moz-quote-pre">[root@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
</pre>
</blockquote>
<pre wrap="" class="moz-quote-pre">
</pre>
</blockquote>
<div class="moz-signature">-- <br>
<div class="moz-signature">
<pre>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
</pre>
<img moz-do-not-send="false"
src="cid:part1.DTbJI2Dl.YhnYkwUb@tagan.ru" alt="pg19.ru"
width="152" height="67">
</div>
</div>
</body>
</html>