Bug 7142 - all VpnPortIpToPort entries are lost from ODL cache after 65/47965/25
authorGobinath <gobinath@ericsson.com>
Fri, 4 Nov 2016 02:31:35 +0000 (08:01 +0530)
committerAlon Kochba <alonko@hpe.com>
Tue, 3 Jan 2017 15:58:03 +0000 (15:58 +0000)
commit4c03872b35d29da2066e8924f8ffcf7337f6a599
tree4ab0699ec6ee2ca0f486884421692aa35e3a7d2e
parent3beb9903a1b344f90fb059ed2efad5691e790388
Bug 7142 - all VpnPortIpToPort entries are lost from ODL cache after
reboot.

As part of this fix we ensure that control path information mapping
a vpn to fixed-neutron-port (gleaned from openstack configuration by
the tenant) is persistently retained inside Config Datastore and so
it will be accessible immediately after ODL cluster reboot.

In addition to that we created a new Operational DS that will
hold discovered IPs from the cloud. In more detail, this review
encompasses:

1. Create a new LearntVpnVipToPort OPERATIONAL Datastore which
will contain discovered IP addresses via GARP/ARP responses.

2. The existing NeutronVpnPortIpToPort will be changed as a pure Config
only Datastore as it will store all Neutron Port and their IP and
MAC Addresses.  This datastore will continue to be used
for lookup during ARP resolution and SubnetRoute handling.

3. Decoupling of the mymac changes(subnetMac) from Arp cache feature.
Mymac changes would still be listening to the VpnPortipToPort DS.

4. The ArpNotificationHandler would now modify the LearntVpnVipToPort DS which
the ArpMonitoringHandler would listen to.

The feature which initiates periodic ARP-based location discovery of
non-neutron IPs from the controller brought in via the earlier review
here: https://git.opendaylight.org/gerrit/#/c/45410/

Co-Authored-By: Vivekanandan Narasimhan <n.vivekanandan@ericsson.com>
Change-Id: Ic96517f4a57fe547d42495274a74ec5aa32b7d9e
Signed-off-by: Gobinath <gobinath@ericsson.com>
Signed-off-by: Vivekanandan Narasimhan <n.vivekanandan@ericsson.com>
21 files changed:
vpnservice/elanmanager/elanmanager-api/pom.xml
vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanLearntVpnVipToPortListener.java [moved from vpnservice/elanmanager/elanmanager-impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanVpnPortIpToPortListener.java with 61% similarity]
vpnservice/elanmanager/elanmanager-impl/src/main/resources/org/opendaylight/blueprint/elanmanager.xml
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/NatUtil.java
vpnservice/natservice/natservice-impl/src/main/java/org/opendaylight/netvirt/natservice/internal/SubnetGwMacChangeListener.java
vpnservice/neutronvpn/neutronvpn-api/src/main/yang/neutronvpn.yang
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronPortChangeListener.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnManager.java
vpnservice/neutronvpn/neutronvpn-impl/src/main/java/org/opendaylight/netvirt/neutronvpn/NeutronvpnUtils.java
vpnservice/neutronvpn/neutronvpn-shell/src/main/java/org/opendaylight/netvirt/neutronvpn/shell/ShowVpnIpToPort.java [moved from vpnservice/neutronvpn/neutronvpn-shell/src/main/java/org/opendaylight/netvirt/neutronvpn/shell/ShowNeutronVpnPort.java with 52% similarity]
vpnservice/neutronvpn/neutronvpn-shell/src/main/resources/OSGI-INF/blueprint/blueprint.xml
vpnservice/vpnmanager/vpnmanager-api/src/main/yang/odl-l3vpn.yang
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/ArpMonitorStopTask.java
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/ArpMonitoringHandler.java
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/ArpNotificationHandler.java
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/SubnetMacHandler.java [new file with mode: 0644]
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/SubnetRoutePacketInHandler.java
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnConstants.java
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnInterfaceManager.java
vpnservice/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/netvirt/vpnmanager/VpnUtil.java
vpnservice/vpnmanager/vpnmanager-impl/src/main/resources/org/opendaylight/blueprint/vpnmanager.xml