← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1595043] [NEW] Make DVR portbinding implementation useful for HA ports

 

Public bug reported:

Make DVR portbinding implementation generic so that it will be useful
for all distributed router ports(for example, HA router ports).

Currently HA interface port binding is implemented as a normal port
binding i.e it uses only ml2_port_bindings table, with host set to
master host. When a new host becomes master, this binding will be
updated. But this approach has issues as explained in
https://bugs.launchpad.net/neutron/+bug/1522980

As HA router ports(DEVICE_OWNER_HA_REPLICATED_INT, DEVICE_OWNER_ROUTER_SNAT for DVR+HA) are distributed ports like DVR, we will follow DVR approach of port binding for HA router ports.
So we make DVR port binding generic, so that it can be used for all distributed router ports.

To make DVR port binding generic for all distributed router ports, we need to
1) rename ml2_dvr_port_bindings table to ml2_distributed_port_bindings 
2) rename functions updating/accessing this table
3) Replace 'if condition' for dvr port with distributed port, for example, replace
   if port['device_owner'] == const.DEVICE_OWNER_DVR_INTERFACE:
          with
   if distributed_router_port(port):

** Affects: neutron
     Importance: Undecided
     Assignee: venkata anil (anil-venkata)
         Status: In Progress


** Tags: l2-pop l3-dvr-backlog l3-ha

** Changed in: neutron
     Assignee: (unassigned) => venkata anil (anil-venkata)

** Tags added: l3-dvr-backlog

** Tags added: l2-pop l3-ha

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

Title:
  Make DVR portbinding implementation useful for HA ports

Status in neutron:
  In Progress

Bug description:
  Make DVR portbinding implementation generic so that it will be useful
  for all distributed router ports(for example, HA router ports).

  Currently HA interface port binding is implemented as a normal port
  binding i.e it uses only ml2_port_bindings table, with host set to
  master host. When a new host becomes master, this binding will be
  updated. But this approach has issues as explained in
  https://bugs.launchpad.net/neutron/+bug/1522980

  As HA router ports(DEVICE_OWNER_HA_REPLICATED_INT, DEVICE_OWNER_ROUTER_SNAT for DVR+HA) are distributed ports like DVR, we will follow DVR approach of port binding for HA router ports.
  So we make DVR port binding generic, so that it can be used for all distributed router ports.

  To make DVR port binding generic for all distributed router ports, we need to
  1) rename ml2_dvr_port_bindings table to ml2_distributed_port_bindings 
  2) rename functions updating/accessing this table
  3) Replace 'if condition' for dvr port with distributed port, for example, replace
     if port['device_owner'] == const.DEVICE_OWNER_DVR_INTERFACE:
            with
     if distributed_router_port(port):

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


Follow ups