[ovs-dev] [PATCH v1] doc: Added OVS Nicira Extension document

Ben Pfaff blp at ovn.org
Wed Aug 28 22:50:56 UTC 2019

Thanks for working on this!  There's a lot here!  More comments below.

On Mon, Aug 12, 2019 at 12:00:26PM -0700, Ashish Varma wrote:
>     OVS supports Nicira Extensions as various vendor messages or as vendor
>     types in stats or multipart messages. Added a document to describe the
>     Nicira extension as currently supported by OVS.

The commit message should not be indented.

> Signed-off-by: Ashish Varma <ashishvarma.ovs at gmail.com>

This document is a bit unusual because it is written in the form of a
FAQ, but it isn't part of the FAQ.  I'd suggest either making it part of
the FAQ or writing it in the usual form for a document; the latter is
probably a bit more natural.

I have a slight terminology change request here.  We've often referred
to OVS's extensions to OpenFlow as "Nicira extensions".  That made more
sense a long time ago when OVS was really quite a bit more related to
Nicira than it is today. Today, Open vSwitch is very multi-vendor and
multi-company, and, in counterpoint, Nicira was absorbed into VMware
several years ago.  To me, this means that we should mostly stop talking
about "Nicira extensions" and instead talk about "Open vSwitch
extensions".  The only place where we really need to refer to Nicira is
a sentence or paragraph to explain why Nicira is sometimes mentioned
elsewhere (and why the constants start with NX).

> +Q: What are the Nicira vendor messages in OpenFlow and OVS?
> +
> +    A: OpenFlow since version 1.0 allows 'vendor objects' to be added in the

The term "objects" here isn't a familiar one.  I think that "extensions"
would be a better term.

> +    protocol and OVS has used this as 'Nicira extensions' in the
> +    implementation. It has been used to add additional functionality for
> +    the desired features not present in the standard OpenFlow protocol.
> +
> +    There are two types of vendor or experimenter message types in OpenFlow:
> +
> +
> +    1. **OFPT_VENDOR (In OpenFlow 1.0) or
> +       OFPT_EXPERIMENTER (In OpenFlow 1.1+)**
> +
> +    This is a vendor message type with value the value of 4
> +    in the OpenFlow header 'type' field. After the header of this message,
> +    there is a vendor id field which identifies the vendor. This is followed
> +    by a subtype field which defines the vendor specific message types.
> +    Currently, following vendor ids are defined:

I think it would be better to simply refer to the header file here, to
prevent it from getting out of date.  It's worth mentioning NX_VENDOR_ID
and saying that it's the value to use for Open vSwitch extensions.

> +    OVS uses the Nicira vendor id 0x00002320 for all the vendor extension
> +    messages. To see a list of all the Nicira vendor message subytes, we
> +    can refer to 'ovs/lib/ofp-msgs.inc' file which gets auto generated after
> +    compiling the ovs code. 

Wouldn't it be easier to look at ofp-msgs.h?  

> +Q: What is NXM?

I think that ovs-fields(7) provides all this information.  If people are
having trouble finding it, it might be worth just referring to that manpage.



More information about the dev mailing list