summaryrefslogtreecommitdiff
path: root/DESIGN.md
Commit message (Collapse)AuthorAgeFilesLines
* Document how to match any packet with a VLAN header.Ben Pfaff2016-03-101-0/+4
| | | | | | | | This one is actually useful, I don't know how I omitted it whenever I wrote this documentation. Signed-off-by: Ben Pfaff <blp@ovn.org> Acked-by: Justin Pettit <jpettit@ovn.org>
* ofp-util: For OF1.0, don't wildcard PCP field when 802.1Q header absent.Ben Pfaff2015-08-241-5/+7
| | | | | | | | | | | | | | | | | | | | | | OpenFlow 1.0.1 says: The dl_vlan_pcp field must be ignored when the OFPFW_DL_VLAN wildcard bit is set or when the dl_vlan value is set to OFP_VLAN_NONE. Fields that are ignored don’t need to be wildcarded and should be set to 0. Previously, OVS wildcarded the PCP field when dl_vlan was OFP_VLAN_NONE, but this commit changes the behavior to that suggested above: the PCP field should not be wildcarded (and should be set to 0, but the code already did that). This commit only changes the translation from OVS's internal flow format to the OpenFlow 1.0 wire format. Translation in the other direction and to other formats is unaffected. Found by OFTest. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* ofproto: Implement OF1.4 Set/Get asynchronous configuration messages.Niti Rohilla2015-07-271-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds support for Openflow1.4 set/get asynchronous configuration messages. OpenVSwitch already supports set/get asynchronous configuration messages for Openflow1.3. In this patch OFPT_SET_ASYNC_CONFIG message allows the controllers to set the configuration for OFPT_ROLE_STATUS, OFPT_TABLE_STATUS and OFPT_REQUESTFORWARD in addition to the Openflow1.3 messages. In a OFPT_SET_ASYNC, only the properties that shall be changed need to be included, properties that are omitted from the message are unchanged. The OFPT_GET_ASYNC_CONFIG is used to query the asynchronous configuration of switch. In a OFPT_GET_ASYNC_REPLY message, all properties must be included. According to Openflow1.4 the initial configuration shall be: - In the “master” or “equal” role, enable all OFPT_PACKET_IN messages, except those with reason OFPR_INVALID_TTL, enable all OFPT_PORT_STATUS and OFPT_FLOW_REMOVED messages, and disable all OFPT_ROLE_STATUS, OFPT_TABLE_STATUS and OFPT_REQUESTFORWARD messages. - In the “slave” role, enable all OFPT_PORT_STATUS messages and disable all OFPT_PACKET_IN, OFPT_FLOW_REMOVED, OFPT_ROLE_STATUS, OFPT_TABLE_STATUS and OFPT_REQUESTFORWARD messages. Signed-off-by: Niti Rohilla <niti.rohilla@tcs.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Implement OpenFlow 1.4+ OFPTC_EVICTION.Ben Pfaff2015-07-031-6/+79
| | | | | | | | | | | | | | | | | | OpenFlow 1.4 introduces the ability to turn on flow table eviction with an OFPT_TABLE_MOD message specifying OFPTC_EVICTION. It also adds related machinery to other messages that mention OFPTC_* fields. This commit adds support for the new feature, implementing it as a second, parallel way to enable flow table eviction. It takes more work than it seems like it should because there is so much weirdness with the treatment of OFPTC_* flags over the evolution of OpenFlow; please refer to the explanation in DESIGN.md for more information. This commit also adds related support to ovs-ofctl, plus tests. Signed-off-by: Ben Pfaff <blp@nicira.com> Co-authored-by: Saloni Jain <saloni.jain@tcs.com> Signed-off-by: Saloni Jain <saloni.jain@tcs.com> Acked-by: Jarno Rajahalme <jrajahalme@nicira.com>
* ofproto: Support port mods in bundles.Jarno Rajahalme2015-06-121-2/+51
| | | | | | | | | | | | | | Add support for port mods in an OpenFlow 1.4 bundle, as required for the minimum support level by the OpenFlow 1.4 specification. If the bundle includes port mods, it may not specify the OFPBF_ATOMIC flag. Port mods and flow mods in a bundle are always applied in order and the consecutive flow mods between port mods are made available to lookups atomically. Note that ovs-ofctl does not support creating bundles with port mods. Signed-off-by: Jarno Rajahalme <jrajahalme@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* ofproto: add support of OFPR_ACTION_SET as packet-in reason for OF1.4+Shu Shen2015-02-061-0/+1
| | | | | | | | | | This patch adds support for OFPR_ACTION_SET as the packet-in reason when a Packet-In message is triggered by an output action within an action-set. By default reason code OFPR_ACTION_SET is enabled for async messages when Openflow 1.4+ is used. A test case is included. Signed-off-by: Shu Shen <shu.shen@radisys.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofproto: add support of OFPR_GROUP as packet-in reason for OF1.4+Shu Shen2014-12-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | When the Packet-In message is triggered by a group action, OFPR_GROUP is passed internally as the reason. The wire_reason() function converts the reason to OFPR_ACTION if the wire protocol is earlier than OF1.4. The wire_reason() function also converts other unsupported reasons (i.e., OFPR_ACTION_SET and OFPR_PACKET_OUT) to OFPR_ACTION if it detects a wire protocol earlier than OF1.4. By default reason code OFPR_GROUP for Packet-In will be enabled for async messages as in ofconn_flush(). Upon a connection being established with a controller, the protocol version is checked and OFPR_GROUP will be disabled in async config if the protocol is lower than OF1.4. Any controller running OF1.4+ is still be able to enable OFPR_GROUP at its will without being affected by this check. The patch also includes tests cases for both OF1.3 and OF1.4 to ensure proper reason code is given for packet-in message triggered by group action. Signed-off-by: Shu Shen <shu.shen@radisys.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Add support for OpenFlow 1.4+ "importance" values.Rishi Bamba2014-11-101-2/+5
| | | | | | | | | | | | | | | This patch enables a user to set importance for a new rule via add-flow OF1.4+ in the OVS and display the same via dump-flows command OF1.4+. The changes are made in accordance with OpenFlow 1.4 specs to implement eviction on the basis of "importance". This patch also enhances the diff-flows & replace-flows CLI for addition of importance parameter in a rule. This doesn't actually implement eviction on the basis of importance, which will happen in a later patch. Signed-off-by: Rishi Bamba <rishi.bamba@tcs.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* doc: Convert docs to Markdown languageThomas Graf2014-10-281-0/+944
Converts the majority of docs over to use the Markdown language for pretty printing on GitHub. It's a rough first convertion without exploiting the full potential of Markdown at this point. Section titles and indentation are fixed as needed. Minimal docs interlinking is added. Signed-off-by: Thomas Graf <tgraf@noironetworks.com> Signed-off-by: Ben Pfaff <blp@nicira.com>