diff options
author | Ben Pfaff <blp@nicira.com> | 2015-10-15 20:25:26 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2015-10-15 20:25:26 -0700 |
commit | 558ec83dce80fe37f1dc10567db0e170131d1a44 (patch) | |
tree | 5f109080e4be1f50e063b4c4bb09e852598d9c03 /tests | |
parent | 38b366b1c3f5ca3f8b96782af6432f77c48cb2c9 (diff) | |
download | openvswitch-558ec83dce80fe37f1dc10567db0e170131d1a44.tar.gz |
ovn: Extend logical "next" action to jump to arbitrary flow tables.
This makes it easier to route a "destination unreachable" message
generated because of an IP routing failure, because the destination
unreachable message must itself be routed the same way.
Signed-off-by: Ben Pfaff <blp@nicira.com>
Acked-by: Justin Pettit <jpettit@nicira.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/ovn.at | 10 | ||||
-rw-r--r-- | tests/test-ovn.c | 4 |
2 files changed, 10 insertions, 4 deletions
diff --git a/tests/ovn.at b/tests/ovn.at index b8b9e36d4..9195ec432 100644 --- a/tests/ovn.at +++ b/tests/ovn.at @@ -438,9 +438,11 @@ dnl Text before => is input, text after => is expected output. AT_DATA([test-cases.txt], [[ # Positive tests. drop; => actions=drop, prereqs=1 -next; => actions=resubmit(,11), prereqs=1 +next; => actions=resubmit(,27), prereqs=1 +next(0); => actions=resubmit(,16), prereqs=1 +next(15); => actions=resubmit(,31), prereqs=1 output; => actions=resubmit(,64), prereqs=1 -outport="eth0"; next; outport="LOCAL"; next; => actions=set_field:0x5->reg7,resubmit(,11),set_field:0xfffe->reg7,resubmit(,11), prereqs=1 +outport="eth0"; next; outport="LOCAL"; next; => actions=set_field:0x5->reg7,resubmit(,27),set_field:0xfffe->reg7,resubmit(,27), prereqs=1 tcp.dst=80; => actions=set_field:80->tcp_dst, prereqs=ip.proto == 0x6 && (eth.type == 0x800 || eth.type == 0x86dd) eth.dst[40] = 1; => actions=set_field:01:00:00:00:00:00/01:00:00:00:00:00->eth_dst, prereqs=1 vlan.pcp = 2; => actions=set_field:0x4000/0xe000->vlan_tci, prereqs=vlan.tci[12] @@ -471,6 +473,10 @@ next; drop; => Syntax error at `drop' expecting action. # Missing ";": next => Syntax error at end of input expecting ';'. +next(); => Syntax error at `)' expecting small integer. +next(10; => Syntax error at `;' expecting `)'. +next(16); => "next" argument must be in range 0 to 15. + inport[1] = 1; => Cannot select subfield of string field inport. ip.proto[1] = 1; => Cannot select subfield of nominal field ip.proto. eth.dst[40] == 1; => Syntax error at `==' expecting `='. diff --git a/tests/test-ovn.c b/tests/test-ovn.c index 774ebdffa..0e9d2d2fc 100644 --- a/tests/test-ovn.c +++ b/tests/test-ovn.c @@ -1225,8 +1225,8 @@ test_parse_actions(struct ovs_cmdl_context *ctx OVS_UNUSED) char *error; ofpbuf_init(&ofpacts, 0); - error = actions_parse_string(ds_cstr(&input), &symtab, &ports, 11, 64, - &ofpacts, &prereqs); + error = actions_parse_string(ds_cstr(&input), &symtab, &ports, + 16, 16, 10, 64, &ofpacts, &prereqs); if (!error) { struct ds output; |