FIP support for Octavia VIPs
This patch resolves the issue documented in the Jira
issue referenced below.
The basic solution is to use the OF packet-in event to
learn the dpn where the NAT flows need to be programmed.
Overview of code changes:
1. Refactor NatInterfaceStateChangeListener into two classes:
- NatInterfaceStateChangeListener which just receives events
- NatSouthboundEventHandlers which contains the logic invoked
for when an interface state changes (or a garp is received)
2. Implementation of NatArpNotificationHandler which receives
the garps and invokes the correct methods in
NatSouthboundEventHandlers
3. neutron-vip-state yang model which is used together with
VipStateTracker (DataObjectCache) to manage state of the
discovered VIPs. This is required in cases where the
associated Ocatavia Amphora VM changes to a different
compute node. In this case the existing flows must be
removed from the odl compute node.
4. Tweak VIP learning code to accept neutron ports that are
owned by "Octavia", previously the code assumed no neutron
port ever needed to be learned.
Jira: NETVIRT-1402
Change-Id: I7867124f3cbbe88d1ce6d075e51e2b11f941aec2
Signed-off-by: Josh <jhershbe@redhat.com>