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

Martin Casado casado at nicira.com
Tue Feb 23 09:13:02 PST 2010


The ninja's have been dispatched.

> Awesome!  Can you also scrub these mailing list archives and 
> stealthily visit all the subscribers to delete my mea culpa?
>
> Thanks a lot for protecting my honor!
>
> --Justin
>
> (Sent from my phone. Sorry for any typos.)
>
>
>
> On Feb 23, 2010, at 8:56 AM, Ben Pfaff <blp at nicira.com> wrote:
>
>> Oops.  I rewound the branch.  It is now as if the push never happened.
>>
>> On Mon, Feb 22, 2010 at 11:38:08PM -0800, Justin Pettit wrote:
>>> 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
>>>
>>>
>>> _______________________________________________
>>> git mailing list
>>> git at openvswitch.org
>>> http://openvswitch.org/mailman/listinfo/git_openvswitch.org
>
> _______________________________________________
> git mailing list
> git at openvswitch.org
> http://openvswitch.org/mailman/listinfo/git_openvswitch.org





More information about the dev mailing list