Unknown instruction 8574 in same (~) error when nesting if's
Hello, I am using bird 1.6.3 (from debian) and if I use the following filter, bird "crashes" when issueing the "conf" command: Apr 19 21:29:53 router1 bird: Reconfiguring Apr 19 21:29:53 router1 bird: Unknown instruction 8574 in same (~) filter: filter to_netstream { if(is_inside_ungleich()) then { if(net !~ net_prefer_netstream) then { bgp_path.prepend(myas); bgp_path.prepend(myas); bgp_path.prepend(myas); print "Policy: changed bgppath ", net, " ", bgp_path, " for init7"; } accept; } reject; } If I change the filter to filter to_netstream { if(is_inside_ungleich()) then { # if(net !~ net_prefer_netstream) then { # bgp_path.prepend(myas); # bgp_path.prepend(myas); # bgp_path.prepend(myas); # print "Policy: changed bgppath ", net, " ", bgp_path, " for init7"; # } accept; } reject; } this problem does not occur. Is this a bug in bird or am I using it "incorrectly"? Best, Nico Relevant context: version: -------------------------------------------------------------------------------- [17:14:30] router1.place5:/var/log# dpkg -l | grep bird ii bird 1.6.3-2 amd64 Internet Routing Daemon [17:18:49] router1.place5:/var/log# config: -------------------------------------------------------------------------------- define net_ungleich = [ 2a0a:e5c0::/29+, 2a09:2940::/29+ ]; define net_prefer_netstream = [ 2a09:2940::/29+ ]; define net_rickbakker = [ 2001:678:a10::/48+, 2a0d:1a44::/32+, 2a0d:1a47::/32+, 2a0d:2406::/39+, 2a0d:2406:e00::/39+, 2a07:a904:1000::/40+ ]; function is_ungleich() { if net ~ net_ungleich then return true; return false; } function is_from_rickbakker() { if net ~ net_rickbakker && bgp_path.first = 204526 then return true; return false; } # what we have inside dcl function is_inside_ungleich() { if(is_ungleich()) then return true; if(is_from_rickbakker()) then return true; return false; } protocol bgp netstream { local as 209898; neighbor 2a01:330:1000:1002::1 as 15517; password "xxx"; import filter from_netstream; export filter to_netstream; } -------------------------------------------------------------------------------- -- Your Swiss, Open Source and IPv6 Virtual Machine. Now on www.datacenterlight.ch.
Hello! This is a bug that was fixed in commit da65a3d898fde0ce567782d86919a66e29916ed7 Please upgrade to v1.6.5 (or better to v2.0.4). Maria On 4/20/19 5:19 PM, Nico Schottelius wrote:
Hello,
I am using bird 1.6.3 (from debian) and if I use the following filter, bird "crashes" when issueing the "conf" command:
Apr 19 21:29:53 router1 bird: Reconfiguring Apr 19 21:29:53 router1 bird: Unknown instruction 8574 in same (~)
filter:
filter to_netstream { if(is_inside_ungleich()) then { if(net !~ net_prefer_netstream) then { bgp_path.prepend(myas); bgp_path.prepend(myas); bgp_path.prepend(myas); print "Policy: changed bgppath ", net, " ", bgp_path, " for init7"; } accept; }
reject; }
If I change the filter to
filter to_netstream { if(is_inside_ungleich()) then { # if(net !~ net_prefer_netstream) then { # bgp_path.prepend(myas); # bgp_path.prepend(myas); # bgp_path.prepend(myas); # print "Policy: changed bgppath ", net, " ", bgp_path, " for init7"; # } accept; }
reject; }
this problem does not occur.
Is this a bug in bird or am I using it "incorrectly"?
Best,
Nico
Relevant context:
version: --------------------------------------------------------------------------------
[17:14:30] router1.place5:/var/log# dpkg -l | grep bird ii bird 1.6.3-2 amd64 Internet Routing Daemon [17:18:49] router1.place5:/var/log#
config: -------------------------------------------------------------------------------- define net_ungleich = [ 2a0a:e5c0::/29+, 2a09:2940::/29+ ];
define net_prefer_netstream = [ 2a09:2940::/29+ ];
define net_rickbakker = [ 2001:678:a10::/48+, 2a0d:1a44::/32+, 2a0d:1a47::/32+, 2a0d:2406::/39+, 2a0d:2406:e00::/39+, 2a07:a904:1000::/40+ ];
function is_ungleich() { if net ~ net_ungleich then return true; return false; }
function is_from_rickbakker() { if net ~ net_rickbakker && bgp_path.first = 204526 then return true; return false; }
# what we have inside dcl function is_inside_ungleich() { if(is_ungleich()) then return true; if(is_from_rickbakker()) then return true;
return false; }
protocol bgp netstream { local as 209898; neighbor 2a01:330:1000:1002::1 as 15517; password "xxx";
import filter from_netstream; export filter to_netstream; }
--------------------------------------------------------------------------------
-- Your Swiss, Open Source and IPv6 Virtual Machine. Now on www.datacenterlight.ch.
Hey Maria, thanks for the quick reply. I have seen that 1.6.5 is included in Debian testing and will pull it from there. Are there any plans to work with Debian or other distributions to include 2.0.4 in the packaging system? Best, Nico Maria Matejka <jan.matejka@nic.cz> writes:
Hello! This is a bug that was fixed in commit da65a3d898fde0ce567782d86919a66e29916ed7
Please upgrade to v1.6.5 (or better to v2.0.4).
Maria
On 4/20/19 5:19 PM, Nico Schottelius wrote:
Hello,
I am using bird 1.6.3 (from debian) and if I use the following filter, bird "crashes" when issueing the "conf" command:
Apr 19 21:29:53 router1 bird: Reconfiguring Apr 19 21:29:53 router1 bird: Unknown instruction 8574 in same (~)
filter:
filter to_netstream { if(is_inside_ungleich()) then { if(net !~ net_prefer_netstream) then { bgp_path.prepend(myas); bgp_path.prepend(myas); bgp_path.prepend(myas); print "Policy: changed bgppath ", net, " ", bgp_path, " for init7"; } accept; }
reject; }
If I change the filter to
filter to_netstream { if(is_inside_ungleich()) then { # if(net !~ net_prefer_netstream) then { # bgp_path.prepend(myas); # bgp_path.prepend(myas); # bgp_path.prepend(myas); # print "Policy: changed bgppath ", net, " ", bgp_path, " for init7"; # } accept; }
reject; }
this problem does not occur.
Is this a bug in bird or am I using it "incorrectly"?
Best,
Nico
Relevant context:
version: --------------------------------------------------------------------------------
[17:14:30] router1.place5:/var/log# dpkg -l | grep bird ii bird 1.6.3-2 amd64 Internet Routing Daemon [17:18:49] router1.place5:/var/log#
config: -------------------------------------------------------------------------------- define net_ungleich = [ 2a0a:e5c0::/29+, 2a09:2940::/29+ ];
define net_prefer_netstream = [ 2a09:2940::/29+ ];
define net_rickbakker = [ 2001:678:a10::/48+, 2a0d:1a44::/32+, 2a0d:1a47::/32+, 2a0d:2406::/39+, 2a0d:2406:e00::/39+, 2a07:a904:1000::/40+ ];
function is_ungleich() { if net ~ net_ungleich then return true; return false; }
function is_from_rickbakker() { if net ~ net_rickbakker && bgp_path.first = 204526 then return true; return false; }
# what we have inside dcl function is_inside_ungleich() { if(is_ungleich()) then return true; if(is_from_rickbakker()) then return true;
return false; }
protocol bgp netstream { local as 209898; neighbor 2a01:330:1000:1002::1 as 15517; password "xxx";
import filter from_netstream; export filter to_netstream; }
--------------------------------------------------------------------------------
-- Your Swiss, Open Source and IPv6 Virtual Machine. Now on www.datacenterlight.ch.
-- Your Swiss, Open Source and IPv6 Virtual Machine. Now on www.datacenterlight.ch.
participants (2)
-
Maria Matejka -
Nico Schottelius