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.

Reply via email to