summaryrefslogtreecommitdiff
path: root/DESIGN
Commit message (Collapse)AuthorAgeFilesLines
* ofproto: Allow the use of the OpenFlow 1.4 protocolAlexandru Copot2014-03-231-0/+6
| | | | | | | | | | This defines the version number for OpenFlow 1.4 so that the switch can actually use it. The ovsdb schema is also modified. Signed-off-by: Alexandru Copot <alex.mihai.c@gmail.com> Cc: Daniel Baluta <dbaluta@ixiacom.com> [blp@nicira.com adjusted code in cases where 1.3 and 1.4 are the same] Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-util: Implement OpenFlow 1.1 packet-in message.Ben Pfaff2013-12-041-0/+47
| | | | | Signed-off-by: Ben Pfaff <blp@nicira.com> Reviewed-by: Simon Horman <horms@verge.net.au>
* DESIGN: Update flow_mod section to describe OpenFlow 1.1+ behavior.Ben Pfaff2013-07-081-4/+118
| | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
* DESIGN: Fix typo in "VLAN Matching" section.Ben Pfaff2013-07-081-1/+1
| | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
* tests: Add more tests for VLAN match encoding and decoding.Ben Pfaff2012-07-191-0/+115
| | | | | Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Simon Horman <horms@verge.net.au
* ofp-actions: Add decoding and encoding OF1.1 instructions and actions.Ben Pfaff2012-07-031-0/+13
| | | | | | | | | So far, only the Apply-Actions instruction is supported, and only actions that have identical semantics to OpenFlow 1.0 actions. Co-authored-by: Simon Horman <horms@verge.net.au> Co-authored-by: Isaku Yamahata <yamahata@valinux.co.jp> Signed-off-by: Ben Pfaff <blp@nicira.com>
* Introduce ofpacts, an abstraction of OpenFlow actions.Ben Pfaff2012-07-031-0/+20
| | | | | | | | | | | | | | | | | | | | | | 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>
* Setting miss_send_len on receiving NXT_SET_ASYNC_CONFIG message.Mehak Mahajan2012-06-261-2/+8
| | | | | | | | | | For the service controllers to receive any asynchronous messages, the miss_send_len must be set to a non-zero value (refer to DESIGN). On receiving the NXT_SET_ASYNC_CONFIG message, the miss_send_len is set to the default value unless it is set to a non-zero value earlier by the OFPT_SET_CONFIG message. Signed-off-by: Mehak Mahajan <mmahajan@nicira.com>
* ofp-util: Clean up cookie handling.Justin Pettit2012-05-291-5/+25
| | | | | | | | | | | | | | | | | | | | | | | Commit e72e793 (Add ability to restrict flow mods and flow stats requests to cookies.) modified cookie handling. Some of its behavior was unintuitive and there was at least one bug (described below). Commit f66b87d (DESIGN: Document uses for flow cookies.) attempted to document a clean design for cookie handling. This commit updates the DESIGN document and brings the implementation in line with it. In commit e72e793, the code that handled processing OpenFlow flow modification requests set the cookie mask to exact-match. This seems reasonable for adding flows, but is not correct for matching, since OpenFlow 1.0 doesn't support matching based on the cookie. This commit changes to cookie mask to fully wildcarded, which is the correct behavior for modifications and deletions. It doesn't cause any problems for flow additions, since the mask is ignored for that operation. Bug #9742 Reported-by: Luca Giraudo <lgiraudo@nicira.com> Reported-by: Paul Ingram <paul@nicira.com> Signed-off-by: Justin Pettit <jpettit@nicira.com>
* DESIGN: Document uses for flow cookies.Ben Pfaff2012-05-011-0/+65
| | | | | | | | | | The paragraph near the end that starts out "However, unlike OpenFlow 1.1, ..." seems to correctly document OVS behavior, but it also seems like pretty lousy behavior. Justin says that he's going to fix it before we put out an OVS release version with this behavior. CC: Justin Pettit <jpettit@nicira.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
* DESIGN: Describe principles of in-band control.Ben Pfaff2012-04-231-16/+145
| | | | | | | These principles are drawn from an email I sent to the openflow-spec list long ago. Signed-off-by: Ben Pfaff <blp@nicira.com>
* DESIGN: Fix alignment in table.Ben Pfaff2012-03-261-2/+2
| | | | Signed-off-by: Ben Pfaff <blp@nicira.com>
* Add ability to direct "packet-in"s to particular controllers.Ben Pfaff2012-02-271-0/+10
| | | | | | | | | | | | | | Nicira's controllers are somewhat heterogeneous, so that particular "packet-in" messages should be directed to particular controllers. This new Nicira extension action allows designating a controller or controllers to receive the "packet-in" using a 16-bit integer ID. The new NXAST_CONTROLLER action also specifies the "reason" code to include in the "packet-in" message. This is particularly useful for simulating a "no-match" "packet-in" using a rule. Feature #8946. Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofproto: Implement OpenFlow extension to allow control over async messages.Ben Pfaff2012-02-091-2/+47
| | | | | | | | | Until now, the rules that cover the asynchronous messages that Open vSwitch sends to a controller have been ad hoc. The new NXT_SET_ASYNC_CONFIG message provides systematic, precise control. Feature #7086. Signed-off-by: Ben Pfaff <blp@nicira.com>
* DESIGN: Document the properties of flow_mods.Ben Pfaff2012-02-091-0/+71
| | | | | | | I'm tired of trying to figure these out all over again each time I think about it. Signed-off-by: Ben Pfaff <blp@nicira.com>
* ofp-util: Support OFPP_LOCAL in enqueue actions.Ethan Jackson2011-11-211-0/+10
| | | | | | | According to the specification the enqueue action should refer to "a valid physical port", or OFPP_IN_PORT. It would be strange to attach a queueing discipline to the local port, but I see no reason to restrict it.
* DESIGN: Document multiple table support.Ben Pfaff2011-10-241-0/+22
| | | | | Suggested-by: Justin Pettit <jpettit@nicira.com> Suggested-by: Michael Mao <mmao@nicira.com>
* DESIGN: Move in-band control design discussion here.Ben Pfaff2011-05-041-0/+163
| | | | | It seems more likely that interested users and administrators will be able to find it here.
* nicira-ext: Support matching IPv6 Neighbor Discovery messages.Justin Pettit2011-02-021-1/+2
| | | | | | | | | | | | | | | | | IPv6 uses Neighbor Discovery messages in a similar manner to how IPv4 uses ARP. This commit adds support for matching deeper into the payloads of Neighbor Solicitation (NS) and Neighbor Advertisement (NA) messages. Currently, the matching fields include: - NS and NA Target (nd_target) - NS Source Link Layer Address (nd_sll) - NA Target Link Layer Address (nd_tll) When defining IPv6 Neighbor Discovery rules, the Nicira Extensible Match (NXM) extension to OVS must be used. Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
* nicira-ext: Support matching IPv6 traffic.Justin Pettit2011-02-021-0/+76
Provides ability to match over IPv6 traffic in the same manner as IPv4. Currently, the matching fields include: - IPv6 source and destination addresses (ipv6_src and ipv6_dst) - Traffic Class (nw_tos) - Next Header (nw_proto) - ICMPv6 Type and Code (icmp_type and icmp_code) - TCP and UDP Ports over IPv6 (tp_src and tp_dst) When defining IPv6 rules, the Nicira Extensible Match (NXM) extension to OVS must be used. Signed-off-by: Justin Pettit <jpettit@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>