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@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@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.