OVN L3 service plugin does not need agent RPC

Bug #1597898 reported by Richard Theis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
networking-ovn
Fix Released
Undecided
Richard Theis
neutron
Fix Released
High
Richard Theis

Bug Description

The OVN L3 service plugin (OVNL3RouterPlugin) inherits from the neutron ExtraRoute_db_mixin class which eventually inherits from the neutron L3RpcNotifierMixin class. The L3RpcNotifierMixin inheritance isn't necessary and unneeded RPC overhead since OVN L3 service plugin doesn't use an L3 agent.

Richard Theis (rtheis)
Changed in networking-ovn:
assignee: nobody → Richard Theis (rtheis)
status: New → Confirmed
Revision history for this message
Richard Theis (rtheis) wrote :

It appears a neutron ML2 change is required because and L3 agent based service is assumed. See http://paste.openstack.org/show/524327/ for error details.

Richard Theis (rtheis)
Changed in neutron:
assignee: nobody → Richard Theis (rtheis)
status: New → In Progress
Changed in networking-ovn:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/348558

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-ovn (master)

Fix proposed to branch: master
Review: https://review.openstack.org/348559

Changed in neutron:
importance: Undecided → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/348897

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/348933

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on networking-ovn (master)

Change abandoned by Richard Theis (<email address hidden>) on branch: master
Review: https://review.openstack.org/348897
Reason: This isn't necessary. The implicit callback cannot be removed since some users still rely on in.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/348558
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=c6b30c392f4bd778e1b69fe1a1b82c9832b83e29
Submitter: Jenkins
Branch: master

commit c6b30c392f4bd778e1b69fe1a1b82c9832b83e29
Author: Richard Theis <email address hidden>
Date: Thu Jun 30 16:17:28 2016 -0500

    Fix L3 NAT DB signature mismatch

    Agentless L3 plugins, such as used by networking-ovn, are required
    to inherit from L3_NAT_db_mixin instead of L3_NAT_dbonly_mixin.
    One reason is that the do_notify=False argument is passed to the
    L3 plugin's disassociate_floatingips() method by the ML2 plugin
    during delete_port(). However, the argument doesn't exist in the
    parent class method. This patch fixes the signature mismatch.

    In addition, agentless L3 plugins implicitly pick up callbacks
    intended for use by L3 agents. Such callbacks will fail unless
    the L3 plugin inherits from L3_NAT_db_mixin. This will be fixed
    in a separate patch.

    The result is that agentless L3 plugins will have added RPC
    notification overhead which isn't necessary.

    Change-Id: I7a7e6b8f07974ac877d36ccb0a94100bf0e07a0e
    Partial-Bug: #1597898

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Reviewed: https://review.openstack.org/348933
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=c7c9c398dbf74456c2a04ebc634e7eaddd5e0ec7
Submitter: Jenkins
Branch: master

commit c7c9c398dbf74456c2a04ebc634e7eaddd5e0ec7
Author: Richard Theis <email address hidden>
Date: Fri Jul 29 10:30:14 2016 -0500

    Support callbacks for L3 plugins without an agent

    Agentless L3 plugins, such as used by networking-ovn, were required
    to inherit from L3_NAT_db_mixin instead of L3_NAT_dbonly_mixin due
    to an L3 NAT DB signature mismatch which was fixed by [1]. With [1]
    fix, agentless L3 plugins would still implicitly pick up callbacks
    intended for use by L3 agents. Such callbacks will fail unless the
    L3 plugin inherits from L3_NAT_db_mixin. This patch supports
    callbacks for L3 plugins without an agent. The callbacks
    have been refactored and are now done implicitly during object
    creation. As a result, the l3_db subscribe() method has been
    deprecated.

    [1] https://review.openstack.org/#/c/348558/

    Change-Id: Id5dd012ffd274314f7d1b39a28525893e0675500
    Partial-Bug: #1597898

Revision history for this message
Richard Theis (rtheis) wrote :

The neutron fixes have been released.

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to networking-ovn (master)

Reviewed: https://review.openstack.org/348559
Committed: https://git.openstack.org/cgit/openstack/networking-ovn/commit/?id=9c810bb3acaa4ede25c5f3796df3603f66887ee8
Submitter: Jenkins
Branch: master

commit 9c810bb3acaa4ede25c5f3796df3603f66887ee8
Author: Richard Theis <email address hidden>
Date: Thu Jun 30 16:18:18 2016 -0500

    OVN L3 service plugin does not need agent RPC

    The OVN L3 service plugin (OVNL3RouterPlugin) inherits from the
    neutron ExtraRoute_db_mixin class which eventually inherits from
    the neutron L3RpcNotifierMixin class. The L3RpcNotifierMixin
    inheritance isn't necessary and adds unneeded RPC overhead since
    the OVN L3 service plugin doesn't use an L3 agent.

    This patch set fixes the problem by having OVNL3RouterPlugin
    inherit from ExtraRoute_dbonly_mixin.

    The OVNL3TestCase unit tests were removed because their were
    duplicating the OVNL3ExtrarouteTests unit tests.

    Depends-On: Id5dd012ffd274314f7d1b39a28525893e0675500
    Change-Id: Iad7e7677852e74ed4d4a70e359dbff41f6014e72
    Closes-Bug: #1597898

Changed in networking-ovn:
status: In Progress → Fix Released
Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/networking-ovn 1.0.0.0b3

This issue was fixed in the openstack/networking-ovn 1.0.0.0b3 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

This issue was fixed in the openstack/networking-ovn 1.0.0.0b3 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.