Here is the patch for nova.
I'll try to push this patch after Folson is opened.

diff --git a/nova/compute/utils.py b/nova/compute/utils.py
index 1e5eb8b..7916815 100644
--- a/nova/compute/utils.py
+++ b/nova/compute/utils.py
@@ -175,7 +175,8 @@ def legacy_network_info(network_model):
                               for ip in subnet['ips']],
                          should_create_bridge=should_create_bridge,
                          should_create_vlan=should_create_vlan,
-                         dhcp_server=dhcp_server)
+                         dhcp_server=dhcp_server,
+                         tenant_id=get_meta(network, 'tenant_id', ''))
         if routes:
             info_dict['routes'] = routes
 
diff --git a/nova/network/quantum/manager.py b/nova/network/quantum/manager.py
index ce169bb..6f54edd 100644
--- a/nova/network/quantum/manager.py
+++ b/nova/network/quantum/manager.py
@@ -465,11 +465,11 @@ class QuantumManager(manager.FloatingIP, 
manager.FlatManager):
                     quantum_net_id, interface_id)
 
             if not port:  # No dhcp server has been started
-                self.l3driver.initialize_gateway(network_ref)
                 LOG.debug("Intializing DHCP for network: %s" %
                     network_ref)
                 self.q_conn.create_and_attach_port(q_tenant_id,
                         quantum_net_id, interface_id)
+                self.l3driver.initialize_gateway(network_ref)
 
             hosts = self.get_dhcp_hosts_text(context,
                 subnet['network_id'], project_id)


On Wed, Apr 04, 2012 at 06:37:42PM +0900, Isaku Yamahata wrote:
> This patch series implements an ryu application which support gre tunneling.
> 
> The first part (1-6) is simpley trivial bug fix, refactoring.
> The second part (7-15) is for openflow parser/serializer imporvement.
> The thirt part (16-30) is preparation for gre tunneling
> the last port(31-32) is real implementation.
> 
> For convenience I uploaded the sources at
> 
> [email protected]:yamahata/ryu.git ryu-gre-tunnel-apr-04-2012
> [email protected]:yamahata/quantum.git ryu-gre-tunnel-apr-04-2012
> [email protected]:yamahata/nova.git ryu-gre-tunnel-apr-04-2012
> 
> USAGE
> -----
> Basically GRE tunneling app can be used in same way to simple isolation.
> 
> The compute/network node has single ip address.
> The difference is
> - nova
>   - a small patch is necessary
>   - nova.conf
>     The options, libvirt_ovs_ryu_api_host and linuxnet_ovs_ryu_api, are
>     deprecated. They are just ignored.
> 
> - ryu.ini
>   The new options are introduced to specify ip address for gre tunneling.
>   "tunnel_ip" and "physical_interface".
>   - tunnel_ip = ip address for GRE tunneling.
>   - physical_interface = network physical interface.
>                         IP address is derived from this interface.
> 
>   One of them can be specified for IP address of the gre tunnel.
>   If neither of them are specified, the host IP address is guessed in
>   same way of nova.
> 
> thanks
> 
> Isaku Yamahata (32):
>   app/simple_isolation: unbreak nx patch
>   add missing super().__init__()
>   app/wsapi/WSPathArbitraryString: wrong indent
>   app/wsapi: make WSPathComponent inherit object
>   app/wspath: URI parsers and related constants
>   ryu/app/client: factor out rest client code
>   ofproto/ofproto_v1_0: more constants for nx
>   ofproto/ofproto_v1_0_parser: improve NXTRequest initializer
>   ofproto/ofproto_v1_0_parser: serializer for nxt_flow_mod_table_id
>   ofproto/ofproto_v1_0_parser: serializer for NXActionResbumit
>   controller, ofproto_v1_0: avoid format for argument
>   ofproto/ofproto_v1_0_parser: make FlowMod allow meaningful default
>     parameter
>   ofproto/ofproto_v1_0_parser: flowmod default parameter
>   app: use symbol instead of 32678 for default priority
>   controller/controller: make send_flow_mod() allow default value for
>     priority
>   lib/mac: improve helper functions
>   ryu/exception: introduce more exception for later user
>   app/rest_nw_id: add type for vport-gre and RESERVED_NETWORK_IDS
>   dpset: add port{add, delete, modify} event for convenience and helper
>     functions
>   controller/network: factor out network.py and add event generator for
>     gre tunnel and helper methods
>   app/rest: add API to register/update mac address for a given port
>   app/client: add mac support
>   bin/ryu-client: support mac address tracking
>   controller/tunnel: introduce new class that tracks infos related to
>     tunneling
>   ryu-manager: pass tunnels as kwargs to applications
>   app/rest_tunnel: REST API for tunnel
>   app/client: add helper function to ignore NOT_FOUND, 404
>   app/client: add GRE tunnel client
>   bin/ryu-client: support gre tunnel client
>   bin/ryu-manager: add rest_tunnel to default applications
>   app/gre_tunnel: implement GRETunnel app
>   bin/ryu-manager: make GRETunnel default app, remove SimpleIsolation
> 
>  bin/ryu-client                     |   41 ++-
>  bin/ryu-manager                    |   16 +-
>  ryu/app/cbench.py                  |    4 +-
>  ryu/app/client.py                  |  127 +++++-
>  ryu/app/event_dumper.py            |    1 +
>  ryu/app/gre_tunnel.py              |  847 
> ++++++++++++++++++++++++++++++++++++
>  ryu/app/rest.py                    |  126 +++++-
>  ryu/app/rest_nw_id.py              |    9 +-
>  ryu/app/rest_tunnel.py             |  230 ++++++++++
>  ryu/app/simple_isolation.py        |   14 +-
>  ryu/app/simple_switch.py           |    4 +-
>  ryu/app/wsapi.py                   |    8 +-
>  ryu/app/wspath.py                  |   95 ++++
>  ryu/controller/controller.py       |   16 +-
>  ryu/controller/dispatcher.py       |    2 +
>  ryu/controller/dpset.py            |   79 ++++-
>  ryu/controller/mac_to_network.py   |    1 +
>  ryu/controller/mac_to_port.py      |    1 +
>  ryu/controller/network.py          |  324 ++++++++++++---
>  ryu/controller/tunnels.py          |  196 +++++++++
>  ryu/exception.py                   |   17 +
>  ryu/lib/mac.py                     |   16 +-
>  ryu/ofproto/ofproto_v1_0.py        |   12 +
>  ryu/ofproto/ofproto_v1_0_parser.py |   81 +++-
>  24 files changed, 2116 insertions(+), 151 deletions(-)
>  create mode 100644 ryu/app/gre_tunnel.py
>  create mode 100644 ryu/app/rest_tunnel.py
>  create mode 100644 ryu/app/wspath.py
>  create mode 100644 ryu/controller/tunnels.py
> 

-- 
yamahata

------------------------------------------------------------------------------
Better than sec? Nothing is better than sec when it comes to
monitoring Big Data applications. Try Boundary one-second 
resolution app monitoring today. Free.
http://p.sf.net/sfu/Boundary-dev2dev
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to