← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1384614] [NEW] Update router from centralized to distributed doesn't properly create snat namespace

 

Public bug reported:

In the DVR scenario, admin can update a router from centralized to
distributed via:

neutron router-update router1 --distributed=True

But in L3_NAT_dbonly_mixin.update_router:

r = router['router']
gw_info = r.pop(EXTERNAL_GW_INFO, attributes.ATTR_NOT_SPECIFIED)
if gw_info != attributes.ATTR_NOT_SPECIFIED:
    candidates = self._check_router_needs_rescheduling(context, id, gw_info)
else:
    candidates = None
if candidates:
    l3_plugin = manager.NeutronManager.get_service_plugins().get(constants.L3_ROUTER_NAT)
    l3_plugin.reschedule_router(context, id, candidates)

Since gw_info is not given, candidates will be None, thus neutron server
will not reschedule the router. As a result, snat namespace cannot be
properly created, which will affect the N-S traffic.

** Affects: neutron
     Importance: Undecided
     Assignee: Xurong Yang (idopra)
         Status: New

** Changed in: neutron
     Assignee: (unassigned) => Xurong Yang (idopra)

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

Title:
  Update router from centralized to distributed doesn't properly create
  snat namespace

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  In the DVR scenario, admin can update a router from centralized to
  distributed via:

  neutron router-update router1 --distributed=True

  But in L3_NAT_dbonly_mixin.update_router:

  r = router['router']
  gw_info = r.pop(EXTERNAL_GW_INFO, attributes.ATTR_NOT_SPECIFIED)
  if gw_info != attributes.ATTR_NOT_SPECIFIED:
      candidates = self._check_router_needs_rescheduling(context, id, gw_info)
  else:
      candidates = None
  if candidates:
      l3_plugin = manager.NeutronManager.get_service_plugins().get(constants.L3_ROUTER_NAT)
      l3_plugin.reschedule_router(context, id, candidates)

  Since gw_info is not given, candidates will be None, thus neutron
  server will not reschedule the router. As a result, snat namespace
  cannot be properly created, which will affect the N-S traffic.

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


Follow ups

References