diff --git a/cfg/p4lang-rout387.tst b/cfg/p4lang-rout387.tst
new file mode 100644
index 0000000000..05fad57eda
--- /dev/null
+++ b/cfg/p4lang-rout387.tst
@@ -0,0 +1,443 @@
+description p4lang: mldp core over pwhe
+
+addrouter r1
+int eth1 eth 0000.0000.1111 $1a$ $1b$
+int eth2 eth 0000.0000.1111 $2b$ $2a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+vrf def v2
+ rd 1:1
+ label-mode per-prefix
+ exit
+vrf def v9
+ rd 1:1
+ exit
+int lo9
+ vrf for v9
+ ipv4 addr 10.10.10.227 255.255.255.255
+ exit
+int eth1
+ vrf for v9
+ ipv4 addr 10.11.12.254 255.255.255.0
+ exit
+int eth2
+ exit
+server dhcp4 eth1
+ pool 10.11.12.1 10.11.12.99
+ gateway 10.11.12.254
+ netmask 255.255.255.0
+ dns-server 10.10.10.227
+ domain-name p4l
+ static 0000.0000.2222 10.11.12.111
+ interface eth1
+ vrf v9
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.101 255.255.255.255
+ ipv6 addr 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int lo1
+ vrf for v2
+ ipv4 addr 8.8.8.1 255.255.255.255
+ exit
+int sdn1
+ vrf for v2
+ ipv4 addr 9.9.9.1 255.255.255.0
+ mpls enable
+ mpls ldp4
+ exit
+int pweth1
+ pseudowire v2 lo1 pweompls 8.8.8.2 1234
+ vrf for v1
+ ipv4 addr 1.1.1.1 255.255.255.0
+ ipv6 addr 1234:1::1 ffff:ffff::
+ ipv6 ena
+ mpls ena
+ mpls ldp4
+ ipv4 multi mldp
+ mpls ldp6
+ ipv6 multi mldp
+ exit
+int sdn2
+ vrf for v1
+ ipv4 addr 1.1.2.1 255.255.255.0
+ ipv6 addr 1234:2::1 ffff:ffff::
+ ipv6 ena
+ mpls ena
+ mpls ldp4
+ ipv4 multi mldp
+ mpls ldp6
+ ipv6 multi mldp
+ exit
+int sdn3
+ vrf for v1
+ ipv4 addr 1.1.3.1 255.255.255.0
+ ipv6 addr 1234:3::1 ffff:ffff::
+ ipv6 ena
+ mpls ena
+ mpls ldp4
+ ipv4 multi mldp
+ mpls ldp6
+ ipv6 multi mldp
+ exit
+int sdn4
+ vrf for v1
+ ipv4 addr 1.1.4.1 255.255.255.0
+ ipv6 addr 1234:4::1 ffff:ffff::
+ ipv6 ena
+ mpls ena
+ mpls ldp4
+ ipv4 multi mldp
+ mpls ldp6
+ ipv6 multi mldp
+ exit
+server p4lang p4
+ interconnect eth2
+ export-vrf v1
+ export-vrf v2
+ export-port sdn1 1 10
+ export-port sdn2 2 10
+ export-port sdn3 3 10
+ export-port sdn4 4 10
+ export-port pweth1 dynamic
+ vrf v9
+ exit
+ipv4 route v2 8.8.8.2 255.255.255.255 9.9.9.2
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.1.2
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.2.2
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.3.2
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.4.2
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::2
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::2
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::2
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::2
+!
+
+addother r2 controller r1 v9 9080 - feature duplab mpls pwhe route
+int eth1 eth 0000.0000.2222 $1b$ $1a$
+int eth2 eth 0000.0000.2222 $2a$ $2b$
+int eth3 eth 0000.0000.2222 $3a$ $3b$
+int eth4 eth 0000.0000.2222 $4a$ $4b$
+int eth5 eth 0000.0000.2222 $5a$ $5b$
+int eth6 eth 0000.0000.2222 $6a$ $6b$
+!
+!
+
+addrouter r3
+int eth1 eth 0000.0000.3333 $3b$ $3a$
+int eth2 eth 0000.0000.3333 $7a$ $7b$
+!
+vrf def v2
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo1
+ vrf for v2
+ ipv4 addr 8.8.8.2 255.255.255.255
+ exit
+bridge 1
+ mac-learn
+ block-unicast
+ exit
+bridge 2
+ mac-learn
+ block-unicast
+ exit
+int eth1
+ bridge-gr 1
+ exit
+int eth2
+ bridge-gr 2
+ exit
+int bvi1
+ vrf for v2
+ ipv4 addr 9.9.9.2 255.255.255.0
+ mpls enable
+ mpls ldp4
+ exit
+int pweth1
+ pseudowire v2 lo1 pweompls 8.8.8.1 1234
+ bridge-gr 2
+ exit
+ipv4 route v2 8.8.8.1 255.255.255.255 9.9.9.1
+!
+
+addrouter r4
+int eth1 eth 0000.0000.4444 $4b$ $4a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.104 255.255.255.255
+ ipv6 addr 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.2.2 255.255.255.0
+ ipv6 addr 1234:2::2 ffff:ffff::
+ mpls ena
+ mpls ldp4
+ ipv4 multi mldp
+ mpls ldp6
+ ipv6 multi mldp
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.2.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.2.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.2.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:2::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:2::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:2::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.2.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv4 mroute v1 0.0.0.0 0.0.0.0 1.1.2.1
+ipv6 mroute v1 :: :: 1234:2::1
+ipv4 multi v1 join 232.2.2.2 2.2.2.106
+ipv6 multi v1 join ff06::1 4321::106
+!
+
+addrouter r5
+int eth1 eth 0000.0000.5555 $5b$ $5a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.105 255.255.255.255
+ ipv6 addr 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.3.2 255.255.255.0
+ ipv6 addr 1234:3::2 ffff:ffff::
+ mpls ena
+ mpls ldp4
+ ipv4 multi mldp
+ mpls ldp6
+ ipv6 multi mldp
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.3.1
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.3.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.3.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:3::1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:3::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:3::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.3.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv4 mroute v1 0.0.0.0 0.0.0.0 1.1.3.1
+ipv6 mroute v1 :: :: 1234:3::1
+ipv4 multi v1 join 232.2.2.2 2.2.2.106
+ipv6 multi v1 join ff06::1 4321::106
+!
+
+addrouter r6
+int eth1 eth 0000.0000.6666 $6b$ $6a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.106 255.255.255.255
+ ipv6 addr 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.4.2 255.255.255.0
+ ipv6 addr 1234:4::2 ffff:ffff::
+ mpls ena
+ mpls ldp4
+ ipv4 multi mldp
+ mpls ldp6
+ ipv6 multi mldp
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.4.1
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.4.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.4.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:4::1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:4::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:4::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.4.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+!
+
+addrouter r7
+int eth1 eth 0000.0000.7777 $7b$ $7a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.103 255.255.255.255
+ ipv6 addr 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.1.2 255.255.255.0
+ ipv6 addr 1234:1::2 ffff:ffff::
+ mpls ena
+ mpls ldp4
+ ipv4 multi mldp
+ mpls ldp6
+ ipv6 multi mldp
+ exit
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.1.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.1.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.1.1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:1::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:1::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:1::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.1.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv4 mroute v1 0.0.0.0 0.0.0.0 1.1.1.1
+ipv6 mroute v1 :: :: 1234:1::1
+ipv4 multi v1 join 232.2.2.2 2.2.2.106
+ipv6 multi v1 join ff06::1 4321::106
+!
+
+
+r1 tping 100 10 9.9.9.2 vrf v2
+r3 tping 100 10 9.9.9.1 vrf v2
+r1 tping 100 10 8.8.8.2 vrf v2
+r3 tping 100 10 8.8.8.1 vrf v2
+
+r1 tping 100 10 1.1.2.2 vrf v1
+r1 tping 100 10 1234:2::2 vrf v1
+r1 tping 100 10 1.1.3.2 vrf v1
+r1 tping 100 10 1234:3::2 vrf v1
+r1 tping 100 10 1.1.4.2 vrf v1
+r1 tping 100 10 1234:4::2 vrf v1
+r1 tping 100 10 1.1.1.2 vrf v1
+r1 tping 100 10 1234:1::2 vrf v1
+
+r7 tping 100 10 1.1.1.2 vrf v1
+r7 tping 100 10 1234:1::2 vrf v1
+r7 tping 100 10 1.1.2.2 vrf v1
+r7 tping 100 10 1234:2::2 vrf v1
+r7 tping 100 10 1.1.3.2 vrf v1
+r7 tping 100 10 1234:3::2 vrf v1
+r7 tping 100 10 1.1.4.2 vrf v1
+r7 tping 100 10 1234:4::2 vrf v1
+
+r4 tping 100 10 1.1.1.2 vrf v1
+r4 tping 100 10 1234:1::2 vrf v1
+r4 tping 100 10 1.1.2.2 vrf v1
+r4 tping 100 10 1234:2::2 vrf v1
+r4 tping 100 10 1.1.3.2 vrf v1
+r4 tping 100 10 1234:3::2 vrf v1
+r4 tping 100 10 1.1.4.2 vrf v1
+r4 tping 100 10 1234:4::2 vrf v1
+
+r5 tping 100 10 1.1.1.2 vrf v1
+r5 tping 100 10 1234:1::2 vrf v1
+r5 tping 100 10 1.1.2.2 vrf v1
+r5 tping 100 10 1234:2::2 vrf v1
+r5 tping 100 10 1.1.3.2 vrf v1
+r5 tping 100 10 1234:3::2 vrf v1
+r5 tping 100 10 1.1.4.2 vrf v1
+r5 tping 100 10 1234:4::2 vrf v1
+
+r6 tping 100 10 1.1.1.2 vrf v1
+r6 tping 100 10 1234:1::2 vrf v1
+r6 tping 100 10 1.1.2.2 vrf v1
+r6 tping 100 10 1234:2::2 vrf v1
+r6 tping 100 10 1.1.3.2 vrf v1
+r6 tping 100 10 1234:3::2 vrf v1
+r6 tping 100 10 1.1.4.2 vrf v1
+r6 tping 100 10 1234:4::2 vrf v1
+
+r1 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r1 tping 100 10 4321::101 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r1 tping 100 10 4321::103 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r1 tping 100 10 4321::104 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r1 tping 100 10 4321::105 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r1 tping 100 10 4321::106 vrf v1 sou lo0
+
+r7 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r7 tping 100 10 4321::101 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r7 tping 100 10 4321::103 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r7 tping 100 10 4321::104 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r7 tping 100 10 4321::105 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r7 tping 100 10 4321::106 vrf v1 sou lo0
+
+r4 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r4 tping 100 10 4321::101 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r4 tping 100 10 4321::103 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r4 tping 100 10 4321::104 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r4 tping 100 10 4321::105 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r4 tping 100 10 4321::106 vrf v1 sou lo0
+
+r5 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r5 tping 100 10 4321::101 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r5 tping 100 10 4321::103 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r5 tping 100 10 4321::104 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r5 tping 100 10 4321::105 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r5 tping 100 10 4321::106 vrf v1 sou lo0
+
+r6 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r6 tping 100 10 4321::101 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r6 tping 100 10 4321::103 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r6 tping 100 10 4321::104 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r6 tping 100 10 4321::105 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r6 tping 100 10 4321::106 vrf v1 sou lo0
+
+r6 tping 300 5 232.2.2.2 vrf v1 sou lo0 multi
+r6 tping 300 5 ff06::1 vrf v1 sou lo0 multi
+
+r1 dping sdn . r6 232.2.2.2 vrf v1 sou lo0
+r1 dping sdn . r6 ff06::1 vrf v1 sou lo0
diff --git a/cfg/p4lang-rout388.tst b/cfg/p4lang-rout388.tst
new file mode 100644
index 0000000000..018885f272
--- /dev/null
+++ b/cfg/p4lang-rout388.tst
@@ -0,0 +1,575 @@
+description p4lang: bier core over pwhe
+
+addrouter r1
+int eth1 eth 0000.0000.1111 $1a$ $1b$
+int eth2 eth 0000.0000.1111 $2b$ $2a$
+!
+vrf def v1
+ rd 1:1
+ exit
+vrf def v2
+ rd 1:1
+ label-mode per-prefix
+ exit
+vrf def v9
+ rd 1:1
+ exit
+int lo9
+ vrf for v9
+ ipv4 addr 10.10.10.227 255.255.255.255
+ exit
+int eth1
+ vrf for v9
+ ipv4 addr 10.11.12.254 255.255.255.0
+ exit
+int eth2
+ exit
+server dhcp4 eth1
+ pool 10.11.12.1 10.11.12.99
+ gateway 10.11.12.254
+ netmask 255.255.255.0
+ dns-server 10.10.10.227
+ domain-name p4l
+ static 0000.0000.2222 10.11.12.111
+ interface eth1
+ vrf v9
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.101 255.255.255.255
+ ipv6 addr 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+router lsrp4 1
+ vrf v1
+ router 4.4.4.1
+ bier 256 10 1
+ red conn
+ exit
+router lsrp6 1
+ vrf v1
+ router 6.6.6.1
+ bier 256 10 1
+ red conn
+ exit
+int lo1
+ vrf for v2
+ ipv4 addr 8.8.8.1 255.255.255.255
+ exit
+int sdn1
+ vrf for v2
+ ipv4 addr 9.9.9.1 255.255.255.0
+ mpls enable
+ mpls ldp4
+ exit
+int pweth1
+ pseudowire v2 lo1 pweompls 8.8.8.2 1234
+ vrf for v1
+ ipv4 addr 1.1.1.1 255.255.255.0
+ ipv6 addr 1234:1::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ exit
+int sdn2
+ vrf for v1
+ ipv4 addr 1.1.2.1 255.255.255.0
+ ipv6 addr 1234:2::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ exit
+int sdn3
+ vrf for v1
+ ipv4 addr 1.1.3.1 255.255.255.0
+ ipv6 addr 1234:3::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ exit
+int sdn4
+ vrf for v1
+ ipv4 addr 1.1.4.1 255.255.255.0
+ ipv6 addr 1234:4::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ exit
+server p4lang p4
+ interconnect eth2
+ export-vrf v1
+ export-vrf v2
+ export-port sdn1 1 10
+ export-port sdn2 2 10
+ export-port sdn3 3 10
+ export-port sdn4 4 10
+ export-port pweth1 dynamic
+ vrf v9
+ exit
+ipv4 route v2 8.8.8.2 255.255.255.255 9.9.9.2
+!
+
+addother r2 controller r1 v9 9080 - feature bier mpls pwhe route
+int eth1 eth 0000.0000.2222 $1b$ $1a$
+int eth2 eth 0000.0000.2222 $2a$ $2b$
+int eth3 eth 0000.0000.2222 $3a$ $3b$
+int eth4 eth 0000.0000.2222 $4a$ $4b$
+int eth5 eth 0000.0000.2222 $5a$ $5b$
+int eth6 eth 0000.0000.2222 $6a$ $6b$
+!
+!
+
+addrouter r3
+int eth1 eth 0000.0000.3333 $3b$ $3a$
+int eth2 eth 0000.0000.3333 $7a$ $7b$
+!
+vrf def v2
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo1
+ vrf for v2
+ ipv4 addr 8.8.8.2 255.255.255.255
+ exit
+bridge 1
+ mac-learn
+ block-unicast
+ exit
+bridge 2
+ mac-learn
+ block-unicast
+ exit
+int eth1
+ bridge-gr 1
+ exit
+int eth2
+ bridge-gr 2
+ exit
+int bvi1
+ vrf for v2
+ ipv4 addr 9.9.9.2 255.255.255.0
+ mpls enable
+ mpls ldp4
+ exit
+int pweth1
+ pseudowire v2 lo1 pweompls 8.8.8.1 1234
+ bridge-gr 2
+ exit
+ipv4 route v2 8.8.8.1 255.255.255.255 9.9.9.1
+!
+
+addrouter r4
+int eth1 eth 0000.0000.4444 $4b$ $4a$
+!
+vrf def v1
+ rd 1:1
+ exit
+router lsrp4 1
+ vrf v1
+ router 4.4.4.4
+ bier 256 10 3
+ red conn
+ exit
+router lsrp6 1
+ vrf v1
+ router 6.6.6.4
+ bier 256 10 3
+ red conn
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.104 255.255.255.255
+ ipv6 addr 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 4
+ ipv6 pim bier 4
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.2.2 255.255.255.0
+ ipv6 addr 1234:2::2 ffff:ffff::
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 3
+ ipv6 pim bier 3
+ exit
+ipv4 mroute v1 0.0.0.0 0.0.0.0 1.1.1.1
+ipv6 mroute v1 :: :: 1234:1::1
+ipv4 multi v1 join 232.2.2.2 2.2.2.106
+ipv6 multi v1 join ff06::1 4321::106
+!
+
+addrouter r5
+int eth1 eth 0000.0000.5555 $5b$ $5a$
+int eth2 eth 0000.0000.5555 $8a$ $8b$
+!
+vrf def v1
+ rd 1:1
+ exit
+router lsrp4 1
+ vrf v1
+ router 4.4.4.5
+ bier 256 10 5
+ red conn
+ exit
+router lsrp6 1
+ vrf v1
+ router 6.6.6.5
+ bier 256 10 5
+ red conn
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.105 255.255.255.255
+ ipv6 addr 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 5
+ ipv6 pim bier 5
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.3.2 255.255.255.0
+ ipv6 addr 1234:3::2 ffff:ffff::
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 5
+ ipv6 pim bier 5
+ exit
+int eth2
+ vrf for v1
+ ipv4 addr 1.1.5.1 255.255.255.0
+ ipv6 addr 1234:5::1 ffff:ffff::
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 5
+ ipv6 pim bier 5
+ exit
+ipv4 mroute v1 0.0.0.0 0.0.0.0 1.1.3.1
+ipv6 mroute v1 :: :: 1234:3::1
+ipv4 multi v1 join 232.2.2.2 2.2.2.106
+ipv6 multi v1 join ff06::1 4321::106
+!
+
+addrouter r6
+int eth1 eth 0000.0000.6666 $6b$ $6a$
+!
+vrf def v1
+ rd 1:1
+ exit
+router lsrp4 1
+ vrf v1
+ router 4.4.4.6
+ bier 256 10 6
+ red conn
+ exit
+router lsrp6 1
+ vrf v1
+ router 6.6.6.6
+ bier 256 10 6
+ red conn
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.106 255.255.255.255
+ ipv6 addr 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 6
+ ipv6 pim bier 6
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.4.2 255.255.255.0
+ ipv6 addr 1234:4::2 ffff:ffff::
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 6
+ ipv6 pim bier 6
+ exit
+!
+
+addrouter r7
+int eth1 eth 0000.0000.7777 $7b$ $7a$
+!
+vrf def v1
+ rd 1:1
+ exit
+router lsrp4 1
+ vrf v1
+ router 4.4.4.3
+ bier 256 10 3
+ red conn
+ exit
+router lsrp6 1
+ vrf v1
+ router 6.6.6.3
+ bier 256 10 3
+ red conn
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.103 255.255.255.255
+ ipv6 addr 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 3
+ ipv6 pim bier 3
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.1.2 255.255.255.0
+ ipv6 addr 1234:1::2 ffff:ffff::
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 3
+ ipv6 pim bier 3
+ exit
+ipv4 mroute v1 0.0.0.0 0.0.0.0 1.1.1.1
+ipv6 mroute v1 :: :: 1234:1::1
+ipv4 multi v1 join 232.2.2.2 2.2.2.106
+ipv6 multi v1 join ff06::1 4321::106
+!
+
+addrouter r8
+int eth1 eth 0000.0000.8888 $8b$ $8a$
+!
+vrf def v1
+ rd 1:1
+ exit
+router lsrp4 1
+ vrf v1
+ router 4.4.4.7
+ bier 256 10 7
+ red conn
+ exit
+router lsrp6 1
+ vrf v1
+ router 6.6.6.7
+ bier 256 10 7
+ red conn
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.107 255.255.255.255
+ ipv6 addr 4321::107 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 7
+ ipv6 pim bier 7
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.5.2 255.255.255.0
+ ipv6 addr 1234:5::2 ffff:ffff::
+ mpls enable
+ router lsrp4 1 ena
+ router lsrp6 1 ena
+ ipv4 pim ena
+ ipv6 pim ena
+ ipv4 pim join lo0
+ ipv6 pim join lo0
+ ipv4 pim bier 7
+ ipv6 pim bier 7
+ exit
+ipv4 mroute v1 0.0.0.0 0.0.0.0 1.1.5.1
+ipv6 mroute v1 :: :: 1234:5::1
+ipv4 multi v1 join 232.2.2.2 2.2.2.106
+ipv6 multi v1 join ff06::1 4321::106
+!
+
+
+
+r1 tping 100 10 9.9.9.2 vrf v2
+r3 tping 100 10 9.9.9.1 vrf v2
+r1 tping 100 10 8.8.8.2 vrf v2
+r3 tping 100 10 8.8.8.1 vrf v2
+
+r1 tping 100 10 1.1.2.2 vrf v1
+r1 tping 100 10 1234:2::2 vrf v1
+r1 tping 100 10 1.1.3.2 vrf v1
+r1 tping 100 10 1234:3::2 vrf v1
+r1 tping 100 10 1.1.4.2 vrf v1
+r1 tping 100 10 1234:4::2 vrf v1
+r1 tping 100 10 1.1.5.2 vrf v1
+r1 tping 100 10 1234:5::2 vrf v1
+r1 tping 100 10 1.1.1.2 vrf v1
+r1 tping 100 10 1234:1::2 vrf v1
+
+r7 tping 100 10 1.1.1.2 vrf v1
+r7 tping 100 10 1234:1::2 vrf v1
+r7 tping 100 10 1.1.2.2 vrf v1
+r7 tping 100 10 1234:2::2 vrf v1
+r7 tping 100 10 1.1.3.2 vrf v1
+r7 tping 100 10 1234:3::2 vrf v1
+r7 tping 100 10 1.1.4.2 vrf v1
+r7 tping 100 10 1234:4::2 vrf v1
+r7 tping 100 10 1.1.5.2 vrf v1
+r7 tping 100 10 1234:5::2 vrf v1
+
+r4 tping 100 10 1.1.1.2 vrf v1
+r4 tping 100 10 1234:1::2 vrf v1
+r4 tping 100 10 1.1.2.2 vrf v1
+r4 tping 100 10 1234:2::2 vrf v1
+r4 tping 100 10 1.1.3.2 vrf v1
+r4 tping 100 10 1234:3::2 vrf v1
+r4 tping 100 10 1.1.4.2 vrf v1
+r4 tping 100 10 1234:4::2 vrf v1
+r4 tping 100 10 1.1.5.2 vrf v1
+r4 tping 100 10 1234:5::2 vrf v1
+
+r5 tping 100 10 1.1.1.2 vrf v1
+r5 tping 100 10 1234:1::2 vrf v1
+r5 tping 100 10 1.1.2.2 vrf v1
+r5 tping 100 10 1234:2::2 vrf v1
+r5 tping 100 10 1.1.3.2 vrf v1
+r5 tping 100 10 1234:3::2 vrf v1
+r5 tping 100 10 1.1.4.2 vrf v1
+r5 tping 100 10 1234:4::2 vrf v1
+r5 tping 100 10 1.1.5.2 vrf v1
+r5 tping 100 10 1234:5::2 vrf v1
+
+r6 tping 100 10 1.1.1.2 vrf v1
+r6 tping 100 10 1234:1::2 vrf v1
+r6 tping 100 10 1.1.2.2 vrf v1
+r6 tping 100 10 1234:2::2 vrf v1
+r6 tping 100 10 1.1.3.2 vrf v1
+r6 tping 100 10 1234:3::2 vrf v1
+r6 tping 100 10 1.1.4.2 vrf v1
+r6 tping 100 10 1234:4::2 vrf v1
+r6 tping 100 10 1.1.5.2 vrf v1
+r6 tping 100 10 1234:5::2 vrf v1
+
+r8 tping 100 10 1.1.1.2 vrf v1
+r8 tping 100 10 1234:1::2 vrf v1
+r8 tping 100 10 1.1.2.2 vrf v1
+r8 tping 100 10 1234:2::2 vrf v1
+r8 tping 100 10 1.1.3.2 vrf v1
+r8 tping 100 10 1234:3::2 vrf v1
+r8 tping 100 10 1.1.4.2 vrf v1
+r8 tping 100 10 1234:4::2 vrf v1
+r8 tping 100 10 1.1.5.2 vrf v1
+r8 tping 100 10 1234:5::2 vrf v1
+
+r1 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r1 tping 100 10 4321::101 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r1 tping 100 10 4321::103 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r1 tping 100 10 4321::104 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r1 tping 100 10 4321::105 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r1 tping 100 10 4321::106 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.107 vrf v1 sou lo0
+r1 tping 100 10 4321::107 vrf v1 sou lo0
+
+r7 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r7 tping 100 10 4321::101 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r7 tping 100 10 4321::103 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r7 tping 100 10 4321::104 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r7 tping 100 10 4321::105 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r7 tping 100 10 4321::106 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.107 vrf v1 sou lo0
+r7 tping 100 10 4321::107 vrf v1 sou lo0
+
+r4 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r4 tping 100 10 4321::101 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r4 tping 100 10 4321::103 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r4 tping 100 10 4321::104 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r4 tping 100 10 4321::105 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r4 tping 100 10 4321::106 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.107 vrf v1 sou lo0
+r4 tping 100 10 4321::107 vrf v1 sou lo0
+
+r5 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r5 tping 100 10 4321::101 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r5 tping 100 10 4321::103 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r5 tping 100 10 4321::104 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r5 tping 100 10 4321::105 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r5 tping 100 10 4321::106 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.107 vrf v1 sou lo0
+r5 tping 100 10 4321::107 vrf v1 sou lo0
+
+r6 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r6 tping 100 10 4321::101 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r6 tping 100 10 4321::103 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r6 tping 100 10 4321::104 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r6 tping 100 10 4321::105 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r6 tping 100 10 4321::106 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.107 vrf v1 sou lo0
+r6 tping 100 10 4321::107 vrf v1 sou lo0
+
+r8 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r8 tping 100 10 4321::101 vrf v1 sou lo0
+r8 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r8 tping 100 10 4321::103 vrf v1 sou lo0
+r8 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r8 tping 100 10 4321::104 vrf v1 sou lo0
+r8 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r8 tping 100 10 4321::105 vrf v1 sou lo0
+r8 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r8 tping 100 10 4321::106 vrf v1 sou lo0
+r8 tping 100 10 2.2.2.107 vrf v1 sou lo0
+r8 tping 100 10 4321::107 vrf v1 sou lo0
+
+r6 tping 400 5 232.2.2.2 vrf v1 sou lo0 multi
+r6 tping 400 5 ff06::1 vrf v1 sou lo0 multi
+
+r1 dping sdn . r6 232.2.2.2 vrf v1 sou lo0
+r1 dping sdn . r6 ff06::1 vrf v1 sou lo0
diff --git a/cfg/p4lang-rout389.tst b/cfg/p4lang-rout389.tst
new file mode 100644
index 0000000000..d9aa3784d5
--- /dev/null
+++ b/cfg/p4lang-rout389.tst
@@ -0,0 +1,400 @@
+description p4lang: pwhe mpls pop
+
+addrouter r1
+int eth1 eth 0000.0000.1111 $1a$ $1b$
+int eth2 eth 0000.0000.1111 $2b$ $2a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+vrf def v2
+ rd 1:1
+ label-mode per-prefix
+ exit
+vrf def v9
+ rd 1:1
+ exit
+int lo9
+ vrf for v9
+ ipv4 addr 10.10.10.227 255.255.255.255
+ exit
+int eth1
+ vrf for v9
+ ipv4 addr 10.11.12.254 255.255.255.0
+ exit
+int eth2
+ exit
+server dhcp4 eth1
+ pool 10.11.12.1 10.11.12.99
+ gateway 10.11.12.254
+ netmask 255.255.255.0
+ dns-server 10.10.10.227
+ domain-name p4l
+ static 0000.0000.2222 10.11.12.111
+ interface eth1
+ vrf v9
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.101 255.255.255.255
+ ipv6 addr 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int lo1
+ vrf for v2
+ ipv4 addr 8.8.8.1 255.255.255.255
+ exit
+int sdn1
+ vrf for v2
+ ipv4 addr 9.9.9.1 255.255.255.0
+ mpls enable
+ mpls ldp4
+ exit
+int pweth1
+ pseudowire v2 lo1 pweompls 8.8.8.2 1234
+ vrf for v1
+ ipv4 addr 1.1.1.1 255.255.255.0
+ ipv6 addr 1234:1::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+int sdn2
+ vrf for v1
+ ipv4 addr 1.1.2.1 255.255.255.0
+ ipv6 addr 1234:2::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+int sdn3
+ vrf for v1
+ ipv4 addr 1.1.3.1 255.255.255.0
+ ipv6 addr 1234:3::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+int sdn4
+ vrf for v1
+ ipv4 addr 1.1.4.1 255.255.255.0
+ ipv6 addr 1234:4::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+server p4lang p4
+ interconnect eth2
+ export-vrf v1
+ export-vrf v2
+ export-port sdn1 1 10
+ export-port sdn2 2 10
+ export-port sdn3 3 10
+ export-port sdn4 4 10
+ export-port pweth1 dynamic
+ vrf v9
+ exit
+ipv4 route v2 8.8.8.2 255.255.255.255 9.9.9.2
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.1.2
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.2.2
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.3.2
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.4.2
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::2
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::2
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::2
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::2
+!
+
+addother r2 controller r1 v9 9080 - feature mpls pwhe route
+int eth1 eth 0000.0000.2222 $1b$ $1a$
+int eth2 eth 0000.0000.2222 $2a$ $2b$
+int eth3 eth 0000.0000.2222 $3a$ $3b$
+int eth4 eth 0000.0000.2222 $4a$ $4b$
+int eth5 eth 0000.0000.2222 $5a$ $5b$
+int eth6 eth 0000.0000.2222 $6a$ $6b$
+!
+!
+
+addrouter r3
+int eth1 eth 0000.0000.3333 $3b$ $3a$
+int eth2 eth 0000.0000.3333 $7a$ $7b$
+!
+vrf def v2
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo1
+ vrf for v2
+ ipv4 addr 8.8.8.2 255.255.255.255
+ exit
+bridge 1
+ mac-learn
+ block-unicast
+ exit
+bridge 2
+ mac-learn
+ block-unicast
+ exit
+int eth1
+ bridge-gr 1
+ exit
+int eth2
+ bridge-gr 2
+ exit
+int bvi1
+ vrf for v2
+ ipv4 addr 9.9.9.2 255.255.255.0
+ mpls enable
+ mpls ldp4
+ exit
+int pweth1
+ pseudowire v2 lo1 pweompls 8.8.8.1 1234
+ bridge-gr 2
+ exit
+ipv4 route v2 8.8.8.1 255.255.255.255 9.9.9.1
+!
+
+addrouter r4
+int eth1 eth 0000.0000.4444 $4b$ $4a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+access-list test4
+ deny 1 any all any all
+ permit all any all any all
+ exit
+access-list test6
+ deny all 4321:: ffff:: all 4321:: ffff:: all
+ permit all any all any all
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.104 255.255.255.255
+ ipv6 addr 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.2.2 255.255.255.0
+ ipv6 addr 1234:2::2 ffff:ffff::
+ ipv4 access-group-in test4
+ ipv6 access-group-in test6
+ no ipv4 unreachables
+ no ipv6 unreachables
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.2.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.2.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.2.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:2::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:2::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:2::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.2.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+!
+
+addrouter r5
+int eth1 eth 0000.0000.5555 $5b$ $5a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+access-list test4
+ deny 1 any all any all
+ permit all any all any all
+ exit
+access-list test6
+ deny all 4321:: ffff:: all 4321:: ffff:: all
+ permit all any all any all
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.105 255.255.255.255
+ ipv6 addr 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.3.2 255.255.255.0
+ ipv6 addr 1234:3::2 ffff:ffff::
+ ipv4 access-group-in test4
+ ipv6 access-group-in test6
+ no ipv4 unreachables
+ no ipv6 unreachables
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.3.1
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.3.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.3.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:3::1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:3::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:3::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.3.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+!
+
+addrouter r6
+int eth1 eth 0000.0000.6666 $6b$ $6a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+access-list test4
+ deny 1 any all any all
+ permit all any all any all
+ exit
+access-list test6
+ deny all 4321:: ffff:: all 4321:: ffff:: all
+ permit all any all any all
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.106 255.255.255.255
+ ipv6 addr 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.4.2 255.255.255.0
+ ipv6 addr 1234:4::2 ffff:ffff::
+ ipv4 access-group-in test4
+ ipv6 access-group-in test6
+ no ipv4 unreachables
+ no ipv6 unreachables
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.4.1
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.4.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.4.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:4::1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:4::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:4::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.4.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+!
+
+addrouter r7
+int eth1 eth 0000.0000.7777 $7b$ $7a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.103 255.255.255.255
+ ipv6 addr 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.1.2 255.255.255.0
+ ipv6 addr 1234:1::2 ffff:ffff::
+ exit
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.1.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.1.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.1.1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:1::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:1::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:1::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.1.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+!
+
+
+r1 tping 100 10 9.9.9.2 vrf v2
+r3 tping 100 10 9.9.9.1 vrf v2
+r1 tping 100 10 8.8.8.2 vrf v2
+r3 tping 100 10 8.8.8.1 vrf v2
+
+r1 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r1 tping 100 10 4321::101 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r1 tping 100 10 4321::104 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r1 tping 100 10 4321::105 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r1 tping 100 10 4321::106 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r1 tping 100 10 4321::103 vrf v1 sou lo0
+
+r7 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r7 tping 100 10 4321::101 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r7 tping 100 10 4321::103 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r7 tping 100 10 4321::104 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r7 tping 100 10 4321::105 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r7 tping 100 10 4321::106 vrf v1 sou lo0
+
+r4 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r4 tping 100 10 4321::101 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r4 tping 100 10 4321::103 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r4 tping 100 10 4321::104 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r4 tping 100 10 4321::105 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r4 tping 100 10 4321::106 vrf v1 sou lo0
+
+r5 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r5 tping 100 10 4321::101 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r5 tping 100 10 4321::103 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r5 tping 100 10 4321::104 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r5 tping 100 10 4321::105 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r5 tping 100 10 4321::106 vrf v1 sou lo0
+
+r6 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r6 tping 100 10 4321::101 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r6 tping 100 10 4321::103 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r6 tping 100 10 4321::104 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r6 tping 100 10 4321::105 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r6 tping 100 10 4321::106 vrf v1 sou lo0
+
+r1 dping sdn . r7 2.2.2.105 vrf v1 sou lo0
+r1 dping sdn . r7 4321::105 vrf v1 sou lo0
diff --git a/cfg/p4lang-rout390.tst b/cfg/p4lang-rout390.tst
new file mode 100644
index 0000000000..464bf7bf1f
--- /dev/null
+++ b/cfg/p4lang-rout390.tst
@@ -0,0 +1,400 @@
+description p4lang: pwhe mpls push
+
+addrouter r1
+int eth1 eth 0000.0000.1111 $1a$ $1b$
+int eth2 eth 0000.0000.1111 $2b$ $2a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+vrf def v2
+ rd 1:1
+ label-mode per-prefix
+ exit
+vrf def v9
+ rd 1:1
+ exit
+int lo9
+ vrf for v9
+ ipv4 addr 10.10.10.227 255.255.255.255
+ exit
+int eth1
+ vrf for v9
+ ipv4 addr 10.11.12.254 255.255.255.0
+ exit
+int eth2
+ exit
+server dhcp4 eth1
+ pool 10.11.12.1 10.11.12.99
+ gateway 10.11.12.254
+ netmask 255.255.255.0
+ dns-server 10.10.10.227
+ domain-name p4l
+ static 0000.0000.2222 10.11.12.111
+ interface eth1
+ vrf v9
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.101 255.255.255.255
+ ipv6 addr 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int lo1
+ vrf for v2
+ ipv4 addr 8.8.8.1 255.255.255.255
+ exit
+int sdn1
+ vrf for v2
+ ipv4 addr 9.9.9.1 255.255.255.0
+ mpls enable
+ mpls ldp4
+ exit
+int pweth1
+ pseudowire v2 lo1 pweompls 8.8.8.2 1234
+ vrf for v1
+ ipv4 addr 1.1.1.1 255.255.255.0
+ ipv6 addr 1234:1::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+int sdn2
+ vrf for v1
+ ipv4 addr 1.1.2.1 255.255.255.0
+ ipv6 addr 1234:2::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+int sdn3
+ vrf for v1
+ ipv4 addr 1.1.3.1 255.255.255.0
+ ipv6 addr 1234:3::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+int sdn4
+ vrf for v1
+ ipv4 addr 1.1.4.1 255.255.255.0
+ ipv6 addr 1234:4::1 ffff:ffff::
+ ipv6 ena
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+server p4lang p4
+ interconnect eth2
+ export-vrf v1
+ export-vrf v2
+ export-port sdn1 1 10
+ export-port sdn2 2 10
+ export-port sdn3 3 10
+ export-port sdn4 4 10
+ export-port pweth1 dynamic
+ vrf v9
+ exit
+ipv4 route v2 8.8.8.2 255.255.255.255 9.9.9.2
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.1.2
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.2.2
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.3.2
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.4.2
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::2
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::2
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::2
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::2
+!
+
+addother r2 controller r1 v9 9080 - feature mpls pwhe route
+int eth1 eth 0000.0000.2222 $1b$ $1a$
+int eth2 eth 0000.0000.2222 $2a$ $2b$
+int eth3 eth 0000.0000.2222 $3a$ $3b$
+int eth4 eth 0000.0000.2222 $4a$ $4b$
+int eth5 eth 0000.0000.2222 $5a$ $5b$
+int eth6 eth 0000.0000.2222 $6a$ $6b$
+!
+!
+
+addrouter r3
+int eth1 eth 0000.0000.3333 $3b$ $3a$
+int eth2 eth 0000.0000.3333 $7a$ $7b$
+!
+vrf def v2
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo1
+ vrf for v2
+ ipv4 addr 8.8.8.2 255.255.255.255
+ exit
+bridge 1
+ mac-learn
+ block-unicast
+ exit
+bridge 2
+ mac-learn
+ block-unicast
+ exit
+int eth1
+ bridge-gr 1
+ exit
+int eth2
+ bridge-gr 2
+ exit
+int bvi1
+ vrf for v2
+ ipv4 addr 9.9.9.2 255.255.255.0
+ mpls enable
+ mpls ldp4
+ exit
+int pweth1
+ pseudowire v2 lo1 pweompls 8.8.8.1 1234
+ bridge-gr 2
+ exit
+ipv4 route v2 8.8.8.1 255.255.255.255 9.9.9.1
+!
+
+addrouter r4
+int eth1 eth 0000.0000.4444 $4b$ $4a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+access-list test4
+ deny 1 any all any all
+ permit all any all any all
+ exit
+access-list test6
+ deny all 4321:: ffff:: all 4321:: ffff:: all
+ permit all any all any all
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.104 255.255.255.255
+ ipv6 addr 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.2.2 255.255.255.0
+ ipv6 addr 1234:2::2 ffff:ffff::
+ ipv4 access-group-in test4
+ ipv6 access-group-in test6
+ no ipv4 unreachables
+ no ipv6 unreachables
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.2.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.2.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.2.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:2::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:2::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:2::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.2.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.2.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:2::1
+!
+
+addrouter r5
+int eth1 eth 0000.0000.5555 $5b$ $5a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.105 255.255.255.255
+ ipv6 addr 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.3.2 255.255.255.0
+ ipv6 addr 1234:3::2 ffff:ffff::
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.3.1
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.3.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.3.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:3::1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:3::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:3::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.3.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.3.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:3::1
+!
+
+addrouter r6
+int eth1 eth 0000.0000.6666 $6b$ $6a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+access-list test4
+ deny 1 any all any all
+ permit all any all any all
+ exit
+access-list test6
+ deny all 4321:: ffff:: all 4321:: ffff:: all
+ permit all any all any all
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.106 255.255.255.255
+ ipv6 addr 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.4.2 255.255.255.0
+ ipv6 addr 1234:4::2 ffff:ffff::
+ ipv4 access-group-in test4
+ ipv6 access-group-in test6
+ no ipv4 unreachables
+ no ipv6 unreachables
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+ipv4 route v1 1.1.1.0 255.255.255.0 1.1.4.1
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.4.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.4.1
+ipv6 route v1 1234:1:: ffff:ffff:: 1234:4::1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:4::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:4::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.103 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.4.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.4.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:4::1
+!
+
+addrouter r7
+int eth1 eth 0000.0000.7777 $7b$ $7a$
+!
+vrf def v1
+ rd 1:1
+ label-mode per-prefix
+ exit
+int lo0
+ vrf for v1
+ ipv4 addr 2.2.2.103 255.255.255.255
+ ipv6 addr 4321::103 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
+ exit
+access-list test4
+ deny 1 any all any all
+ permit all any all any all
+ exit
+access-list test6
+ deny all 4321:: ffff:: all 4321:: ffff:: all
+ permit all any all any all
+ exit
+int eth1
+ vrf for v1
+ ipv4 addr 1.1.1.2 255.255.255.0
+ ipv6 addr 1234:1::2 ffff:ffff::
+ ipv4 access-group-in test4
+ ipv6 access-group-in test6
+ no ipv4 unreachables
+ no ipv6 unreachables
+ mpls enable
+ mpls ldp4
+ mpls ldp6
+ exit
+ipv4 route v1 1.1.2.0 255.255.255.0 1.1.1.1
+ipv4 route v1 1.1.3.0 255.255.255.0 1.1.1.1
+ipv4 route v1 1.1.4.0 255.255.255.0 1.1.1.1
+ipv6 route v1 1234:2:: ffff:ffff:: 1234:1::1
+ipv6 route v1 1234:3:: ffff:ffff:: 1234:1::1
+ipv6 route v1 1234:4:: ffff:ffff:: 1234:1::1
+ipv4 route v1 2.2.2.101 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.104 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.105 255.255.255.255 1.1.1.1
+ipv4 route v1 2.2.2.106 255.255.255.255 1.1.1.1
+ipv6 route v1 4321::101 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::104 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::105 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+ipv6 route v1 4321::106 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 1234:1::1
+!
+
+
+r1 tping 100 10 9.9.9.2 vrf v2
+r3 tping 100 10 9.9.9.1 vrf v2
+r1 tping 100 10 8.8.8.2 vrf v2
+r3 tping 100 10 8.8.8.1 vrf v2
+
+r1 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r1 tping 100 10 4321::101 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r1 tping 100 10 4321::104 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r1 tping 100 10 4321::105 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r1 tping 100 10 4321::106 vrf v1 sou lo0
+r1 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r1 tping 100 10 4321::103 vrf v1 sou lo0
+
+r7 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r7 tping 100 10 4321::101 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r7 tping 100 10 4321::103 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r7 tping 100 10 4321::104 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r7 tping 100 10 4321::105 vrf v1 sou lo0
+r7 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r7 tping 100 10 4321::106 vrf v1 sou lo0
+
+r4 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r4 tping 100 10 4321::101 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r4 tping 100 10 4321::103 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r4 tping 100 10 4321::104 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r4 tping 100 10 4321::105 vrf v1 sou lo0
+r4 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r4 tping 100 10 4321::106 vrf v1 sou lo0
+
+r5 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r5 tping 100 10 4321::101 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r5 tping 100 10 4321::103 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r5 tping 100 10 4321::104 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r5 tping 100 10 4321::105 vrf v1 sou lo0
+r5 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r5 tping 100 10 4321::106 vrf v1 sou lo0
+
+r6 tping 100 10 2.2.2.101 vrf v1 sou lo0
+r6 tping 100 10 4321::101 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.103 vrf v1 sou lo0
+r6 tping 100 10 4321::103 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.104 vrf v1 sou lo0
+r6 tping 100 10 4321::104 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.105 vrf v1 sou lo0
+r6 tping 100 10 4321::105 vrf v1 sou lo0
+r6 tping 100 10 2.2.2.106 vrf v1 sou lo0
+r6 tping 100 10 4321::106 vrf v1 sou lo0
+
+r1 dping sdn . r7 2.2.2.105 vrf v1 sou lo0
+r1 dping sdn . r7 4321::105 vrf v1 sou lo0
diff --git a/src/rtr.csv b/src/rtr.csv
index 963ac5d687..1dec170fc6 100644
--- a/src/rtr.csv
+++ b/src/rtr.csv
@@ -1,6 +1,6 @@
url;file;result;test
-;-;-;freeRouter v24.12.23-cur, done by sprscc13@mrn0b0dy.
--;-;-;2024-12-23 15:36:44, took 00:17:16, with 50 workers, on 3582 cases, 0 failed, 0 traces, 6 retries
+-;-;-;2024-12-23 16:14:49, took 00:15:22, with 50 workers, on 3582 cases, 0 failed, 0 traces, 3 retries
-;-;-;./rtr.bin
http://sources.freertr.org/cfg/basic01.tst;basic01.tst;success;dummy test
http://sources.freertr.org/cfg/basic02.tst;basic02.tst;success;interface with slot
diff --git a/src/rtr.html b/src/rtr.html
index 77c537175d..b0cfc5d712 100644
--- a/src/rtr.html
+++ b/src/rtr.html
@@ -10,7 +10,7 @@
tester
release: freeRouter v24.12.23-cur, done by sprscc13@mrn0b0dy.
-tested: 2024-12-23 15:36:44, took 00:17:16, with 50 workers, on 3582 cases, 0 failed, 0 traces, 6 retries
+tested: 2024-12-23 16:14:49, took 00:15:22, with 50 workers, on 3582 cases, 0 failed, 0 traces, 3 retries
jvm: ./rtr.bin
file | result | test |
diff --git a/src/rtr8.csv b/src/rtr8.csv
index 5a5ee483b1..8bf45d1b0f 100644
--- a/src/rtr8.csv
+++ b/src/rtr8.csv
@@ -1,6 +1,6 @@
url;file;result;test
-;-;-;freeRouter v24.12.23-cur, done by sprscc13@mrn0b0dy.
--;-;-;2024-12-23 15:50:01, took 00:12:55, with 50 workers, on 654 cases, 0 failed, 0 traces, 0 retries
+-;-;-;2024-12-23 16:26:50, took 00:11:39, with 50 workers, on 654 cases, 0 failed, 0 traces, 0 retries
-;-;-;./rtr.bin
http://sources.freertr.org/cfg/p4lang-acl001.tst;p4lang-acl001.tst;success;p4lang: copp
http://sources.freertr.org/cfg/p4lang-acl002.tst;p4lang-acl002.tst;success;p4lang: ingress access list
diff --git a/src/rtr8.html b/src/rtr8.html
index b0c8017e5e..e4ebeb12b1 100644
--- a/src/rtr8.html
+++ b/src/rtr8.html
@@ -10,7 +10,7 @@
tester
release: freeRouter v24.12.23-cur, done by sprscc13@mrn0b0dy.
-tested: 2024-12-23 15:50:01, took 00:12:55, with 50 workers, on 654 cases, 0 failed, 0 traces, 0 retries
+tested: 2024-12-23 16:26:50, took 00:11:39, with 50 workers, on 654 cases, 0 failed, 0 traces, 0 retries
jvm: ./rtr.bin