create packet-generator interface pg0
create packet-generator interface pg1

pipe create

ip table add 1
set int ip table pg1 1
set int ip table pipe0.1 1

set int ip address pg0 192.168.0.1/24
set int ip address pg1 192.168.1.1/24

set int ip address pipe0.0 10.0.0.1/24
set int ip address pipe0.1 10.0.0.2/24

set int state pg0 up
set int state pg1 up
set int state pipe0 up

create ipsec tunnel local-ip 10.0.0.1 remote-ip 10.0.0.2 local-spi 100 remote-spi 101 local-crypto-key A11E51E5B1E0 remote-crypto-key A11E51E5B1E0 crypto-alg aes-cbc-128

set int state ipsec0 up
set int unnum ipsec0 use pg0

create ipsec tunnel local-ip 10.0.0.2 remote-ip 10.0.0.1 local-spi 101 remote-spi 100 tx-table 1 local-crypto-key A11E51E5B1E0 remote-crypto-key A11E51E5B1E0 crypto-alg aes-cbc-128 

set int state ipsec1 up
set int ip table ipsec1 1
set int unnum ipsec1 use pg1

ip route add 192.168.1.0/24 via ipsec0
set ip arp pg1 192.168.1.2 00:11:22:33:44:55
ip route add table 1 192.168.0.0/24 via ipsec1
set ip arp pg0 192.168.0.2 00:11:22:33:44:66

trace add pg-input 100

packet-generator new {
  name ipsec1
  limit 1
  rate 1e4
  node ip4-input
  interface pg0
  size 100-100
  data {
   UDP: 192.168.0.2 -> 192.168.1.2
   UDP: 4321 -> 1234
    length 72
    incrementing 100
  }
}
packet-generator new {
  name ipsec2
  limit 1
  rate 1e4
  node ip4-input
  interface pg1
  size 100-100
  data {
   UDP: 192.168.1.2 -> 192.168.0.2
   UDP: 4321 -> 1234
    length 72
    incrementing 100
  }
}