[ovs-dev] [PATCH 0/3] Add support for IETF Auto Attach standard (v6)

drflynn at avaya.com drflynn at avaya.com
Fri Feb 20 19:17:08 UTC 2015


From: Dennis Flynn <drflynn at avaya.com>

This patch sequence provides OVS support for the IETF Auto-Attach SPBM draft
standard. This standard describes a compact method of using IEEE 802.1AB Link
Layer Discovery Protocol (LLDP) together with a IEEE 802.1aq Shortest Path
Bridging (SPB) network to automatically attach network devices to individual
services in a SPB network.  The intent here is to allow network applications
and devices using OVS to be able to easily take advantage of features offered
by industry standard SPB networks.  Details of the Auto-Attach standard can be
found here.

http://tools.ietf.org/html/draft-unbehagen-lldp-spb-00

We have modified the OVS source code to integrate basic LLDP protocol support
as required to implement Auto-Attach (AA).  We modeled our LLDP code changes
after other protocols currently supported by OVS (BFD, CFM, etc.).  We have
chosen to base this OVS LLDP work on the open source LLDPD project headed by
Vincent Bernat.  Details of the LLDPD project can be found here.

http://vincentbernat.github.io/lldpd

Although the LLDPD project provides a full LLDP implementation as per the IEEE
802.1AB standard, our initial offering focuses on the core pieces of LLDP
required to provide AA support.  We have plans in place to extend this work to
include full LLDP support within OVS.

We have reached a point in our development where we would like to submit our
changes upstream to the OVS development community. Within this patch set we
have integrated core LLDP support into OVS and have augmented that to support
Auto-Attach.  We have extended OVSDB and unixctl adding new commands to support
the configuration, status display, and statistics display of Auto-Attach.  We
have added the associated man pages for these new commands.

While there is more Auto-Attach work to be done we feel we are at a point where
it makes sense to start presenting this new Auto-Attach feature upstream for
your consideration.


Regards,

Dennis Flynn: Avaya, Inc.
email: drflynn at avaya.com

Ludovic Beliveau: WindRiver, Inc.
email: Ludovic.Beliveau at windriver.com


Rev. 1.0
========
    - Initial submission.

Rev. 2.0
========
    - Fix GCC and sparse errors
    - Replace BSD-style linked lists with OVS-style lists
    - Add endianness checks in auto attach TLV packet structures
    - Removed auto attach configuration option and associated conditional compilation
    - Update NOTICE and copyright.in files with auto attach Copyright and license info
    - Change comment reflecting Net::CDP packet generation macro license change
      from GPLv2 to ISC.
    - Remove lldp logic not required by auto attach
    - Adapt lldp code to fit Open vSwitch sytles and conventions
    - Eliminate "#include config.h" from header files
    - Accommodate GCC specifics and validate build using MSVC 2013
    - Eliminate references to log.h in favor of OVS vlog.h
    - Add auto attach description to man pages and NEWS
    - Simplify auto attach OVSDB entries
    - Remove unnecessary GCC version check
    - Remove references to sysfs

Rev. 3.0
========
    - Move base lldp code to new lib/lldp directory to reflect separation of
      base lldp code from OVS lldp interface code.
    - More cleanup to conform to OVS coding style
    - Remove unused lldp code and ovsschema entries
    - Auto attach documentation improvements

Rev. 4.0
========
    - Fix include statements
    - Use xmalloc() instead of malloc()
    - Improved error checking
    - Fix memory leak
    - Use opbuf API when generating LLDP PDU
    - Remove unneeded casts
    - Fix errors detected by sparse
    - Use hash_pointer where appropriate
    - Use cross-platform print format macros where appropriate
    - Use xstrdup() and xmemdup() where appropriate
    - Improve *_wake_time processing within monitor_mport_run()
    - Use LIST_FOR_EACH and LIST_FOR_EACH_SAFE where appropriate
    - Fix race condition when removing LLDP instances
    - Further conformance to coding standards
    - Other general code improvements

Rev. 5.0
========
    - Fix bug in decode of LLDP_TLV_MGMT_ADDR TLV

Rev. 6.0
========
    - Add auto-attach packet validation unit test


Dennis Flynn (3):
  auto-attach: Initial support for Auto-Attach standard
  auto-attach: Add auto-attach support to ofproto layer
  auto-attach: Add auto-attach support to bridge layer and command set

 NEWS                           |    3 +
 NOTICE                         |   13 +
 debian/copyright.in            |   15 +
 lib/automake.mk                |   12 +-
 lib/bfd.c                      |    6 +-
 lib/bfd.h                      |    2 +-
 lib/cfm.c                      |    6 +-
 lib/cfm.h                      |    2 +-
 lib/lldp/aa-structs.h          |   49 ++
 lib/lldp/lldp-const.h          |  230 +++++++++
 lib/lldp/lldp-tlv.h            |   79 +++
 lib/lldp/lldp.c                |  752 +++++++++++++++++++++++++++++
 lib/lldp/lldpd-structs.c       |  130 +++++
 lib/lldp/lldpd-structs.h       |  228 +++++++++
 lib/lldp/lldpd.c               |  655 +++++++++++++++++++++++++
 lib/lldp/lldpd.h               |  120 +++++
 lib/odp-util.h                 |    1 +
 lib/ovs-lldp.c                 | 1041 ++++++++++++++++++++++++++++++++++++++++
 lib/ovs-lldp.h                 |  112 +++++
 ofproto/ofproto-dpif-monitor.c |   52 +-
 ofproto/ofproto-dpif-monitor.h |    3 +-
 ofproto/ofproto-dpif-xlate.c   |   34 +-
 ofproto/ofproto-dpif-xlate.h   |    8 +-
 ofproto/ofproto-dpif.c         |   98 +++-
 ofproto/ofproto-provider.h     |   80 ++-
 ofproto/ofproto.c              |   80 ++-
 ofproto/ofproto.h              |   16 +
 tests/auto-attach.at           |    7 +
 tests/automake.mk              |    6 +-
 tests/ovs-vsctl.at             |    2 +
 tests/test-aa.c                |  329 +++++++++++++
 tests/testsuite.at             |    1 +
 utilities/ovs-vsctl.8.in       |   27 +-
 utilities/ovs-vsctl.c          |  192 ++++++++
 vswitchd/bridge.c              |  276 ++++++++++-
 vswitchd/vswitch.ovsschema     |   29 +-
 vswitchd/vswitch.xml           |   64 +++
 37 files changed, 4704 insertions(+), 56 deletions(-)
 create mode 100644 lib/lldp/aa-structs.h
 create mode 100644 lib/lldp/lldp-const.h
 create mode 100644 lib/lldp/lldp-tlv.h
 create mode 100644 lib/lldp/lldp.c
 create mode 100644 lib/lldp/lldpd-structs.c
 create mode 100644 lib/lldp/lldpd-structs.h
 create mode 100644 lib/lldp/lldpd.c
 create mode 100644 lib/lldp/lldpd.h
 create mode 100644 lib/ovs-lldp.c
 create mode 100644 lib/ovs-lldp.h
 create mode 100644 tests/auto-attach.at
 create mode 100644 tests/test-aa.c

-- 
1.8.3.1




More information about the dev mailing list