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

Justin Pettit jpettit at nicira.com
Tue Feb 23 09:11:44 PST 2010


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




More information about the dev mailing list