Unsupported empty lists - why?

Nico Schottelius nico.schottelius at ungleich.ch
Wed Sep 18 15:35:25 CEST 2019


Update: the syntax error actually came from a different line, my
mistake.

I was able to syntactically correct create a config using

define net_prefer_to_init7 = false;

and then later

  if net ~ net_prefer_to_init7 then {
    bgp_local_pref  = pref_high;
  }



Nico Schottelius <nico.schottelius at ungleich.ch> writes:

> Hey Ondrej,
>
> I just tried this with IPv6 as follows and get a "funny" error message:
>
> bird> conf
> Reading configuration from /etc/bird/bird6.conf
> /etc/bird/bird6.conf:48:32 net_unused: set-incompatible type
> bird>
>
> config:
>
> define net_unused = ::/128;
> ...
> define net_prefer_to_init7 = [ net_unused ];
>
> When I change this to directly including the network:
>
> bird> conf
> Reading configuration from /etc/bird/bird6.conf
> /etc/bird/bird6.conf:53:13 syntax error
> bird>
>
> config:
>
> define net_prefer_to_init7 = [ ::/128 ];
>
> As far as I can see, this is a valid route and I wanted to use this for
> empty IPv6 sets.
>
> Am I doing something completely wrong here?
>
>
>
> Ondrej Zajicek <santiago at crfreenet.org> writes:
>
>> On Wed, Sep 18, 2019 at 02:46:15PM +0900, Nico Schottelius wrote:
>>>
>>> Hello,
>>>
>>> being a bird 1.6 user (Debian), I find myself often
>>> in the situation that I'd like to define a variable in either bird.conf
>>> or bird6.conf and have a general.conf that defines the filters used in
>>> both protocols.
>>
>> Hello
>>
>> The reason why we do not support empty sets is because we have more types
>> of sets (prefix sets, integer sets, ...) and they have even different
>> implementation. With empty set literal it would be hard to decide which
>> type of set it should be.
>>
>> Trivial workaround is to add some prefix that is invalid anyway, like
>> 0.0.0.0/32.


--
Your Swiss, Open Source and IPv6 Virtual Machine. Now on www.datacenterlight.ch.


More information about the Bird-users mailing list