Unknown instruction 8574 in same (~) error when nesting if's

Maria Matejka jan.matejka at nic.cz
Sat Apr 20 18:22:04 CEST 2019


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


More information about the Bird-users mailing list