create loop int

set int state loop0 up
set int ip addr loop0 10.10.10.10/24

packet-generator new {
  name transit-deny
  limit 1
  node ip4-input
  size 64-64
  data {
    UDP: 1.2.3.4 -> 2.2.2.2
    UDP: 3000 -> 3001
    length 128 checksum 0 incrementing 1
  }
}

packet-generator new {
  name transit-allow
  limit 1
  node ip4-input
  size 64-64
  data {
    UDP: 1.1.1.1 -> 2.2.2.2
    UDP: 3000 -> 3001
    length 128 checksum 0 incrementing 1
  }
}

packet-generator new {
  name transit-allow-from-excemption
  limit 1
  node ip4-input
  size 64-64
  data {
    UDP: 11.11.12.13 -> 2.2.2.2
    UDP: 6000 -> 6001
    length 128 checksum 0 incrementing 1
  }
}

packet-generator new {
  name for-us-allow-from-excemption
  limit 1
  node ip4-input
  size 64-64
  data {
    UDP: 11.11.12.13 -> 10.10.10.10
    UDP: 6000 -> 6001
    length 128 checksum 0 incrementing 1
  }
}

packet-generator new {
  name for-us-allow
  limit 1
  node ip4-input
  size 64-64
  data {
    UDP: 1.1.1.1 -> 10.10.10.10
    UDP: 3000 -> 3001
    length 128 checksum 0 incrementing 1
  }
}

tr add pg-input 100

set int ip addr pg0 10.10.11.10/24

set interface ip source-check pg0 strict

ip route add 1.1.1.1/32 via 10.10.11.11 pg0
ip route add 2.2.2.2/32 via 10.10.10.11 loop0

ip urpf-accept 11.11.0.0/16

#set interface ip source-check pg0 strict del
#set interface ip source-check pg0 loose

#ip urpf-accept del 11.11.0.0/16