Bug 1608343
| Summary: | [OSP13][ODL][Octavia][Netvirt] No flows on compute node for floating IP assigned to amphora instance | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Rafal Szmigiel <rszmigie> |
| Component: | opendaylight | Assignee: | Josh Hershberg <jhershbe> |
| Status: | CLOSED ERRATA | QA Contact: | Noam Manos <nmanos> |
| Severity: | high | Docs Contact: | |
| Priority: | medium | ||
| Version: | 13.0 (Queens) | CC: | aadam, astafeye, cgoncalves, ihrachys, jhershbe, lpeer, majopela, mariel, mkolesni, nmanos, nyechiel, oblaut |
| Target Milestone: | z4 | Keywords: | Triaged, ZStream |
| Target Release: | 13.0 (Queens) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | Netvirt | ||
| Fixed In Version: | opendaylight-8.3.0-6.el7ost | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-01-16 17:56:58 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 1636456 | ||
|
Description
Rafal Szmigiel
2018-07-25 10:44:33 UTC
Analysis: An Octavia VIP is a neutron port that is not bound to any VM and is therefor not added to br-int. The VM containing the active haproxy sends gratuitous ARPs for the VIP's IP and ODL intercepts those and programs flows to forward VM traffic to the VMs port. Note that this is my understanding of how this all works, I have not validated it, the opener of this bug confirms that it works. The ODL code responsible for configuring the FIP association flows on OVS currently relies on a southbound openflow port that corresponds to the neutron FIP port. The only real reason this is required is so that ODL can decide which switch should get the flows. See FloatingIPListener#createNATFlowEntries. In the case of the VIP port, there is no corresponding southbound port so the flows never get configured. A possible solution, the details of which need to be worked out, is as follows. In our case, ODL can know which switch to program the flows on from the gratuitous ARP packet-in event which will come from the right switch (we already listen for those.) So, basically we just respond to the gratuitous ARP by correlating it with the neutron port, checking that the port is an Octavia VIP (the owner field), and programming the flows. There are two pieces of housekeeping that need to go along with this, (a) the gratuitous ARPs are continuously sent so we do not want to constantly reprogram the flows and (b) when the VM sending the gratuitous ARPs changes (failover) the old flows need to be erased. https://git.opendaylight.org/gerrit/#/c/75248/ This patch is some infra prep for the fix in netvirt Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2019:0093 |