diff options
Diffstat (limited to 'tests/topotests/pbr_topo1/r1')
-rw-r--r-- | tests/topotests/pbr_topo1/r1/linux-rules.json | 19 | ||||
-rw-r--r-- | tests/topotests/pbr_topo1/r1/pbr-interface.json | 27 | ||||
-rw-r--r-- | tests/topotests/pbr_topo1/r1/pbr-map.json | 152 | ||||
-rw-r--r-- | tests/topotests/pbr_topo1/r1/pbr-nexthop-groups.json | 95 | ||||
-rw-r--r-- | tests/topotests/pbr_topo1/r1/pbrd.conf | 100 | ||||
-rw-r--r-- | tests/topotests/pbr_topo1/r1/zebra.conf | 14 |
6 files changed, 407 insertions, 0 deletions
diff --git a/tests/topotests/pbr_topo1/r1/linux-rules.json b/tests/topotests/pbr_topo1/r1/linux-rules.json new file mode 100644 index 0000000..5af4363 --- /dev/null +++ b/tests/topotests/pbr_topo1/r1/linux-rules.json @@ -0,0 +1,19 @@ +[ + { + "iif": "r1-eth1", + "pref": "304", + "from": "4.5.6.7" + }, + { + "to": "3.4.5.0/24", + "iif": "r1-eth2", + "pref": "304", + "from": "1.2.0.0/16" + }, + { + "to": "9.9.9.9", + "iif": "r1-eth1", + "pref": "309", + "from": "all" + } +] diff --git a/tests/topotests/pbr_topo1/r1/pbr-interface.json b/tests/topotests/pbr_topo1/r1/pbr-interface.json new file mode 100644 index 0000000..e28d9fb --- /dev/null +++ b/tests/topotests/pbr_topo1/r1/pbr-interface.json @@ -0,0 +1,27 @@ +[ + { + "name":"r1-eth1", + "policy":"EVA", + "valid":true + }, + { + "name":"r1-eth2", + "policy":"DONNA", + "valid":true + }, + { + "name":"r1-eth3", + "policy":"AKIHABARA", + "valid":true + }, + { + "name":"r1-eth4", + "policy":"ASAKUSA", + "valid":true + }, + { + "name":"r1-noexist", + "policy":"NOEXIST", + "valid":false + } +] diff --git a/tests/topotests/pbr_topo1/r1/pbr-map.json b/tests/topotests/pbr_topo1/r1/pbr-map.json new file mode 100644 index 0000000..bfa0ecb --- /dev/null +++ b/tests/topotests/pbr_topo1/r1/pbr-map.json @@ -0,0 +1,152 @@ +[ + { + "name":"AKIHABARA", + "valid":false, + "policies":[ + { + "sequenceNumber":5, + "vrfUnchanged":false, + "installed":true, + "installedReason":"Valid", + "nexthopGroup": { + "name":"C", + "installed":true, + "installedInternally":1 + }, + "matchDst":"192.168.4.0\/24" + }, + { + "sequenceNumber":10, + "vrfUnchanged":false, + "installed":true, + "installedReason":"Invalid Src or Dst", + "nexthopGroup":{ + "name":"C", + "installed":true, + "installedInternally":1 + } + }, + { + "sequenceNumber":15, + "vrfUnchanged":false, + "installed":false, + "installedReason":"No Nexthops" + } + ] + }, + { + "name":"ASAKUSA", + "valid":true, + "policies":[ + { + "sequenceNumber":5, + "vrfUnchanged":false, + "installed":true, + "installedReason":"Valid", + "matchDst":"c0ff:ee::\/64", + "nexthopGroup":{ + "name":"D", + "installed":true, + "installedInternally":1 + } + }, + { + "sequenceNumber":10, + "vrfUnchanged":false, + "installed":true, + "installedReason":"Valid", + "nexthopGroup":{ + "name":"ASAKUSA10", + "installed":true, + "installedInternally":1 + }, + "matchDst":"dead:beef::\/64", + "matchMark":314159 + }, + { + "sequenceNumber":15, + "vrfUnchanged":false, + "installed":true, + "installedReason":"Valid", + "nexthopGroup":{ + "name":"ASAKUSA15", + "installed":true, + "installedInternally":1 + }, + "matchDst":"dead:beef::/64", + "matchDscp":10 + }, + { + "sequenceNumber":20, + "vrfUnchanged":false, + "installed":true, + "installedReason":"Valid", + "nexthopGroup":{ + "name":"ASAKUSA20", + "installed":true, + "installedInternally":1 + }, + "matchDst":"dead:beef::/64", + "matchEcn":1 + } + ] + }, + { + "name":"DONNA", + "valid":false, + "policies":[ + { + "sequenceNumber":5, + "vrfUnchanged":false, + "installed":false, + "installedReason":"Invalid NH-group", + "nexthopGroup":{ + "name":"B", + "installed":false, + "installedInternally":0 + }, + "matchSrc":"1.2.0.0\/16", + "matchDst":"3.4.5.0\/24" + }, + { + "sequenceNumber":10, + "vrfUnchanged":true, + "installed":false, + "installedReason":"Valid", + "matchSrc":"1.2.0.0\/16", + "matchDst":"3.4.5.0\/24" + } + ] + }, + { + "name":"EVA", + "valid":true, + "policies":[ + { + "sequenceNumber":5, + "vrfUnchanged":false, + "installed":true, + "installedReason":"Valid", + "nexthopGroup":{ + "name":"EVA5", + "installed":true, + "installedInternally":1 + }, + "matchSrc":"4.5.6.7\/32" + }, + { + "sequenceNumber":10, + "ruleNumber":309, + "vrfUnchanged":false, + "installed":true, + "installedReason":"Valid", + "nexthopGroup":{ + "name":"A", + "installed":true, + "installedInternally":1 + }, + "matchDst":"9.9.9.9\/32" + } + ] + } +] diff --git a/tests/topotests/pbr_topo1/r1/pbr-nexthop-groups.json b/tests/topotests/pbr_topo1/r1/pbr-nexthop-groups.json new file mode 100644 index 0000000..540ea28 --- /dev/null +++ b/tests/topotests/pbr_topo1/r1/pbr-nexthop-groups.json @@ -0,0 +1,95 @@ +[ + { + "name":"ASAKUSA10", + "valid":true, + "installed":true, + "nexthops":[ + { + "nexthop":"c0ff:ee::1", + "valid":true + } + ] + }, + { + "name":"A", + "valid":true, + "installed":true, + "nexthops":[ + { + "nexthop":"192.168.2.2", + "valid":true + }, + { + "nexthop":"192.168.3.2", + "valid":true + }, + { + "nexthop":"192.168.1.2", + "valid":true + } + ] + }, + { + "name":"D", + "valid":true, + "installed":true, + "nexthops":[ + { + "nexthop":"c0ff:ee::3", + "valid":true + }, + { + "nexthop":"c0ff:ee::2", + "valid":true + }, + { + "nexthop":"c0ff:ee::1", + "valid":true + } + ] + }, + { + "name":"C", + "valid":true, + "installed":true, + "nexthops":[ + { + "nexthop":"192.168.4.3", + "targetVrf":"vrf-chiyoda", + "valid":true + }, + { + "nexthop":"192.168.4.2", + "targetVrf":"vrf-chiyoda", + "valid":true + }, + { + "nexthop":"192.168.4.1", + "targetVrf":"vrf-chiyoda", + "valid":true + } + ] + }, + { + "name":"B", + "valid":false, + "installed":false, + "nexthops":[ + { + "nexthop":"192.168.50.1", + "valid":false + } + ] + }, + { + "name":"EVA5", + "valid":true, + "installed":true, + "nexthops":[ + { + "nexthop":"192.168.1.5", + "valid":true + } + ] + } +] diff --git a/tests/topotests/pbr_topo1/r1/pbrd.conf b/tests/topotests/pbr_topo1/r1/pbrd.conf new file mode 100644 index 0000000..2a5f464 --- /dev/null +++ b/tests/topotests/pbr_topo1/r1/pbrd.conf @@ -0,0 +1,100 @@ +! debug pbr +! debug pbr events +! debug pbr nht +! debug pbr zebra +# Valid table range +pbr table range 10000 50000 +# Try to set invalid bounds +pbr table range 10000 10001 +pbr table range 50000 10000 +# Reset table range +no pbr table range +! +nexthop-group A + nexthop 192.168.1.2 + nexthop 192.168.2.2 + nexthop 192.168.3.2 +! +# This one is bogus and should +# never work +nexthop-group B + nexthop 192.168.50.1 +! +nexthop-group C + nexthop 192.168.4.1 nexthop-vrf vrf-chiyoda + nexthop 192.168.4.2 nexthop-vrf vrf-chiyoda + nexthop 192.168.4.3 nexthop-vrf vrf-chiyoda +! +nexthop-group D + nexthop c0ff:ee::1 + nexthop c0ff:ee::2 + nexthop c0ff:ee::3 +! +pbr-map EVA seq 5 + match src-ip 4.5.6.7/32 + set nexthop 192.168.1.5 +! +pbr-map EVA seq 10 + match dst-ip 9.9.9.9/32 + set nexthop-group A +! +pbr-map DONNA seq 5 + match dst-ip 3.4.5.0/24 + match src-ip 1.2.0.0/16 + set nexthop-group B +! +pbr-map DONNA seq 10 + match dst-ip 3.4.5.0/24 + match src-ip 1.2.0.0/16 + set vrf unchanged +! +pbr-map AKIHABARA seq 5 + no set vrf unchanged + match dst-ip 192.168.4.0/24 + set nexthop-group C +! +pbr-map AKIHABARA seq 10 + match dst-ip 192.168.4.0/24 + no match dst-ip 192.168.4.0/24 + set nexthop-group C +! +pbr-map AKIHABARA seq 15 + set vrf noexist-vrf + match dst-ip 192.168.4.0/24 + set nexthop-group C + no set nexthop-group C +! +pbr-map ASAKUSA seq 5 + match dst-ip c0ff:ee::/64 + set nexthop-group D +! +pbr-map ASAKUSA seq 10 + match dst-ip dead:beef::/64 + match mark 314159 + set nexthop c0ff:ee::1 +! +pbr-map ASAKUSA seq 15 + match dst-ip dead:beef::/64 + match dscp af11 + set nexthop c0ff:ee::1 +! +pbr-map ASAKUSA seq 20 + match dst-ip dead:beef::/64 + match ecn 1 + set nexthop c0ff:ee::1 +! +# Interface policies +int r1-eth1 + pbr-policy EVA +! +int r1-eth2 + pbr-policy DONNA +! +int r1-eth3 + pbr-policy AKIHABARA +! +int r1-eth4 + pbr-policy ASAKUSA +! +int r1-noexist + pbr-policy NOEXIST diff --git a/tests/topotests/pbr_topo1/r1/zebra.conf b/tests/topotests/pbr_topo1/r1/zebra.conf new file mode 100644 index 0000000..2ec947c --- /dev/null +++ b/tests/topotests/pbr_topo1/r1/zebra.conf @@ -0,0 +1,14 @@ +int r1-eth0 + ip address 192.168.1.1/24 + +int r1-eth1 + ip address 192.168.2.1/24 + +int r1-eth2 + ip address 192.168.3.1/24 + +int r1-eth3 vrf vrf-chiyoda + ip address 192.168.4.1/24 + +int r1-eth4 + ipv6 address c0ff:ee::/64 |