[ovs-git] Open vSwitch: ofproto: Always terminate OpenFlow description strings (master)

Justin Pettit jpettit at nicira.com
Tue Feb 23 07:38:08 UTC 2010


I had intended for this to get pushed to "openflow-1.0", not the master branch.  I will make sure that this gets reverted in the morning once I sanity-check that I won't make it worse with Ben.  In the meantime, please don't pull from here.

Sorry!

--Justin


On Feb 22, 2010, at 11:05 PM, dev at openvswitch.org wrote:

> This is an automated email from the git hooks/post-receive script. It was
> generated because a ref change was pushed to the repository containing
> the project "Open vSwitch".
> 
> The branch, master has been updated
>       via  8c5b1a2ced970e2f9e32474e1b0d13c98fa4bf5b (commit)
>       via  30bebc49820e726ec596747489813dea608289e3 (commit)
>       via  f0b1120b91028665813691491fc3b6591610e9bc (commit)
>       via  1c8fda550d68a7493c158cef9d4ffe73d9a1c374 (commit)
>       via  c49fa5f573b5d2e468c95aee98d1d37414025751 (commit)
>       via  01e54b54a34c52829bf68e715deac6010da5b8db (commit)
>       via  7c14bb3b645ec686aa67ea029796f7303059e603 (commit)
>       via  4579614c80133679cf5d14dd18698b87cb32e7a1 (commit)
>       via  cb953e1e5bbaaedbfaba407e8ed7a8588ef1ed41 (commit)
>       via  0ef48bdee4a058457a874f7ecb574c6fcf71ac82 (commit)
>       via  d55ae8d66ad90b2a58746c29989695e4113529d0 (commit)
>       via  208e2b9644425ffca33d39465c70dadf051630ca (commit)
>       via  fa833c91138de206b624c9f1755d374509a3a522 (commit)
>       via  860ad6b988e26e2f8bec862480049bc7ea425b26 (commit)
>       via  6703d702d7624b45eaa6f2dd25accbfea3116049 (commit)
>       via  c1278f348a2f920c7567e51774aa72c783e24024 (commit)
>       via  687a8c4ff10b8d74260f0e6531ed3c20de8b31d6 (commit)
>       via  61bdf7029e00af321d496170b96beddce1ef892f (commit)
>       via  ccfa4cee1c5d2c8da6383e2f324d973759020822 (commit)
>       via  663dcea6ef6a14e8b63696e42c2039d1c6d74a1d (commit)
>      from  2f0a1f4277ed61e765e6e5383c07fe8fa1f067d3 (commit)
> 
> Those revisions listed above that are new to this repository have
> not appeared on any other notification email; so we list those
> revisions in full, below.
> 
> - Log -----------------------------------------------------------------
> commit 8c5b1a2ced970e2f9e32474e1b0d13c98fa4bf5b
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=8c5b1a2ced970e2f9e32474e1b0d13c98fa4bf5b
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Always terminate OpenFlow description strings
> 		
> If an OpenFlow description was too long, it would not be properly
> truncated with a final null character.  In addition to properly terminating
> the string, this set of changes prints a warning if a description is too
> long and standardizes on a naming standard for description variables.
> 
> 
> commit 30bebc49820e726ec596747489813dea608289e3
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=30bebc49820e726ec596747489813dea608289e3
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ovs-openflowd: Standardize on OpenFlow description option
> 		
> ovs-vswitchd used a slightly different way to set the manufacturer,
> hardware revision, software revision, serial number, and datapath
> description than ovs-openflowd.  This standardizes on the ovs-vswitch
> style and describes how to use them in the man page.
> 
> 
> commit f0b1120b91028665813691491fc3b6591610e9bc
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=f0b1120b91028665813691491fc3b6591610e9bc
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ovs-vswitchd: Add support for setting OpenFlow datapath descriptions
> 		
> 
> 
> commit 1c8fda550d68a7493c158cef9d4ffe73d9a1c374
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=1c8fda550d68a7493c158cef9d4ffe73d9a1c374
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ovs-openflowd: Fix typo in comment describing dp_desc
> 		
> 
> 
> commit c49fa5f573b5d2e468c95aee98d1d37414025751
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c49fa5f573b5d2e468c95aee98d1d37414025751
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> Don't go beyond buffer length when printing descriptions
> 		
> Prevent reading past the end of the buffer when a description is not
> null-terminated.
> 
> Reported-by: Ben Pfaff <blp at nicira.com>
> 
> 
> commit 01e54b54a34c52829bf68e715deac6010da5b8db
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=01e54b54a34c52829bf68e715deac6010da5b8db
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Don't leak descriptions when destroying an ofproto
> 		
> Reported-by: Ben Pfaff <blp at nicira.com>
> 
> 
> commit 7c14bb3b645ec686aa67ea029796f7303059e603
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=7c14bb3b645ec686aa67ea029796f7303059e603
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Set protocol version to 0x01 (OpenFlow 1.0)
> 		
> Finalize OpenFlow 1.0 wire-compatibility:
> 
>    - Set protocol version to 0x01
>    - Remove references to retired OFPC_MULTI_PHY_TX
>    - Clean extraneous spaces in header file
> 
> NOTE: This is the final commit in the OpenFlow 1.0 set.  Starting with
> this commit, OVS is OpenFlow 1.0 wire-compatible.  Slicing is not yet
> implemented.
> 
> 
> commit 4579614c80133679cf5d14dd18698b87cb32e7a1
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=4579614c80133679cf5d14dd18698b87cb32e7a1
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Add wire-compatibility for slicing (OpenFlow 1.0)
> 		
> OpenFlow 1.0 adds support for a subset of QoS that's referred to as slicing.
> Open vSwitch does not support this yet, so send errors if it's used.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 1.0 until
> the final commit in this OpenFlow 1.0 set.
> 
> 
> commit cb953e1e5bbaaedbfaba407e8ed7a8588ef1ed41
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=cb953e1e5bbaaedbfaba407e8ed7a8588ef1ed41
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Querying port stats for individual ports (OpenFlow 1.0)
> 		
> OpenFlow 1.0 adds "port_no" field to the Port Stat request messages to
> allow stats for individual ports to be queried.  Port stats for all ports
> can still be requested by specifying OFPP_NONE as the port number.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 1.0 until
> the final commit in this OpenFlow 1.0 set.
> 
> 
> commit 0ef48bdee4a058457a874f7ecb574c6fcf71ac82
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=0ef48bdee4a058457a874f7ecb574c6fcf71ac82
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Match on IP ToS/DSCP bits (OpenFlow 1.0)
> 		
> OpenFlow 1.0 adds support for matching on IP ToS/DSCP bits.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 1.0 until
> the final commit in this OpenFlow 1.0 set.
> 
> 
> commit d55ae8d66ad90b2a58746c29989695e4113529d0
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=d55ae8d66ad90b2a58746c29989695e4113529d0
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Improve resolution of flow stats and removed messages (OpenFlow 1.0)
> 		
> OpenFlow 1.0 increases the resolution of flow stats and flow removed messages
> from seconds to (potentially) nanoseconds.  The spec stats that only
> millisecond granularity is required, so that's all we provide at this
> time.  Increasing to nanoseconds would require more significant code
> change and would not provide an appreciable improvement in real world
> use.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 1.0 until
> the final commit in this OpenFlow 1.0 set.
> 
> 
> commit 208e2b9644425ffca33d39465c70dadf051630ca
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=208e2b9644425ffca33d39465c70dadf051630ca
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Add support for matching IP addresses in ARP header (OpenFlow 1.0)
> 		
> The OpenFlow 1.0 specification supports matching the IP address and
> opcode in ARP messages.  The datapath already supports this, so this
> commit merely exposes that through the OpenFlow module.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 1.0
> until the final commit in this OpenFlow 1.0 set.
> 
> 
> commit fa833c91138de206b624c9f1755d374509a3a522
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=fa833c91138de206b624c9f1755d374509a3a522
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Add support for flow cookies (OpenFlow 1.0)
> 		
> In OpenFlow 1.0, flows have been extended to include an opaque
> identifier, referred to as a cookie. The cookie is specified by the
> controller when the flow is installed; the cookie will be returned as
> part of each flow stats and flow removed message.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 1.0 until
> the final commit in this Openflow 1.0 set.
> 
> 
> commit 860ad6b988e26e2f8bec862480049bc7ea425b26
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=860ad6b988e26e2f8bec862480049bc7ea425b26
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Add user-specifiable datapath description (OpenFlow 1.0)
> 		
> In OpenFlow 1.0, a "dp_desc" character array was added to the ofp_desc_stats
> structure that allows a human readable description of the datapath to be
> provided.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 1.0 until
> the final commit in this OpenFlow 1.0 set.
> 
> 
> commit 6703d702d7624b45eaa6f2dd25accbfea3116049
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=6703d702d7624b45eaa6f2dd25accbfea3116049
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Use 64-bit datapath id and management id (OpenFlow 0.9)
> 		
> The length of a datapath was changed from 48 bits to 64 bits in OpenFlow
> 0.9.  For parity, we increased the management id size to match.
> 
> NOTE: This is the final commit in the OpenFlow 0.9 set.  Starting with
> this commit, OVS is OpenFlow 0.9-compliant.
> 
> 
> commit c1278f348a2f920c7567e51774aa72c783e24024
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=c1278f348a2f920c7567e51774aa72c783e24024
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Add support for barrier command (OpenFlow 0.9)
> 		
> OpenFlow 0.9 introduces the concept of the barrier command.  When the
> controller sends a Barrier Request, the switch is not allowed to respond
> with a Barrier Reply until it has finished processing any other commands
> that preceded it.  This commit provides that support.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 0.9 until the
> final commit in this OpenFlow 0.9 set.
> 
> 
> commit 687a8c4ff10b8d74260f0e6531ed3c20de8b31d6
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=687a8c4ff10b8d74260f0e6531ed3c20de8b31d6
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Cleanups to openflow.h (OpenFlow 0.9)
> 		
> This commit cleans up a few comments in openflow.h.  The only one of
> significance is that OpenFlow port numbers now begin enumeration at 1.
> OVS already behaved in this manner, so this is just a documentation
> issue for us.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 0.9 until the
> final commit in this OpenFlow 0.9 set.
> 
> 
> commit 61bdf7029e00af321d496170b96beddce1ef892f
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=61bdf7029e00af321d496170b96beddce1ef892f
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Add selective Flow Removed messages and flow deletes (OpenFlow 0.9)
> 		
> In OpenFlow 0.9, flow "expiration" messages are sent when flows are
> explicitly removed by a delete action.  As such, the message is renamed
> from Flow Expired to Flow Removed.  This commit adds that support as well
> as supporting the ability to choose sending these messages on a per flow
> basis.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 0.9 until the
> final commit in this OpenFlow 0.9 set.
> 
> 
> commit ccfa4cee1c5d2c8da6383e2f324d973759020822
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=ccfa4cee1c5d2c8da6383e2f324d973759020822
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Check overlap, emerg flow cache, and error code sync (OpenFlow 0.9)
> 		
> This commit adds (some) support for a couple new OpenFlow 0.9 features:
> 
>    - The OFPFF_CHECK_OVERLAP flag in Flow Mod messages allows the
>      controller to prevent flows that would conflict at the same
>      priority.
> 
>    - An emergency flow cache that contains a small flow table that is
>      used if the switch loses connectivity with the controller.  I
>      believe the design has fundamental flaws and looks likely to be
>      retired.  If a controller attempts to add a flow to the emergency
>      flow cache, OVS always responds that the tables are full.
> 
> The OpenFlow 0.9 error codes are also sync'd in the commit.
> 
> NOTE: OVS at this point is not wire-compatible with OpenFlow 0.9 until the
> final commit in this OpenFlow 0.9 set.
> 
> 
> commit 663dcea6ef6a14e8b63696e42c2039d1c6d74a1d
> Diffs: http://openvswitch.org/cgi-bin/gitweb.cgi?p=openvswitch;a=commitdiff;h=663dcea6ef6a14e8b63696e42c2039d1c6d74a1d
> Author: Justin Pettit <jpettit at nicira.com>
> 		
> ofproto: Match VLAN PCP and rewrite ToS bits (OpenFlow 0.9)
> 		
> Starting in OpenFlow 0.9, it is possible to match on the VLAN PCP
> (priority) field and rewrite the IP ToS/DSCP bits.  This check-in
> provides that support and bumps the wire protocol number to 0x98.
> 
> NOTE: The wire changes come together over the set of OpenFlow 0.9 commits,
> so OVS will not be OpenFlow-compatible with any official release between
> this commit and the one that completes the set.
> 
> 
> -----------------------------------------------------------------------
> 
> Summary of changes:
> datapath/actions.c                      |   28 +++
> datapath/datapath.c                     |    6 +-
> datapath/flow.c                         |    4 +-
> extras/ezio/ovs-switchui.c              |    5 +
> include/openflow/openflow.h             |  302 ++++++++++++++++++----------
> include/openvswitch/datapath-protocol.h |   20 ++-
> lib/cfg.c                               |    4 +-
> lib/classifier.c                        |   58 ++++++-
> lib/classifier.h                        |    6 +-
> lib/dpif-netdev.c                       |   26 +++-
> lib/flow.c                              |   58 ++----
> lib/flow.h                              |    1 -
> lib/learning-switch.c                   |   29 ++--
> lib/odp-util.c                          |    3 +
> lib/ofp-print.c                         |  126 +++++++++---
> lib/vconn.c                             |   25 ++-
> ofproto/ofproto.c                       |  329 +++++++++++++++++++++----------
> ofproto/ofproto.h                       |   13 +-
> ofproto/pktbuf.c                        |    6 +-
> ofproto/status.c                        |    2 +-
> tests/flowgen.pl                        |   10 +-
> tests/test-classifier.c                 |   21 ++-
> utilities/ovs-ofctl.8.in                |   33 +++-
> utilities/ovs-ofctl.c                   |  100 ++++++++--
> utilities/ovs-openflowd.8.in            |   65 +++++--
> utilities/ovs-openflowd.c               |   62 ++++---
> vswitchd/bridge.c                       |   76 +++++++
> vswitchd/ovs-vswitchd.conf.5.in         |   38 +++-
> 28 files changed, 1045 insertions(+), 411 deletions(-)
> 
> 
> hooks/post-receive
> -- 
> Open vSwitch
> 
> _______________________________________________
> git mailing list
> git at openvswitch.org
> http://openvswitch.org/mailman/listinfo/git_openvswitch.org





More information about the git mailing list