summaryrefslogtreecommitdiff
path: root/tests/learn.at
Commit message (Collapse)AuthorAgeFilesLines
* ofp-util, ofp-parse: Break up into many separate modules.Ben Pfaff2018-02-131-1/+1
| | | | | | | | | | | | ofp-util had been far too large and monolithic for a long time. This commit breaks it up into units that make some logical sense. It also moves the pieces of ofp-parse that were specific to each unit into the relevant unit. Most of this commit is just moving code around. Signed-off-by: Ben Pfaff <blp@ovn.org> Reviewed-by: Yifeng Sun <pkusunyifeng@gmail.com>
* learn: improve test caseWilliam Tu2018-02-011-0/+38
| | | | | | | | | Current learn test cases use only ovs-ofctl add/del flows. The patch add a new test case for learn with delete_learned and limit option enabled. Signed-off-by: William Tu <u9012063@gmail.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* flow: Add some L7 payload data to most L4 protocols that accept it.Ben Pfaff2018-01-271-20/+20
| | | | | | | | | | | | | | This makes traffic generated by flow_compose() look slightly more realistic. It requires lots of updates to tests, but at least the tests themselves should be slightly more realistic too. At the same time, add --l7 and --l7-len options to ofproto/trace to allow users to specify the amount or contents of payloads that they want. Suggested-by: Brad Cowie <brad@cowie.nz> Signed-off-by: Ben Pfaff <blp@ovn.org> Tested-by: Yifeng Sun <pkusunyifeng@gmail.com> Reviewed-by: Yifeng Sun <pkusunyifeng@gmail.com>
* ovs-ofctl: New option "--no-stats" for "ovs-ofctl dump-flows".Ben Pfaff2017-06-141-39/+20
| | | | | | | | | | | It's pretty common to want to omit statistics from output, to make it easier to read. This commit adds an ovs-ofctl option to make that easy. A lot of the OVS internal tests could use this, too, in place of ofctl_strip. This commit adopts it for a subset. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Aaron Conole <aconole@redhat.com>
* ofp-actions: Add limit to learn action.Daniele Di Proietto2017-03-161-0/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a new feature to the learn actions: the possibility to limit the number of learned flows. To be compatible with users of the old learn action, a new structure is introduced as well as a new OpenFlow raw action number. There's a small corner case when we have to delete the ukey. This happens when: * The learned rule has expired (or has been deleted). * The ukey that learned the rule is still in the datapath. * No packets hit the datapath flow recently. In this case we cannot relearn the rule (because there are no new packets), and the actions might depend on the learn execution, so the only option is to delete the ukey. I don't think this has big performance implications since it's done only for ukey with no traffic. We could also slowpath it, but that will cause an action upcall and the correct datapath actions will be installed later by a revalidator. If we delete the ukey, the next upcall will be a miss upcall and that will immediatedly install the correct datapath flow. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* ofp-parse: Allow match field names in actions and brackets in matches.Jarno Rajahalme2017-01-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Allow using match field names in addition to the canonical register names in actions (including 'load', 'move', 'push', 'pop', 'output', 'multipath', 'bundle_load', and 'learn'). Allow also leaving out the trailing '[]' to indicate full field. These changes allow simpler syntax similar to 'set_field' to be used also elsewhere. Correspondingly, allow the '[start..end]' syntax to be used in matches in addition to the more explicit 'value/mask' notation. For example, to match on the value 2 of the bits 14..15 of NXM_NX_REG0, the match could include: ... reg0[14..15]=2 ... instead of ... reg0=0x8000/0xc000 ... Note that only contiguous masks can be specified with the bracket notation. Signed-off-by: Jarno Rajahalme <jarno@ovn.org> Acked-by: Ben Pfaff <blp@ovn.org>
* Change some old references to nicira-ext.h.Thadeu Lima de Souza Cascardo2016-09-301-1/+1
| | | | | | | | Some of these references are not valid anymore, as things were moved to either meta-flow.h or ofp-actions.c. Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@redhat.com> Signed-off-by: Ben Pfaff <blp@ovn.org>
* netdev-*: Do not use dp_packet_pad() in recv() functions.Daniele Di Proietto2016-07-291-12/+12
| | | | | | | | | | | | | | | | | | | All the netdevs used by dpif-netdev (except for netdev-dpdk) have a dp_packet_pad() call in the receive function, probably because the userspace datapath couldn't handle properly short packets. This doesn't appear to be the case anymore. This commit removes the call to have a more consistent behavior with the kernel datapath. All the testsuite changes in this commit adjust the expectations for packet lengths in flow dumps and other stats. There's only one fix in ovn.at: one of the test_ip() functions generated an incomplete udp packet, which was not a problem until now, because of the padding. Signed-off-by: Daniele Di Proietto <diproiettod@vmware.com> Acked-by: Ben Pfaff <blp@ovn.org>
* Add support for extended netdev statistics based on RFC 2819.mweglicx2016-05-061-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Implementation of new statistics extension for DPDK ports: - Add new counters definition to netdev struct and open flow, based on RFC2819. - Initialize netdev statistics as "filtered out" before passing it to particular netdev implementation (because of that change, statistics which are not collected are reported as filtered out, and some unit tests were modified in this respect). - New statistics are retrieved using experimenter code and are printed as a result to ofctl dump-ports. - New counters are available for OpenFlow 1.4+. - Add new vendor id: INTEL_VENDOR_ID. - New statistics are printed to output via ofctl only if those are present in reply message. - Add new file header: include/openflow/intel-ext.h which contains new statistics definition. - Extended statistics are implemented only for dpdk-physical and dpdk-vhost port types. - Dpdk-physical implementation uses xstats to collect statistics. - Dpdk-vhost implements only part of statistics (RX packet sized based counters). Signed-off-by: Michal Weglicki <michalx.weglicki@intel.com> [blp@ovn.org made software devices more consistent] Signed-off-by: Ben Pfaff <blp@ovn.org>
* ofproto-macros: Change STRIP_XIDS from macro to shell function.Ben Pfaff2016-01-281-3/+3
| | | | | | | | There's no need for this to be a macro; shell functions are conceptually cleaner and make the generated testsuite smaller. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Jarno Rajahalme <jarno@ovn.org>
* tests: Change ADD_OF_PORTS from macro to shell function.Ben Pfaff2016-01-281-3/+3
| | | | | | | | | This reduces the size of the generated testsuite and makes it possible to pass arguments that vary at runtime instead of at the time of translation from .at to shell script. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Jarno Rajahalme <jarno@ovn.org>
* metaflow: Extend size of mf_value to 128 bytes.Jesse Gross2015-06-251-1/+1
| | | | | | | | | | | Tunnel metadata can be substantially larger than our existing fields (up to 124 bytes in a single Geneve option) so this extends the size of the data that we can handle with metaflow fields. This also breaks a few tests that assume that their max size is also the maximum that can be handled in a field. Signed-off-by: Jesse Gross <jesse@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* learn: Improve error reporting.Ben Pfaff2015-05-291-0/+14
| | | | | | | | parse_int_string() returns an error if the field overflows, not if there is a bad hex digit. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
* tests: Use the 'LARGE_MSECS' variation of time/warp at more places.Gurucharan Shetty2014-07-151-3/+1
| | | | | | | | | | | commit 8661af798(timeval: Provide a variation for time/warp command) provided a variation of time/warp command to prevent multiple invocations of time/warp. That commit changed only the users in bfd.at and cfm.at as they used it the most. Since we haven't had any negative confequences because of the change, add the remaining users. Signed-off-by: Gurucharan Shetty <gshetty@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* Implement learned flow deletion.Ben Pfaff2014-06-121-2/+136
| | | | | | | | | | | | | | | | | | | | When a flow with a "learn" action is deleted, one often wants the flows that it created (the "learned flows") to be deleted as well. This commit makes that possible. I am aware of a race condition that could lead to a learned flow not being properly deleted. Suppose thread A deletes a flow with a "learn" action. Meanwhile, thread B obtains the actions for this flow and translates and executes them. Thread B could obtain the actions for the flow before it is deleted, but execute them after the "learn" flow and its learned flows are deleted. The result is that the flow created by thread B persists despite its "learn" flow having been deleted. This race can and should be fixed, but I think that this commit is worth reviewing without it. VMware-BZ: #1254021 Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Thomas Graf <tgraf@suug.ch> Acked-by: Ethan Jackson <ethan@nicira.com>
* Remove --enable-of14 option because the implementation is now safe.Ben Pfaff2014-05-141-4/+4
| | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
* learn.at: Fix a shell syntaxYAMAMOTO Takashi2014-04-101-1/+1
| | | | | | | | Fix a botch in commit 7f12bdcc. ("learn.at: Fix a race in "self-modifying flow with idle_timeout" test") Acked-by: Ben Pfaff <blp@nicira.com> Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* learn.at: Fix a race in "learn refreshes hard_age" testYAMAMOTO Takashi2014-04-081-1/+2
| | | | | Acked-by: Ben Pfaff <blp@nicira.com> Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* learn.at: Fix a race in "self-modifying flow with hard_timeout"YAMAMOTO Takashi2014-04-081-1/+29
| | | | | | | Also, add a comment to explain the expected sequences. Acked-by: Ben Pfaff <blp@nicira.com> Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* learn.at: Fix a race in "self-modifying flow with idle_timeout" testYAMAMOTO Takashi2014-04-081-1/+7
| | | | | Acked-by: Ben Pfaff <blp@nicira.com> Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* Disable OF1.4 in ovs-vswitchd and ovs-ofctl without specially enabling.Ben Pfaff2014-03-231-4/+4
| | | | | | | When the OF1.4 is made safe, so that receiving an unimplemented message cannot crash the switch, this commit should be reverted. Signed-off-by: Ben Pfaff <blp@nicira.com>
* learn.at: fix a race in "self-modifying flow with hard_timeout" testYAMAMOTO Takashi2014-03-121-7/+14
| | | | | Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* learn.at: fix a commentYAMAMOTO Takashi2014-03-121-1/+1
| | | | | Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* learn.at: wrap long commentsYAMAMOTO Takashi2014-03-121-2/+4
| | | | | Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* tests: Test learned flow idle timeouts.Joe Stringer2014-03-111-0/+103
| | | | | | | | | | | The previous tests would check that a single learned flow had its stats correctly attributed to the right interfaces and flows. These new tests take it a step further by causing two different learned flows to be created, and checking the stats are correct. This is done for rules that are learned with idle and hard timeouts. Signed-off-by: Joe Stringer <joestringer@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* tests/learn.at: Workaround a raceYAMAMOTO Takashi2013-12-201-0/+3
| | | | | | | | | | This test seems to assume that the switch completes processing of the first packet before start processing the second one. I don't see any code ensuring that. Workaround the problem by giving 1 second for the upcall. Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-actions: Make ofpacts_check() report consistency for all protocols.Ben Pfaff2013-11-201-2/+0
| | | | | | | | | | | | Until now ofpacts_check() has been told either to enforce consistency or not, but that means that the caller has to know exactly what protocol is going to be in use (because some protocols require consistency to be enforced and others don't). This commit changes ofpacts_check() to just rule out protocols that require enforcement when it detects inconsistencies. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* ofp-util: Enforce OpenFlow 1.1+ table_id requirements in flow_mod messages.Ben Pfaff2013-11-011-2/+2
| | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
* lib/ofp-actions: Enforce action consistency.Jarno Rajahalme2013-10-231-0/+2
| | | | | | | | | OpenFlow 1.1+ specs encourage switches to verify action consistency at flow setup time. Implement this for OpenFlow 1.1+ only to not break any current OF 1.0 based use. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* timeval: Remove CACHE_TIME scheme.Alex Wang2013-09-041-0/+1
| | | | | | | | | | | | | | This commit removes the CACHE_TIME scheme from timeval module. This is for eliminating the lock contention over the read/write lock of the cached time. To get the time, the thread now will directly do the system call 'clock_gettime()'. As a side effect, timer can only be warpped after timer is stopped by 'appctl time/stop' command. Signed-off-by: Alex Wang <alexw@nicira.com> Signed-off-by: Ethan Jackson <ethan@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
* lib: Keep track of usable protocols while parsing.Jarno Rajahalme2013-08-271-4/+4
| | | | | | | | | | Keep track of usable protocols while parsing actions and matches, rather than checking for them afterwards. This fixes silently discarded meter and goto table instructions when not explicitly specifying the protocol to use. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* meta-flow: Use correct OF1.2+ errors for invalid fields in actions.Ben Pfaff2013-08-231-2/+2
| | | | | | | | | | | | | | | | | | OFPERR_OFPBAC_BAD_ARGUMENT is not as specific as the errors provided by OpenFlow 1.2 and later. Some of these errors needed Nicira extension numbers for use with OpenFlow 1.0 and 1.1, so this commit also adds those. Some of these errors had poor explanations likely to confuse users, so this commits improves them. Some of the errors had the wrong names, so this commit fixes them. Reported-by: Jean Tourrilhes <jt@hpl.hp.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jean Tourrilhes <jt@hpl.hp.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* tests: Fix problems in "learning action - self-modifying flow" test.Ben Pfaff2013-08-131-1/+3
| | | | | | | | | | | | | | | This test had two problems. First, it had a bizarre dependency on stats that were not up-to-date: the "ovs-ofctl dump-flows" assumed that only the first one of ten packets sent through the switch had been accounted to OpenFlow flow statistics. Adding a 1-second time warp fixed this problem by ensuring that all ten packets were accounted. (That's why this patch updates the expected output of "ovs-ofctl dump-flows".) Second, multithreading has made packet processing less predictable in general. This commit adds 10-ms time warps after sending each packet, which seems to make the test reliable for me. Signed-off-by: Ben Pfaff <blp@nicira.com>
* Add basic OpenFlow 1.1 protocol support.Ben Pfaff2013-07-081-1/+1
| | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-parse: Do not exit() upon a parse error.Ben Pfaff2013-07-081-0/+2
| | | | | | | | | Until now, failure to parse a flow in the ofp-parse module has caused the program to abort immediately with a fatal error. This makes it hard to use these functions from any long-lived program. This commit fixes the problem. Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofproto/ofproto-dpif.c: Re-implement the ofproto/trace commandAlex Wang2013-05-211-8/+8
| | | | | | | | | | | | | | | | | | Since the use of single datapath, all bridges belonging to the same type of datapath will use the same (single) datapath. This causes confusion in the current 'ofproto/trace' command. Especially, when given the unrelated 'bridge' and 'in_port' combination, the current implementation will still be able to process and give misleading output. Thusly, this patch changes the 'ofproto/trace' command syntax to formats shown as follow. ofproto/trace [datapath] odp_flow [-generate|packet] ofproto/trace bridge br_flow [-generate|packet] Also, this patch updates the tests and the manpages accordingly. Co-authored-by: Ben Pfaff <blp@nicira.com> Signed-off-by: Alex Wang <alexw@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* meta-flow: Add MFF_IN_PORT_OXM, a 32-bit in_port.Jarno Rajahalme2013-05-201-0/+22
| | | | | | | | | | | This helps get rid of one special case in nx_pull_raw() and allows loading of 32-bit values from/to OXM_OF_IN_PORT in NXAST_LEARN actions. Previously the 16-bit limit acted the same on both NXM_OF_IN_PORT and OXM_OF_IN_PORT, even though OF1.1+ controllers would expect OXM_OF_IN_PORT to be 32 bits wide. Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Do not perform validation in learn_parse();Simon Horman2013-05-081-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | I believe this is consistent with the handling of all other action parsing called from parse_named_action(). Verification of all actions, including learn actions, occurs separately in ofpact_check__(). It also occurs via in a call to ofpacts_check() in parse_ofp_str(), This patch is larger than might otherwise be expected as the flow argument of learn_parse() is now unused and thus removed. This propagates up the call-chain some way. This implementation was suggested by Jesse Gross in response to an enhancement I made to the validation performed during parsing learn actions to allow it to correctly account for changes to the dl_type due to MPLS push and pop actions. Tests have also been updated to check for the less specific messages generated by the call to ofpacts_check() in parse_ofp_str() which at the suggestion of Ben Pfaff was added by a prior patch for this purpose. Cc: Jesse Gross <jesse@nicira.com> Cc: Ben Pfaff <blp@nicira.com> Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>
* tests: Add test for self-modifying learn action.Ben Pfaff2013-02-111-0/+35
| | | | | | CC: Paul Ingram <paul@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
* ofproto: Properly refresh rule modified time when nothing else changes.Ben Pfaff2013-01-251-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Open vSwitch, a "modify" or "modify_strict" flow_mod is supposed to refresh the flow's last-modified time even if nothing else changes, because this interpretation makes the "learn" action more useful. As commit 308881afb (ofproto: Reinterpret meaning of OpenFlow hard timeouts with OFPFC_MODIFY.) notes: I finally found a good use for hard timeouts in OpenFlow, but they require a slight reinterpretation of the meaning of hard timeouts. Until now, a hard timeout meant that a flow would be removed the specified number of seconds after a flow was created. Intervening modifications with OFPFC_MODIFY(_STRICT) had no effect on the hard timeout; the flow would still be deleted the specified number of seconds after its original creation. This commit changes the effect of OFPFC_MODIFY(_STRICT). Now, modifying a flow resets its hard timeout counter. A flow will time out the specified number of seconds after creation or after the last time it is modified, whichever comes later. However, commit 080437614b (ofproto: Represent flow cookie changes as operations too.) broke this behavior because it incorrectly optimized out "modify" operations that didn't change the flow's actions or flow cookie. This commit fixes the problem, and adds a test to prevent future regression. Thanks to Amar Padmanabhan <amar@nicira.com> for helping to track this down. Bug #14841. Reported-by: Hiroshi Tanaka <htanaka@vmware.com> CC: Amar Padmanabhan <amar@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-util: Make "OXM" flow format name include both OpenFlow 1.2 and 1.3.Ben Pfaff2012-11-291-1/+1
| | | | | | | | | | | | To my mind, it makes sense, when a user requests OXM as the flow format, to allow any protocol based on the OXM flow format to be used. Until this commit, however, "OXM" was specifically OpenFlow 1.2, and "OpenFlow13" was required to request OXM on OpenFlow 1.3. This doesn't affect the behavior of any released version of Open vSwitch. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Simon Horman <horms@verge.net.au>
* Initial OpenFlow 1.3 supportJarno Rajahalme2012-11-271-1/+1
| | | | | | | | | | | | | Initial OpenFlow 1.3 support with new include/openflow/openflow-1.3.h. Most of the messages that differ from 1.2 are implemented. OFPT_SET_ASYNC is implemented via NX_SET_ASYNC_CONFIG, other new message types are yet to be implemented. Stats replies that add duration fields are implemented at encode/decode level only. Test cases for implemented features are included. Remaining FIXME:s should not cause runtime aborts. Make check comes out clean. Signed-off-by: Jarno Rajahalme <jarno.rajahalme@nsn.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-util: Allow use of OpenFlow 12 flow formatBen Pfaff2012-11-161-1/+1
| | | | | | | This enables the use of the OpenFlow 12 flow format. Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>
* tests: Rewrite unit tests to not expect bridge with odp zero.Justin Pettit2012-11-011-21/+41
| | | | | | | | | | | | A future commit will make all bridges of a particular type share a single backing datapath. That backing datapath will have a datapath port number of zero and bridges will be assigned other numbers. This commit modifies the tests so that they don't expect port zero. It adopts the convention that bridges of type "dummy" with a name of the form "br<n>" will be assigned a port number of 100+<n>. Signed-off-by: Justin Pettit <jpettit@nicira.com>
* Separate OpenFlow port numbers from datapath ones.Justin Pettit2012-11-011-1/+2
| | | | | | | | | | | | | | | In a future commit, we will make multiple bridges share a single backing datapath. Our simple mapping from datapath to OpenFlow port numbers won't work, since we'll want the same OpenFlow port numbers on different bridges. For example, the OFPP_LOCAL port must be the same on all bridges, but will have to be a different datapath port on the converged datapath. This commit makes it the responsibility of ofproto to assign the OpenFlow port numbers instead of doing a simple translation from the datapath ones. Signed-off-by: Justin Pettit <jpettit@nicira.com>
* Introduce ofpacts, an abstraction of OpenFlow actions.Ben Pfaff2012-07-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | OpenFlow actions have always been somewhat awkward to handle. Moreover, over time we've started creating actions that require more complicated parsing. When we maintain those actions internally in their wire format, we end up parsing them multiple times, whenever we have to look at the set of actions. When we add support for OpenFlow 1.1 or later protocols, the situation will get worse, because these newer protocols support many of the same actions but with different representations. It becomes unrealistic to handle each protocol in its wire format. This commit adopts a new strategy, by converting OpenFlow actions into an internal form from the wire format when they are read, and converting them back to the wire format when flows are dumped. I believe that this will be more maintainable over time. Thanks to Simon Horman and Pravin Shelar for reviews. Signed-off-by: Ben Pfaff <blp@nicira.com>
* meta-flow: Accept NXM and OXM field names, support NXM and OXM for output.Ben Pfaff2012-06-261-1/+1
| | | | | | | | | | | | | | | This commit makes actions that accept NXM header values also accept OXM header values and accept OXM field names where previously only NXM field names were accepted. This makes it possible to add new OXM fields that don't have NXM header values, e.g. the OXM "metadata" field. Inspired by Joe Stringer's patch: http://openvswitch.org/pipermail/dev/2012-June/018344.html Reported-by: Joe Stringer <joe@wand.net.nz> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-print: Add some more white space to flow dumps.Ben Pfaff2012-05-011-7/+7
| | | | | | | | | Before idle_age and hard_age were added, in the absence of timeouts there was a space between the statistics for a flow and the start of the flow match. This restores that space. Requested-by: Paul Ingram <paul@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* learn: Make it possible to parse "load" actions wider than 64 bits.Ben Pfaff2012-04-131-3/+6
| | | | | | | | | The implementation of the "learn" action now properly implements specifications such as 0x20010db885a308d313198a2e03707348->NXM_NX_IPV6_DST but the parser used in ovs-ofctl and elsewhere could not generate such specifications. This commit adds that support. Signed-off-by: Ben Pfaff <blp@nicira.com>
* learn: Fix bugs when learn actions use subfields wider than 64 bits.Ben Pfaff2012-04-131-0/+42
| | | | | | Bug #10576. Reported-by: James Schmidt <jschmidt@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>