summaryrefslogtreecommitdiff
path: root/include/openflow/openflow-1.2.h
Commit message (Collapse)AuthorAgeFilesLines
* Use primary/secondary, not master/slave, as names for OpenFlow roles.Ben Pfaff2020-10-161-3/+3
| | | | | Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Alin Gabriel Serdean <aserdean@ovn.org>
* openflow-1.2: Remove unused struct definition.Ben Pfaff2016-01-191-9/+0
| | | | | | | | Experimenter stats are handled by code in ofp-msgs, and this struct isn't good for anything. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Jarno Rajahalme <jarno@ovn.org>
* include: Use #include <.*> in public headers.Thomas Graf2014-11-121-1/+1
| | | | | | | | Required to make the headers installable. Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Acked-by: Flavio Leitner <fbl@redhat.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* nx-match: Move all knowledge of OXM/NXM here.Ben Pfaff2014-10-071-16/+0
| | | | | | | | | | | | | This improves the general abstraction of OXM/NXM by eliminating direct knowledge of it from the meta-flow code and other places. Some function renaming might be called for; for example, mf_oxm_header() may not be the best name now that the function is implemented within nx-match. However, these renamings would make this commit larger and harder to review, so I'm postponing them. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
* meta-flow: Autogenerate mf_field data structures.Ben Pfaff2014-10-071-123/+0
| | | | | | | | | | | This is a first step toward improving the abstraction of OXM and NXM in the tree. As an immediate improvement, this commit removes all of the definitions of the OXM and NXM constants from the top-level header files, because they are no longer used anywhere. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* ofp-actions: Centralize all OpenFlow action code for maintainability.Ben Pfaff2014-08-111-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now, knowledge about OpenFlow has been somewhat scattered around the tree. Some of it is in ofp-actions, some of it is in ofp-util, some in separate files for individual actions, and most of the wire format declarations are in include/openflow. This commit centralizes all of that in ofp-actions. Encoding and decoding OpenFlow actions was previously broken up by OpenFlow version. This was OK with only OpenFlow 1.0 and 1.1, but each additional version added a new wrapper around the existing ones, which started to become hard to understand. This commit merges all of the processing for the different versions, to the extent that they are similar, making the version differences clearer. Previously, ofp-actions contained OpenFlow encoding and decoding, plus ofpact formatting, but OpenFlow parsing was separated into ofp-parse, which seems an odd division. This commit moves the parsing code into ofp-actions with the rest of the code. Before this commit, the four main bits of code associated with a particular ofpact--OpenFlow encoding and decoding, ofpact formatting and parsing--were all found far away from each other. This often made it hard to see what was going on for a particular ofpact, since you had to search around to many different pieces of code. This commit reorganizes so that all of the code for a given ofpact is in a single place. As a code refactoring, this commit has little visible behavioral change. The update to ofproto-dpif.at illustrates one minor bug fix as a side effect: a flow that was added with the action "dec_ttl" (a standard OpenFlow action) was previously formatted as "dec_ttl(0)" (using a Nicira extension to specifically direct packets bounced to the controller because of too-low TTL), but after this commit it is correctly formatted as "dec_ttl". The other visible effect is to drop support for the Nicira extension dec_ttl action in OpenFlow 1.1 and later in favor of the equivalent standard action. It seems unlikely that anyone was really using the Nicira extension in OF1.1 or later. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* ofp-actions: Add action bitmap abstraction.Ben Pfaff2014-08-111-2/+10
| | | | | | | | | | | | | | | Until now, sets of actions have been abstracted separately outside ofp-actions, as enum ofputil_action_bitmap. Drawing sets of actions into ofp-actions, as done in this commit, makes for a better overall abstraction of actions, with better consistency. A big part of this commit is shifting from using ofp12_table_stats as if it were an abstraction for OpenFlow table stats, toward using a new struct ofputil_table_stats, which is what we generally do with other OpenFlow structures and fits better with the rest of the code. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* meta-flow: Add 64-bit registers.Ben Pfaff2014-07-281-0/+4
| | | | | | | | | These 64-bit registers are intended to conform with the OpenFlow 1.5 draft specification. EXT-244. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* meta-flow: Use OXM-defined constant for TCP flags in OpenFlow 1.5.Ben Pfaff2014-05-141-2/+13
| | | | | | | | This also adds the definitions of a few other OXM headers we didn't have yet. EXT-109. Signed-off-by: Ben Pfaff <blp@nicira.com>
* openflow-1.2.h: Fix definition of OXM_OF_PBB_ISID.Ben Pfaff2013-11-221-2/+2
| | | | | | | | The ONF header file shows this as a 3-byte field. Reported-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* Implement OFPT_QUEUE_GET_CONFIG_REQUEST and OFPT_QUEUE_GET_CONFIG_REPLY.Venkitachalam Gopalakrishnan2013-10-291-6/+9
| | | | | | | | | | | Open vSwitch has never implemented this request and reply, even though they have been in OpenFlow since version 1.0. This commit adds an implementation. Signed-off: Venkitachalam Gopalakrishnan <gops@vmware.com> Co-authored-by: Ben Pfaff <blp@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Joe Stringer <joestringer@nicira.com>
* openflow-1.2.h: Remove redundant definition of OFPST12_GROUP_FEATURES.Ben Pfaff2013-10-291-9/+0
| | | | | | | Message types are defined in ofp-msgs.h these days. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Joe Stringer <joestringer@nicira.com>
* ofp-util: Announce OpenFlow 1.3 table features only in OpenFlow 1.3.Ben Pfaff2013-09-131-14/+12
| | | | | | | | | | | | The translation into OpenFlow 1.2 didn't trim off the OpenFlow 1.3 specific bits. This fixes the problem. It would probably be wise to introduce an ofputil_table_stats structure. Using ofp12_table_stats is somewhat confusing. Reported-by: Torbjorn Tornkvist <kruskakli@gmail.com> Tested-by: Torbjorn Tornkvist <kruskakli@gmail.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Implement OpenFlow 1.1+ "groups" protocol.Neil Zhu2013-09-021-1/+1
| | | | | | | | | | | | | This doesn't include a dpif implementation of groups functionality. In its current form, it is untested. Signed-off-by: Neil Zhu <zhuj@centecnetworks.com> Co-authored-by: Ben Pfaff <blp@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com> Co-authored-by: Simon Horman <horms@verge.net.au> Signed-off-by: Simon Horman <horms@verge.net.au> Co-authored-by: Jarno Rajahalme <jrajahalme@nicira.com> Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com>
* ofp-errors: Implement OpenFlow 1.2+ experimenter error codes.Ben Pfaff2013-06-251-1/+4
| | | | | | | | | | OpenFlow 1.2 standardized experimenter error codes in a way different from the Nicira extension. This commit implements the OpenFlow 1.2+ version. This commit also makes it easy to add error codes for new experimenter IDs by adding new *_VENDOR_ID definitions to openflow-common.h. Signed-off-by: Ben Pfaff <blp@nicira.com>
* Initial OpenFlow 1.3 supportJarno Rajahalme2012-11-271-0/+25
| | | | | | | | | | | | | 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>
* openflow-1.2: Remove OFPAT12_* definitions that duplicate OFPAT11_* ones.Ben Pfaff2012-09-261-17/+1
| | | | | | | | | | OpenFlow 1.1 and 1.2 action numbering is compatible, in that no OpenFlow 1.2 action uses an OpenFlow 1.1 action number in a different way from OpenFlow 1.1. So it's confusing and unnecessary to have separate definitions for these numbers. Signed-off-by: Ben Pfaff <blp@nicira.com> Reviewed-by: Simon Horman <horms@verge.net.au>
* ofp-actions: helper functions for of12 set-field actionSimon Horman2012-09-131-2/+1
| | | | | | Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-util: Allow decoding of Open Flow 1.1 & 1.2 Table Statistics Request ↵Simon Horman2012-09-131-0/+5
| | | | | | | | | Messages Signed-off-by: Simon Horman <horms@verge.net.au> [blp@nicira.com then made substantial changes that were then:] Reviewed-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-msgs: New approach to encoding and decoding OpenFlow headers.Ben Pfaff2012-07-301-18/+5
| | | | | | | | | | | | | | | | OpenFlow headers are not as uniform as they could be, with size, alignment, and numbering changes from one version to another and across varieties (e.g. ordinary messages vs. "stats" messages). Until now the Open vSwitch internal APIs haven't done a good job of abstracting those differences in header formats. This commit changes that; from this commit forward very little code actually needs to understand the header format or numbering. Instead, it can just encode or decode, or pull or put, the header using a more abstract API using the ofpraw_, ofptype_, and other APIs in the new ofp-msgs module. Signed-off-by: Ben Pfaff <blp@nicira.com> Tested-by: Simon Horman <horms@verge.net.au> Reviewed-by: Simon Horman <horms@verge.net.au>
* openflow-1.2: correct action numberIsaku Yamahata2012-07-041-1/+1
| | | | | | | The number 13, 14 aren't used. Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* nx-match: Add parsing and serialisation of OXM matches.Simon Horman2012-06-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | This code, which leverages the existing NXM implementation, adds parsing and serialisation of OXM matches. Test cases have also been provided. This patch only implements parsing and serialisation of OXM fields that are already handled by NXM. It should be noted that in OXM ports are 32bit whereas in NXM they are 16 bit. This has been handled as a special case as all other field widths are the same in both OXM and NXM. This patch does not address differences in wildcarding between OXM and NXM. It is planned that liberal wildcarding policy dictated by either OXM or NXM will be implemented. This patch also does not address any (subtle?) differences between OXM and NXM treatment of specific fields. It is envisages that his can be handled by subsequent patches. Signed-off-by: Simon Horman <horms@verge.net.au> [blp@nicira.com adjusted style, added a comment, changed in_port special case, enabled NXM extensions to OXM] Signed-off-by: Ben Pfaff <blp@nicira.com>
* openflow: Use spaces for indentationSimon Horman2012-06-081-7/+7
| | | | | Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Global replace of Nicira Networks.Raju Subramanian2012-05-021-1/+1
| | | | | | | | Replaced all instances of Nicira Networks(, Inc) to Nicira, Inc. Feature #10593 Signed-off-by: Raju Subramanian <rsubramanian@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Add OXM_OF_* definitionsSimon Horman2012-04-251-0/+58
| | | | | | | | These oxm_type definitions values will may be used when parsing serialising OXM TLVs. Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Correct OFPXMC12_{OPENFLOW_BASIC,EXPERIMENTER} definitionsSimon Horman2012-04-251-2/+2
| | | | | | | | This corrects errors that appear to have been included by me in the original version. Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Definitions for Open Flow 1.2Simon Horman2012-03-301-0/+319
This is a first pass at adding include/openflow/openflow-1.2.h to include enum and struct definitions for Open Flow 1.2 that are not already covered by Open Flow 1.1. Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: Ben Pfaff <blp@nicira.com>