]> git.ipfire.org Git - thirdparty/bird.git/blobdiff - doc/bird.conf.example2
Filter: Fix function comparison
[thirdparty/bird.git] / doc / bird.conf.example2
index 6e8988b9f55e7adaa013568edfd719a6e4bb2a4f..815651c7c182e07c33919c207cdca2bf9f76cc82 100644 (file)
@@ -14,25 +14,29 @@ ipv6 table master6;
 ipv4 table mcast4;
 ipv6 table mcast6;
 
+ipv4 table mtab4;
+ipv6 table mtab6;
+
+vpn4 table vpntab4;
+vpn6 table vpntab6;
+
+vpn4 table vpn4mc;
+vpn6 table vpn6mc;
+
 flow4 table flowtab4;
 flow6 table flowtab6;
 
 
 protocol device {
-       scan time 10;
 }
 
 protocol kernel kernel4 {
-       scan time 20;
-
        ipv4 {
                export all;
        };
 }
 
 protocol kernel kernel6 {
-       scan time 20;
-
        ipv6 {
                export all;
        };
@@ -55,6 +59,25 @@ protocol static static6 {
        route 2001:db8:1:1::/64 via fe80::ec9b:67ff:fe60:fd5d % ve1;
 }
 
+# VPNv4 routes with MPLS labels
+protocol static statvpn4 {
+       vpn4;
+
+       route 10:10 10.20.0.0/24 via 192.168.1.2 mpls 210;
+       route 10:10 10.20.1.0/24 via 192.168.1.2 mpls 210;
+       route 10:20 10.20.0.0/24 via 192.168.1.2 mpls 220;
+       route 10:20 10.20.1.0/24 via 192.168.1.2 mpls 220;
+}
+
+protocol static statvpn6 {
+       vpn6;
+
+       route 10:10 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/210;
+       route 10:10 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/210;
+       route 10:20 2001:db8:20:10::/64 via 2001:db8:1:1::10 mpls 200/220;
+       route 10:20 2001:db8:20:11::/64 via 2001:db8:1:1::10 mpls 200/220;
+}
+
 # RFC 5575 flow specification
 protocol static flowstat4 {
        flow4;
@@ -70,35 +93,35 @@ protocol static flowstat4 {
                length 2048..65535;
                dscp = 63;
                fragment dont_fragment, is_fragment || !first_fragment;
-       } drop;
+       };
 
        route flow4 {
                dst 11.0.0.0/8;
                proto = 0x12;
                sport > 0x5678 && < 0x9abc || 0xdef0 || 0x1234,0x5678,0x9abc..0xdef0;
                dport = 50;
-               tcp flags 0xabcd/0xbbdd;
-       } drop;
+               tcp flags 0x000/0xf00;
+       };
 
        route flow4 {
                dst 12.0.0.0/32;
-               tcp flags ! 0 / 0x9999;
-       } drop;
+               tcp flags ! 0/0x999;
+       };
 
        route flow4 {
                dst 220.0.254.0/24;
-               tcp flags 0x99 / 0x9999;
-       } drop;
+               tcp flags 0x99/0x999;
+       };
 
        route flow4 {
                dst 220.0.254.192/28;
-               tcp flags !0xffff / 0xFFFF;
-       } drop;
+               tcp flags ! 0xfff/0xfff;
+       };
 
        route flow4 {
                dst 15.0.0.0/8;
-               tcp flags !0x9999/0x9999;
-       } drop;
+               tcp flags ! 0x999/0x999;
+       };
 }
 
 protocol static flowstat6 {
@@ -113,7 +136,7 @@ protocol static flowstat6 {
                tcp flags 0x03/0x0f, !0/0xff || 0x33/0x33;
                fragment !is_fragment || !first_fragment;
                label 0xaaaa/0xaaaa && 0x33/0x33;
-       } drop;
+       };
 
        route flow6 {
                dst fec0:1122:3344:5566::1/128;
@@ -122,7 +145,7 @@ protocol static flowstat6 {
                dport = 50;
                sport > 24 && < 30 || = 40 || = 50 || = 60 || >= 70 && <= 80;
                tcp flags 0x3/0x3 && 0x0/0xc;
-       } drop;
+       };
 }
 
 
@@ -140,9 +163,7 @@ protocol pipe {
        export where source = RTS_OSPF;
 }
 
-protocol ospf2 ospf4 {
-#      ecmp;
-
+protocol ospf v2 ospf4 {
        ipv4 {
                import all;
 #              export where source = RTS_STATIC;
@@ -157,9 +178,7 @@ protocol ospf2 ospf4 {
 }
 
 
-protocol ospf3 ospf6 {
-#      ecmp;
-
+protocol ospf v3 ospf6 {
        ipv6 {
                import all;
 #              export where source = RTS_STATIC;
@@ -214,6 +233,52 @@ protocol bgp {
 #              next hop address 2001:db8:1:1::1;
        };
 
+       # IPv4 with MPLS labels (1/4)
+       ipv4 mpls {
+               # explicit IPv4 table
+               table mtab4;
+               import all;
+               export all;
+       };
+
+       # IPv6 with MPLS labels (2/4)
+       ipv6 mpls {
+               # explicit IPv6 table
+               table mtab6;
+               import all;
+               export all;
+               # allows IPv4 next hops (6PE)
+               # extended next hop;
+       };
+
+       # VPNv4 with MPLS labels (1/128)
+        vpn4 mpls {
+               # connects to vpntab4 table by default
+               import all;
+               export all;
+       };
+
+       # VPNv6 with MPLS labels (2/128)
+        vpn6 mpls {
+               # connects to vpntab6 table by default
+               import all;
+               export all;
+       };
+
+       # VPNv4 multicast topology (1/129)
+        vpn4 multicast {
+               table vpn4mc;
+               import all;
+               export all;
+       };
+
+       # VPNv6 multicast topology (2/129)
+        vpn6 multicast {
+               table vpn6mc;
+               import all;
+               export all;
+       };
+
        # IPv4 Flowspec (1/133)
        flow4 {
                # connects to flowtab4 table by default