← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1403625] [NEW] devstack defaults to VXLAN even though ENABLE_TENANT_TUNNELS is False in local.conf

 

Public bug reported:

Branch info:

slogan@slogan-virtual-machine:~/devstack$ git branch
* master
slogan@slogan-virtual-machine:~/devstack$ git log | head
commit 062e8f14874ab254aa756aabb4f50db222277431
Merge: 7f80280 7bb9a73
Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
Date:   Tue Dec 16 22:02:41 2014 +0000

    Merge "Adds missing rabbit_userid to trove configs"

commit 7f8028069883b8214bd2aae56f78514a4fddddbe
Merge: affcf87 dc31f76
Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>

local.conf:

[[local|localrc]]
disable_service n-net
enable_service q-l3
enable_service q-svc
enable_service q-agt
enable_service q-dhcp
enable_service q-meta
enable_service neutron
ADMIN_PASSWORD=password
DATABASE_PASSWORD=$ADMIN_PASSWORD
RABBIT_PASSWORD=$ADMIN_PASSWORD
SERVICE_PASSWORD=$ADMIN_PASSWORD
SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50
FIXED_RANGE=10.4.128.0/20
#FLOATING_RANGE=192.168.1.20/30
#HOST_IP=localhost
HOST_IP=192.168.1.220
PUBLIC_INTERFACE=eth0
FLAT_INTERFACE=br-int
FLAT_NETWORK_BRIDGE=br-eth0
NETWORK_GATEWAY=10.4.128.1
FIXED_NETWORK_SIZE=4096
SCHEDULER=nova.scheduler.filter_scheduler.FilterScheduler
Q_PLUGIN=ml2
OFFLINE=True
ACTIVE_TIMEOUT=120
ASSOCIATE_TIMEOUT=60
BOOT_TIMEOUT=120
SERVICE_TIMEOUT=120
EXTRA_OPTS=(metadata_host=$HOST_IP)

# Allow tenants to create vlans

ENABLE_TENANT_VLANS=True
ENABLE_TENANT_TUNNELS=False
ML2_VLAN_RANGES=physnet1:1100:2999

# these are needed fo VLANs for tenants to connect to physical switch

PHYSICAL_NETWORK=default
OVS_PHYSICAL_BRIDGE=br-int

Q_DHCP_EXTRA_DEFAULT_OPTS=(enable_metadata_network=True
enable_isolated_metadata=True)

Notice I don't have Q_ML2_TENANT_NETWORK_TYPE setm but I am saying I
want VLANS and I don't want tunnels (and I haven't defined anything else
related to tunnels, e.g., VNI ranges).

When I run ./stack.sh with the above, I noticed that br-tun is created:

slogan@slogan-virtual-machine:~/devstack$ sudo ovs-vsctl show
2d7ac7cc-4358-41e7-afd4-3c5a0081d79f
    Bridge br-ex
        Port br-ex
            Interface br-ex
                type: internal
        Port "qg-db338515-8c"
            Interface "qg-db338515-8c"
                type: internal
    Bridge br-tun
        Port br-tun
            Interface br-tun
                type: internal
        Port patch-int
            Interface patch-int
                type: patch
                options: {peer=patch-tun}
    Bridge br-int
...

Also, in ml2_conf.ini:

[ml2]
tenant_network_types = vxlan
type_drivers = local,flat,vlan,gre,vxlan
mechanism_drivers = openvswitch,linuxbridge
...

The code in question is in devstack/lib/neutron_plugins/ml2:

Q_ML2_TENANT_NETWORK_TYPE=${Q_ML2_TENANT_NETWORK_TYPE:-"vxlan"}
# This has to be set here since the agent will set this in the config file
if [[ "$Q_ML2_TENANT_NETWORK_TYPE" == "gre" || "$Q_ML2_TENANT_NETWORK_TYPE" == "vxlan" ]]; then
    Q_TUNNEL_TYPES=$Q_ML2_TENANT_NETWORK_TYPE
elif [[ "$ENABLE_TENANT_TUNNELS" == "True" ]]; then
    Q_TUNNEL_TYPES=gre
fi

The above code sets the tenant network type to vxlan if not specified
(as a default). I think the code should account for the
ENABLE_TENANT_TUNNELS and ENABLE_TENANT_VLANS when defining the default.

Notice that the wiki has a devstack sample that led me down this path,
I'd like to see the code match this wiki by fixing this bug (I think the
wiki is fine, it's the script that needs fixing).

Configure devstack for ML2 with VLANs
An example control and compute node localrc file is shown here for configuring ML2 to run with VLANs with devstack. This is equivalent to running the OVS or LinuxBridge plugins in VLAN mode.

Add the following to your control node localrc:
Q_PLUGIN=ml2
ENABLE_TENANT_VLANS=True
ML2_VLAN_RANGES=mynetwork:100:200
To set special VLAN parameters for the VLAN TypeDriver, the following variable in localrc can be used. This is a space separate list of assignment values:
Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS=(network_vlan_ranges=600:700)

(the above is from https://wiki.openstack.org/wiki/Neutron/ML2

** Affects: neutron
     Importance: Undecided
     Assignee: slogan621 (slogan621)
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1403625

Title:
  devstack defaults to VXLAN even though ENABLE_TENANT_TUNNELS is False
  in local.conf

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  Branch info:

  slogan@slogan-virtual-machine:~/devstack$ git branch
  * master
  slogan@slogan-virtual-machine:~/devstack$ git log | head
  commit 062e8f14874ab254aa756aabb4f50db222277431
  Merge: 7f80280 7bb9a73
  Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>
  Date:   Tue Dec 16 22:02:41 2014 +0000

      Merge "Adds missing rabbit_userid to trove configs"

  commit 7f8028069883b8214bd2aae56f78514a4fddddbe
  Merge: affcf87 dc31f76
  Author: Jenkins <jenkins@xxxxxxxxxxxxxxxxxxxx>

  local.conf:

  [[local|localrc]]
  disable_service n-net
  enable_service q-l3
  enable_service q-svc
  enable_service q-agt
  enable_service q-dhcp
  enable_service q-meta
  enable_service neutron
  ADMIN_PASSWORD=password
  DATABASE_PASSWORD=$ADMIN_PASSWORD
  RABBIT_PASSWORD=$ADMIN_PASSWORD
  SERVICE_PASSWORD=$ADMIN_PASSWORD
  SERVICE_TOKEN=a682f596-76f3-11e3-b3b2-e716f9080d50
  FIXED_RANGE=10.4.128.0/20
  #FLOATING_RANGE=192.168.1.20/30
  #HOST_IP=localhost
  HOST_IP=192.168.1.220
  PUBLIC_INTERFACE=eth0
  FLAT_INTERFACE=br-int
  FLAT_NETWORK_BRIDGE=br-eth0
  NETWORK_GATEWAY=10.4.128.1
  FIXED_NETWORK_SIZE=4096
  SCHEDULER=nova.scheduler.filter_scheduler.FilterScheduler
  Q_PLUGIN=ml2
  OFFLINE=True
  ACTIVE_TIMEOUT=120
  ASSOCIATE_TIMEOUT=60
  BOOT_TIMEOUT=120
  SERVICE_TIMEOUT=120
  EXTRA_OPTS=(metadata_host=$HOST_IP)

  # Allow tenants to create vlans

  ENABLE_TENANT_VLANS=True
  ENABLE_TENANT_TUNNELS=False
  ML2_VLAN_RANGES=physnet1:1100:2999

  # these are needed fo VLANs for tenants to connect to physical switch

  PHYSICAL_NETWORK=default
  OVS_PHYSICAL_BRIDGE=br-int

  Q_DHCP_EXTRA_DEFAULT_OPTS=(enable_metadata_network=True
  enable_isolated_metadata=True)

  Notice I don't have Q_ML2_TENANT_NETWORK_TYPE setm but I am saying I
  want VLANS and I don't want tunnels (and I haven't defined anything
  else related to tunnels, e.g., VNI ranges).

  When I run ./stack.sh with the above, I noticed that br-tun is
  created:

  slogan@slogan-virtual-machine:~/devstack$ sudo ovs-vsctl show
  2d7ac7cc-4358-41e7-afd4-3c5a0081d79f
      Bridge br-ex
          Port br-ex
              Interface br-ex
                  type: internal
          Port "qg-db338515-8c"
              Interface "qg-db338515-8c"
                  type: internal
      Bridge br-tun
          Port br-tun
              Interface br-tun
                  type: internal
          Port patch-int
              Interface patch-int
                  type: patch
                  options: {peer=patch-tun}
      Bridge br-int
  ...

  Also, in ml2_conf.ini:

  [ml2]
  tenant_network_types = vxlan
  type_drivers = local,flat,vlan,gre,vxlan
  mechanism_drivers = openvswitch,linuxbridge
  ...

  The code in question is in devstack/lib/neutron_plugins/ml2:

  Q_ML2_TENANT_NETWORK_TYPE=${Q_ML2_TENANT_NETWORK_TYPE:-"vxlan"}
  # This has to be set here since the agent will set this in the config file
  if [[ "$Q_ML2_TENANT_NETWORK_TYPE" == "gre" || "$Q_ML2_TENANT_NETWORK_TYPE" == "vxlan" ]]; then
      Q_TUNNEL_TYPES=$Q_ML2_TENANT_NETWORK_TYPE
  elif [[ "$ENABLE_TENANT_TUNNELS" == "True" ]]; then
      Q_TUNNEL_TYPES=gre
  fi

  The above code sets the tenant network type to vxlan if not specified
  (as a default). I think the code should account for the
  ENABLE_TENANT_TUNNELS and ENABLE_TENANT_VLANS when defining the
  default.

  Notice that the wiki has a devstack sample that led me down this path,
  I'd like to see the code match this wiki by fixing this bug (I think
  the wiki is fine, it's the script that needs fixing).

  Configure devstack for ML2 with VLANs
  An example control and compute node localrc file is shown here for configuring ML2 to run with VLANs with devstack. This is equivalent to running the OVS or LinuxBridge plugins in VLAN mode.

  Add the following to your control node localrc:
  Q_PLUGIN=ml2
  ENABLE_TENANT_VLANS=True
  ML2_VLAN_RANGES=mynetwork:100:200
  To set special VLAN parameters for the VLAN TypeDriver, the following variable in localrc can be used. This is a space separate list of assignment values:
  Q_ML2_PLUGIN_VLAN_TYPE_OPTIONS=(network_vlan_ranges=600:700)

  (the above is from https://wiki.openstack.org/wiki/Neutron/ML2

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1403625/+subscriptions


Follow ups

References