GRE tunnel support

This is version 7 of GRE tunnel support.
Major change is avoid blocking in direct datapath handler (and drop
unnecessary patches).

1, 2: ovs lib
      To catch up the upstream of OVS.
3:  ryu/controller/dispatcher: introduce thread based event queue
    patch reorder: Move up in the patch. And monir fixes.
4:  ryu/controller/handler_util.py: utility class for event queue
    Newly introduced
15: app/gre_tunnel: implement GRETunnel app
    Make use of handler_utils
31: app: Add quantum adapter
    Make use of handler_utils
Other patches are not changed.

The trees are available at
(NOTE: only Ryu is updated. Quantum and devstack are same to v6)
git://github.com/yamahata/ryu.git ryu-gre-tunnel-nov-30-2012
git://github.com/yamahata/quantum.git ryu-gre-tunnel-nov-21-2012
git://github.com/yamahata/devstack.git ryu-gre-tunnel-nov-21-2012

Changes v6 -> v7:
- Introduce helper method for queue serialization and queueing/dispatching
  requests
- avoid blocking in quantum_adapter

Changes v5 -> v6:
- Added rest API to associate iface-id to network-id
  This is necessary to drop PortBinding table from Quantum db and
  for quantum_adapter to pass info to gre_tunnel.
- quantum-adapter
  - eliminate db connection to quantum db
  - get mac address from ovsdb
  - don't use monitor, but use OF port_mod event
- more on thread safety
  avoid dead lock in quantum_adapter

Changes v4 -> v5:
- dropped unnecessary patches
- eliminated unused code of vsctl, ovsbridge
- addressed review

Changes v3 -> v4:
- minor bug fixes
- include synchronization.py
- documentation update
- instance metadata

Changes v2 -> v3:
- pylint
- fixed some race condition

Changes v1 -> v2:
- eliminated cork/uncork.
- teash OVSVethInterfaceDriver
- reorder patch series

Isaku Yamahata (32):
  Revert "contrib/ovs/stream.py: TypeError: bad operand type for unary
    -: 'NoneType'"
  From: Ben Pfaff <b...@nicira.com>     Date: Wed, 21 Nov 2012 09:00:39
    -0800     Subject: [PATCH] python/ovs/stream: Fix Stream.connect()
    retval for      incomplete connection.
  ryu/controller/dispatcher: introduce thread based event queue
  ryu/controller/handler_util.py: utility class for event queue
  app/rest: add requirements to path component
  app/rest_nw_id: add port type for reserved port and vport-gre
  ryu/app/client: factor out rest client code
  app/client: add helper function to ignore NOT_FOUND, 404
  controller/network: factor out network.py and add event generator for
    gre tunnel and helper methods
  dpset: add port{add, delete, modify} event for convenience and helper
    functions
  controller/tunnel: introduce new class that tracks infos related to
    tunneling
  app/rest_tunnel: REST API for tunnel
  app/client: add tunnel client
  bin/ryu-client: support gre tunnel client
  app/gre_tunnel: implement GRETunnel app
  controller/switch_conf: introduce a class to manage per-switch
    configuration
  ryu/app: REST API to set per-switch configuration
  ryu/app/client: support conf_switch
  bin/ryu-client: support switch_conf
  ryu/controller/network.py: add helper functions for tunnel updater
  lib/ovs: add constants for ovsdb Open_vSwitch db
  lib/ovs/vsctl: python reimplementation of ovs-vsctl
  ovs/bridge: helper class to manipulate ovs bridge
  lib/synchronized: introduce helper decorator for synchronization
  app/tunnel_port_updater: application that creates/deletes tunnel
    ports
  bin/ryu-manager: import ryu.flags for common options
  ryu/lib/quantum_ifaces.py: track the relation of quantum iface-id
  rest/quantum: quantum iface REST API
  ryu/app/client: teach quantum iface api
  bin/ryu-client: teach quantum iface rest api
  app: Add quantum adapter
  docs: tunneling app

 bin/ryu-client                          |   62 +-
 bin/ryu-manager                         |    1 +
 doc/source/openstack.rst                |    1 +
 doc/source/tunneling_with_openstack.rst |  312 +++++++
 ryu/app/client.py                       |  204 ++++-
 ryu/app/conf_switch_key.py              |   18 +
 ryu/app/gre_tunnel.py                   |  908 +++++++++++++++++++++
 ryu/app/quantum_adapter.py              |  430 ++++++++++
 ryu/app/rest.py                         |   66 +-
 ryu/app/rest_conf_switch.py             |  173 ++++
 ryu/app/rest_nw_id.py                   |   20 +-
 ryu/app/rest_quantum.py                 |  127 +++
 ryu/app/rest_tunnel.py                  |  210 +++++
 ryu/app/tunnel_port_updater.py          |  470 +++++++++++
 ryu/contrib/ovs/stream.py               |   30 +-
 ryu/controller/conf_switch.py           |  105 +++
 ryu/controller/dispatcher.py            |   86 +-
 ryu/controller/dpset.py                 |  105 ++-
 ryu/controller/handler_utils.py         |  164 ++++
 ryu/controller/network.py               |  338 ++++++--
 ryu/controller/tunnels.py               |  210 +++++
 ryu/flags.py                            |   22 +
 ryu/lib/ovs/bridge.py                   |  186 +++++
 ryu/lib/ovs/vsctl.py                    | 1351 +++++++++++++++++++++++++++++++
 ryu/lib/ovs/vswitch_idl.py              |  175 ++++
 ryu/lib/quantum_ifaces.py               |   89 ++
 ryu/lib/synchronized.py                 |   29 +
 27 files changed, 5750 insertions(+), 142 deletions(-)
 create mode 100644 doc/source/tunneling_with_openstack.rst
 create mode 100644 ryu/app/conf_switch_key.py
 create mode 100644 ryu/app/gre_tunnel.py
 create mode 100644 ryu/app/quantum_adapter.py
 create mode 100644 ryu/app/rest_conf_switch.py
 create mode 100644 ryu/app/rest_quantum.py
 create mode 100644 ryu/app/rest_tunnel.py
 create mode 100644 ryu/app/tunnel_port_updater.py
 create mode 100644 ryu/controller/conf_switch.py
 create mode 100644 ryu/controller/handler_utils.py
 create mode 100644 ryu/controller/tunnels.py
 create mode 100644 ryu/lib/ovs/__init__.py
 create mode 100644 ryu/lib/ovs/bridge.py
 create mode 100644 ryu/lib/ovs/vsctl.py
 create mode 100644 ryu/lib/ovs/vswitch_idl.py
 create mode 100644 ryu/lib/quantum_ifaces.py
 create mode 100644 ryu/lib/synchronized.py

--
1.7.10.4


------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
TUNE You got it built. Now make it sing. Tune shows you how.
http://goparallel.sourceforge.net
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to