netvirt.git
6 years agoFix FindBugs violations and enable enforcement in dhcpservice 89/65689/3
Tom Pantelis [Sat, 18 Nov 2017 02:09:24 +0000 (21:09 -0500)]
Fix FindBugs violations and enable enforcement in dhcpservice

See in-line comments

Change-Id: Ib1a0b983f1bf89516a55002bbbb7ddb1f6e61d14
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoNETVIRT-999 - Interface leak when subnet deleted 72/65672/4
Victor Pickard [Fri, 17 Nov 2017 14:31:06 +0000 (09:31 -0500)]
NETVIRT-999 - Interface leak when subnet deleted

https://jira.opendaylight.org/browse/NETVIRT-999

Cleanup/remove Interface when subnet is deleted to
fix resource leak.

Change-Id: Iac96a91de9dbdeeb19f8df3d35cd3e7e514e9471
Signed-off-by: Victor Pickard <vpickard@redhat.com>
6 years agoBugId: NETVIRT-989 TEP not deleted when subnet is deleted 88/65488/7
Victor Pickard [Mon, 13 Nov 2017 15:04:25 +0000 (10:04 -0500)]
BugId: NETVIRT-989 TEP not deleted when subnet is deleted

https://jira.opendaylight.org/browse/NETVIRT-989

Remove TEP from ds when subnet is deleted.

Change-Id: I5db9902c53a4021609718330406ad65985e0dffb
Signed-off-by: Victor Pickard <vpickard@redhat.com>
6 years agoRemove static VrfEntryListener.isOpenStackVniSemanticsEnforced 31/65531/4
Tom Pantelis [Wed, 15 Nov 2017 07:44:44 +0000 (02:44 -0500)]
Remove static VrfEntryListener.isOpenStackVniSemanticsEnforced

VrfEntryListener defines a static isOpenStackVniSemanticsEnforced
which is set in the ctor via the IElanService. FindBugs flags this
as a violation although it technically is safe b/c VrfEntryListener
is a singleton. However statics in this manner aren't good practice.
Users of the static flag should instead inject and obtain the flag
from IElanService.

One user was the static FibUtil class. FibUtil was converted to a
singleton. It also had static methods that take the DataBroker
and IdManagerService. Thee services are now injected and the methods
changed to non-static to make it cleaner. All users of these methods
now inject the FibUtil instance.

Change-Id: Ifecd9511568e263545ca7ce1c486483f67f9fe85
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in fibmanager-impl 27/65527/4
Tom Pantelis [Wed, 15 Nov 2017 03:49:12 +0000 (22:49 -0500)]
Fix FindBugs violations and enable enforcement in fibmanager-impl

See in-line comments

Change-Id: I7eeaa287693922b26d92bef840680858b5519845
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in bgpmanager-impl 55/64855/6
Tom Pantelis [Sun, 29 Oct 2017 04:02:45 +0000 (00:02 -0400)]
Fix FindBugs violations and enable enforcement in bgpmanager-impl

See in-line comments (most on patch set 1)

The thrift-generated code has a quite a few violations and, as
we do with other generated code, I excluded it from analysis.
Only one of the violations in was serious:

   Impossible cast from org.apache.thrift.TApplicationException to
   org.apache.thrift.TBase

This occurs in every BgpConfigurator inner class that creates an
anonymous AsyncMethodCallback instance from its getResultHandler
method. The generated code in onError method does a blind cast
to a clearly incompatible class. I'm not sure what the correct
solution is if we wanted to manual fix the generated code as I'm
not familiar with how thrift works. There isn't a TBase
implementation for an Exception and the generated *_result classes
don't have a field for an Exception.

Change-Id: I3a6a2fd60f2088e307a213563f267bdf00bdd1ef
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoRemove NeutronUtils#lock/unLock in favor of KeyedLock 36/65636/3
Tom Pantelis [Thu, 16 Nov 2017 20:07:36 +0000 (15:07 -0500)]
Remove NeutronUtils#lock/unLock in favor of KeyedLock

The lock/unLock code in NeutronUtils should not be static and
doesn't really belong in a static utils class. A new KeyedLock
class was aded to infrautils so utilize that in NeutronvpnManager
and NeutronFloatingToFixedIpMappingChangeListener. Instead of a
shared, global KeyedLock, each class creates local instances
per resource to lock (router, vpn, interface).

Change-Id: Icbd9c341c8d7399e31ed8c38b92177a7fa8ed666
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFixes/cleanup in aclservice-impl 84/64684/8
Tom Pantelis [Wed, 25 Oct 2017 02:01:21 +0000 (22:01 -0400)]
Fixes/cleanup in aclservice-impl

See inline comments.

Change-Id: I03ec0d7e1a5fd44d617e2e9486714c8e76a1418d
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert vpnmanager-impl to use blueprint annotations 88/65688/2
Tom Pantelis [Sat, 18 Nov 2017 00:20:04 +0000 (19:20 -0500)]
Convert vpnmanager-impl to use blueprint annotations

Now that the circular dependencies have been eliminated, we can
blueprint annotations.

Change-Id: I10d0849e885cff3cb721ca44d84a4c2c3afa92a9
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix transaction leak in NeutronvpnManager 98/65598/2
Michael Vorburger [Thu, 16 Nov 2017 10:59:32 +0000 (11:59 +0100)]
Fix transaction leak in NeutronvpnManager

see https://jira.opendaylight.org/browse/NETVIRT-886

Change-Id: I4b0d73203c46087d35cbfccc8aaf5d29d39d89b0
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoFIXUP ipVersionChoice in case of mutiple add of ipversion 18/65618/2
Noel de Prandières [Thu, 16 Nov 2017 14:06:53 +0000 (15:06 +0100)]
FIXUP ipVersionChoice in case of mutiple add of ipversion

Change-Id: I4c80912f515eb18c14b332215f026557f7b53785
Signed-off-by: Noel de Prandières <prandieres@6wind.com>
6 years agoEliminate statistics-impl dependency on vpnmanagr-impl 54/65654/4
Tom Pantelis [Fri, 17 Nov 2017 02:33:27 +0000 (21:33 -0500)]
Eliminate statistics-impl dependency on vpnmanagr-impl

statistics-impl depends on vpnmanagr-impl to get access to the
InterfaceUtils class. This is problematic for converting vpnmanagr-impl
to use blueprint injection annotations b/c all the @Singleton classes
get included in the statistics-impl blueprint xml. It appears the
plugin scans @Singleton classes in all dependencies. I don't know if
there's a way to prevent that but eliminating the dependency on
vpnmanagr-impl would fix it. It is better not to depend on an impl
bundle anyway. Therefore I moved the InterfaceUtils class to the
vpnmanagr-api bunndle. In addition I modified the maven-bundle-plugin
instructions to not export any packages to prevent a dependency on
vpnmanagr-impl in the future.

Change-Id: I3731a4faf37a1ba56659346cb0a5697707acbc32
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoEliminate circular dependencies in vpnmanager-impl 31/65631/4
Tom Pantelis [Thu, 16 Nov 2017 18:24:50 +0000 (13:24 -0500)]
Eliminate circular dependencies in vpnmanager-impl

There's several circular dependencies surrounding the
VpnManagerImpl that was cleverly worked around by importing
IVpnManager as an optional service. However circular dependencies
and unnecessary coupling are difficult to understand and maintain
and eliminating them will allow us to use injection annotations.

vpnInstanceListener -> vpnInterfaceManager -> vpnManagerImpl -> vpnInstanceListener

  This one was easy by moving the isVPNConfigured code from VpnInstanceListener
  to VpnManagerImpl, which was the only caller.

vpnInterfaceManager -> vpnManagerImpl -> vpnInterfaceManager

  VpnManagerImpl's IVpnManager interface methods addExtraRoute/delExtraRoute
  called a corresponding method on the VpnInterfaceManager so the methods were
  moved to IVpnManager/VpnManagerImpl.

vpnSubnetRouteHandler -> vpnInterfaceManager -> vpnManagerImpl -> vpnSubnetRouteHandler

  Broke the vpnSubnetRouteHandler -> vpnInterfaceManager by moving
  deleteSubnetRouteFibEntryFromDS VpnSubnetRouteHandler which was the only caller.
  However this called getVpnsImportingMyRoute et al which are used by
  VpnInterfaceManager so these were moved to VpnUtil as they're pretty simple
  and mainly use VpnUtil methods anyway.

Also moved addToLabelMapper from VpnInterfaceManager to L3vpnPopulator as it's not
called VpnInterfaceManager. This eliminates unnecessary coupling between
L3vpnPopulator and VpnInterfaceManager.

Change-Id: Ib93a17d2150e5dd758fc294276906d3c4d7c636c
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoShell Commands to Display Ipv6Service Cache 92/65692/1
Sridhar Gaddam [Wed, 11 Oct 2017 07:23:16 +0000 (12:53 +0530)]
Shell Commands to Display Ipv6Service Cache

IPv6Service in netvirt maintains a cache of various Neutron resources to
honor the Router Solicitation/Neighbor Solicitation requests (which are
time sensitive) coming from the VMs spawned on the IPv6 Network.

This patch implements the necessary shell commands to dump the ipv6Cache.

Conflicts:
    vpnservice/features/vpnservice-features/pom.xml
    vpnservice/features/vpnservice-features/src/main/features/features.xml

Change-Id: Ie1aed6d47da540e3fd94c6a8cc3eedf7b4954989
Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
(cherry picked from commit 156124fda4f55fe7c1f34f1e4e8c0584441ad65f)

6 years agoRefactor alarm poms to match latest conventions 66/65666/2
Sam Hague [Fri, 17 Nov 2017 13:19:18 +0000 (08:19 -0500)]
Refactor alarm poms to match latest conventions

Change-Id: I11944df261393aa119c6081cc6e884ce2e29a6b7
Signed-off-by: Sam Hague <shague@redhat.com>
6 years agoConvert vpnmanager-impl to use JobCoordinator 61/65561/9
Tom Pantelis [Wed, 15 Nov 2017 17:22:43 +0000 (12:22 -0500)]
Convert vpnmanager-impl to use JobCoordinator

Change-Id: I9b1753e88c24ed5a533d925dc940fcfee04fc13f
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix bad transaction leak in InterfaceStateChangeListener 27/65627/3
Michael Vorburger [Thu, 16 Nov 2017 17:05:16 +0000 (18:05 +0100)]
Fix bad transaction leak in InterfaceStateChangeListener

see https://jira.opendaylight.org/browse/NETVIRT-985

  555x transactions opened here, which are not closed:
    org.opendaylight.netvirt.vpnmanager.InterfaceStateChangeListener.lambda$remove$1

  31x transactions opened here, which are not closed:
    org.opendaylight.netvirt.vpnmanager.InterfaceStateChangeListener.lambda$add$0

  15x transactions opened here, which are not closed:
    org.opendaylight.netvirt.vpnmanager.InterfaceStateChangeListener.lambda$update$2

Change-Id: Id29be0fb48b3d97f84049d0e0d698d13757eb6a8
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoElan Junit Testcases 94/62894/20
Riyazahmed D Talikoti [Fri, 8 Sep 2017 11:13:40 +0000 (16:43 +0530)]
Elan Junit Testcases

Test Cases below
1. Check for SMAC entry in DPN1 for port created in DPN1
2. Check for DMAC entry in DPN1 for port created in DPN1
3. Check for DMAC entry in DPN1 for port created in DPN2

InterfaceManager, ITM teststubs are moved to genius.

Expected object contains the flow details of SMAC and DMAC
where most of the values are parameterised.

Change-Id: I6fada494719b904465608cfc0e4a3cd5ec8a8911
Signed-off-by: Riyazahmed D Talikoti <riyazahmed.d.talikoti@ericsson.com>
6 years agoneutronvpn: send alarm upon extra route configuration fault using BGPVPN 81/60881/33
Philippe Guibert [Fri, 28 Jul 2017 14:58:37 +0000 (15:58 +0100)]
neutronvpn: send alarm upon extra route configuration fault using BGPVPN

When extra routes are configured, through a router, if the number of
nexthops is greater than the number of available RDs, then an alarm and
an error is generated.

Change-Id: Ib78b1ff82a9a2013ec2f81f28c0e0261ef971177
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Noel de Prandières <prandieres@6wind.com>
6 years agoUnbind and bind DHCP service as part of state. 40/65540/2
Kency Kurian [Wed, 15 Nov 2017 11:50:41 +0000 (17:20 +0530)]
Unbind and bind DHCP service as part of state.

In VM migration UC there were some stale entries observed since dhcp was
not calling unbind and bind in state listeners.
It is recommended by interface managaer module that all services must be
calling the bind/unbind in inerface state listeners.

Change-Id: I00f2e2f7d85b9c9d36fee54a43e6f1011ca94348
Depends-On: Ib1ca5cb4d74a9af5000f60e9d9e85ff9ea3efd9c
Signed-off-by: Kency Kurian <kency.kurian@ericsson.com>
6 years agoSupport for IPv4 subnet addition. 92/64192/7
Kency Kurian [Thu, 12 Oct 2017 11:25:32 +0000 (16:55 +0530)]
Support for IPv4 subnet addition.

If the IPv4 subnet is added after booting the VM then none of the DHCP
flows were programmed. After the new subnet is added in openstack a
neutron port update needs to be done for the neutron port to be updated
with the newly added subnet.

neutron port-update <port-id> --fixed-ip subnet_id=<subnet-id>

Changes made:
Whenever neutron port gets updated with a new fixed ip:
1. Check if the newly added subnet is an IPv4 subnet.
2. If it is an IPv4 subnet invoke the bind logic in a DJC
3. Also, if we know the DPN ID for the VM then install the DHCP flow in
another DJC.
4. Refactored the code a little.

Change-Id: Ib1ca5cb4d74a9af5000f60e9d9e85ff9ea3efd9c
Signed-off-by: Kency Kurian <kency.kurian@ericsson.com>
6 years agoNETVIRT-981 CSIT Sporadic failures - snat conntrack job failing 07/65407/3
Aswin Suryanarayanan [Fri, 10 Nov 2017 10:33:18 +0000 (16:03 +0530)]
NETVIRT-981 CSIT Sporadic failures - snat conntrack job failing
many tempest scenario tests

Changes are made to avoid stale entries when an external network is
deleted.

https://jira.opendaylight.org/browse/NETVIRT-981

Change-Id: I28b86a4233d397686c9e074ece5697eb0629ff3e
Signed-off-by: Aswin Suryanarayanan <asuryana@redhat.com>
6 years agoFix bad transaction leak in StatisticsImpl 64/65564/1
Michael Vorburger [Wed, 15 Nov 2017 17:32:02 +0000 (18:32 +0100)]
Fix bad transaction leak in StatisticsImpl

see https://jira.opendaylight.org/browse/NETVIRT-886

Change-Id: Ia72726f9eeae0bcb6273da5b50eb60a65dcd7358
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoFix FindBugs violations and enable enforcement in vpnmanager-impl 97/65497/5
Tom Pantelis [Tue, 14 Nov 2017 02:25:05 +0000 (21:25 -0500)]
Fix FindBugs violations and enable enforcement in vpnmanager-impl

See in-line comments

Change-Id: I7cbf722bd8ce7a7f965aacf9316def2d60bb9232
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoRemove final DJC reference from neutronvpn-impl 28/65528/2
Tom Pantelis [Wed, 15 Nov 2017 04:50:39 +0000 (23:50 -0500)]
Remove final DJC reference from neutronvpn-impl

DJC was eradicated from neutronvpn-impl but it creeped back into
NeutronvpnUtils in a recent patch.

Change-Id: I7f950ff7e3f600642f2ae0b79082320047a635f5
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoRefactoring and cleanup in neutronvpn-api 79/64979/9
Tom Pantelis [Tue, 31 Oct 2017 20:40:21 +0000 (16:40 -0400)]
Refactoring and cleanup in neutronvpn-api

- Modified L2GatewayCacheUtils to use a ConcurrentMap instead of
  the deprecated Cache.

- Made L2GatewayDevice thread-safe and improved encapsualation

- Enabled FindBugs and fixed violatoions

Change-Id: I70d10e67a8fb800cda51f90e40286e60e2398a67
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in neutronvpn-impl 61/64861/8
Tom Pantelis [Mon, 30 Oct 2017 02:22:03 +0000 (22:22 -0400)]
Fix FindBugs violations and enable enforcement in neutronvpn-impl

See in-line comments.

Change-Id: Ie0dce5f21dee80b9c02405b7636e55a4a8347887
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix warnings and remove statics in neutronvpn-impl 60/64860/5
Tom Pantelis [Sun, 29 Oct 2017 22:30:12 +0000 (18:30 -0400)]
Fix warnings and remove statics in neutronvpn-impl

See inline comments. The major changes were with the NeutronvpnUtils
class which had several public static Maps. The class was refactored
into a singleton class which required injection into many other classes.

Change-Id: Ib2badb6d01c55aab5851c9045d8bea8a911ad0a2
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoBug 8889: Removed trailing comments 48/61148/4
Itohan [Fri, 4 Aug 2017 06:20:47 +0000 (23:20 -0700)]
Bug 8889: Removed trailing comments

Removed trailing comments, deleted
unnecessary ones and placed some before
the code they described. This change would
make the code more readable.

Change-Id: If852f1628d8f57a64c62a9ea09db416ed317e7a4
Signed-off-by: Itohan Ukponmwan <itohan.ukponmwan@intel.com>
6 years agoBug 8889: Defined Constants to remove duplication 28/61128/3
Itohan [Thu, 3 Aug 2017 23:16:12 +0000 (16:16 -0700)]
Bug 8889: Defined Constants to remove duplication

Defined contstants ERROR and IS_NEEDED to replace the string
literals "error: " and " is needed". These changes would
reduce string duplication and make code refactoring easier
and less error-prone.

Change-Id: I32ff8549ac3c5f8102ab15519c79e57bd63951e4
Signed-off-by: Itohan Ukponmwan <itohan.ukponmwan@intel.com>
6 years agoClean up QosNeutronUtils 00/64400/5
Stephen Kitt [Tue, 17 Oct 2017 13:41:56 +0000 (15:41 +0200)]
Clean up QosNeutronUtils

* Avoid returning null for collections and propagate the simplified
  null-handling.
* Use computeIfAbsent and putIfAbsent to simplify map-related code.
* Drop some local variables which are immediately returned to simplify
  declarations.
* Drop some unnecessary parentheses.

Change-Id: I701a032c1cdf1b7fc21d219476ceddc7cdc73ca5
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoBug 9234: DPN programmed wrongly with TOR mac 05/65505/2
eaksahu [Tue, 14 Nov 2017 11:58:21 +0000 (17:28 +0530)]
Bug 9234: DPN programmed wrongly with TOR mac

Correcting mistake in code where cache was added instead of remove.

Change-Id: Ieae2221fa57897b31739358f0fbc900417632844
Signed-off-by: eaksahu <a.k.sahu@ericsson.com>
6 years agoFix warnings/cleanup in natservice-impl 75/64575/7
Tom Pantelis [Fri, 20 Oct 2017 17:22:09 +0000 (13:22 -0400)]
Fix warnings/cleanup in natservice-impl

See inline comments.

Change-Id: Ibb3708ccb05db84d8e41d241ace9c418de357c47
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix warnings/cleanup in dhcpservice-impl 83/64683/5
Tom Pantelis [Wed, 25 Oct 2017 00:24:04 +0000 (20:24 -0400)]
Fix warnings/cleanup in dhcpservice-impl

See inline comments.

Change-Id: I6a2c7500ee19af96c83a88ed9ae6e16a51423b28
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoRemove unused parameters from Genius services 73/63173/14
Stephen Kitt [Fri, 15 Sep 2017 12:35:50 +0000 (14:35 +0200)]
Remove unused parameters from Genius services

Following the clean-up in Genius, remove unnecessary parameters on
cleaned-up methods.

Change-Id: I1a32116f5bd9956e76ee32289597b70e04e0b872
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoSplit QosNeutronUtils.syncFlow 06/64306/7
Stephen Kitt [Mon, 16 Oct 2017 15:24:06 +0000 (17:24 +0200)]
Split QosNeutronUtils.syncFlow

This needs Id882570c15f018ce751b3829fac4a446f4aecfc8

Change-Id: I9488c6c809e1567b6c2d3decc4c6c39d006a6150
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoSplit handleKnownL3DmacAddress 04/64304/6
Stephen Kitt [Mon, 16 Oct 2017 14:41:26 +0000 (16:41 +0200)]
Split handleKnownL3DmacAddress

Change-Id: I2210fcfbf7c7a60ab95a407716d92457997c4230
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoSplit setupArpResponderFlowsToExternalNetworkIps 40/64140/6
Stephen Kitt [Tue, 10 Oct 2017 23:57:48 +0000 (16:57 -0700)]
Split setupArpResponderFlowsToExternalNetworkIps

Change-Id: I3f23d128e2d4c9c90b0894e42bc44c5f4cd3002c
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoSplit setupRouterGwMacFlow 38/64138/6
Stephen Kitt [Tue, 10 Oct 2017 23:11:59 +0000 (16:11 -0700)]
Split setupRouterGwMacFlow

Split setupRouterGwMacFlow into explicit add/remove variants.

Change-Id: I317acf74247e9674b0d4cc2a4578bc60d2b489aa
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoSplit setupSubnetMacIntoVpnInstance 32/64132/7
Stephen Kitt [Tue, 10 Oct 2017 21:46:57 +0000 (14:46 -0700)]
Split setupSubnetMacIntoVpnInstance

Split setupSubnetMacIntoVpnInstance into explicit add/remove
variants. The method used a number of static functions in VpnUtil
which were only used here, so this patch pulls these back into
VpnManagerImpl.

Change-Id: I6b9190dd9e0bec3dd1e0d79f5105d6001457ab66
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoRenamed class LockManager to LockManagerServiceImpl and moved package 92/65292/2
Michael Vorburger [Tue, 7 Nov 2017 23:52:35 +0000 (00:52 +0100)]
Renamed class LockManager to LockManagerServiceImpl and moved package

this change handles the impact of
I5fd1197718aaeda5662cc331957edc301db97029 done in genius for netvirt

Change-Id: I20529de417ccdebda30e07e716661d3585c46ab0
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoFix warnings/cleanup/refactoring in bgpmanagr-impl 46/64846/7
Tom Pantelis [Sat, 28 Oct 2017 02:47:39 +0000 (22:47 -0400)]
Fix warnings/cleanup/refactoring in bgpmanagr-impl

Major hilites:

- In BgpConfigurationManager, modified the starting/stopping of
the BgpAlarms and BgpCounters instances to make it thread-safe
uaing AtomicReferences.

- Modified BgpAlarms to convert static fields to non-static and
change public fields to private. Also added init/close lifecycle
methods.

- Modified BgpCounters to convert static fields to non-static and
added close method to cleanup.

- Eliminated static BgpSyncHandle instance. The only user is
BgpConfigurationManager which now creates a local instance.

See inline comments for other minor changes.

Change-Id: Id179716d3e1cf2d21989ee7e62309aa33349ad66
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert to JobCoordinator in natservice-impl 20/64420/3
Tom Pantelis [Tue, 17 Oct 2017 18:52:56 +0000 (14:52 -0400)]
Convert to JobCoordinator in natservice-impl

DataStoreJobCoordinator is deprecated so convert to use JobCoordinator.

Change-Id: Ibffd141f7f5f12f418d90405de78e88371e30dfc
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agovpnmanager: misc fixes related to dual stack per neutron port. 51/63951/30
Philippe Guibert [Mon, 2 Oct 2017 17:33:10 +0000 (18:33 +0100)]
vpnmanager: misc fixes related to dual stack per neutron port.

- route interface state applies to more than one IP.
introduction of dual stack makes it possible to handle more than one
fixed IP, then more than one associated subnet. This change applied the
change of yang port-op-data-entry structure to support a list of
subnet-ids. This information is updated in
SubnetRouteInterfaceStateChangeListener, where the list of subnets is
extracted from the Neutron port.
- vpnmanager: remove and update prefixtointerface for dual stack addresses
Due to the possibility to have two primary IP addresses per port, some
VPN migration scenarios may not work with the other IP address. The code
is adapted to parse all the primary adjacencies of the VPN Interface.

Change-Id: I2936014f9aaa5b42b820466affd3ada31695860d
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
6 years agovpnservice: misc fixes mainly about BGPVPN configuration 49/62949/52
Philippe Guibert [Sun, 10 Sep 2017 17:44:02 +0000 (18:44 +0100)]
vpnservice: misc fixes mainly about BGPVPN configuration

- Bug-9134: avoid returning exception when checking for a non IPv4 prefix
In order to not having an exception returned, the Nwutils library is not
used to check for an IPv4 address.

- vpnmanager: for each vrf sub family deleted, partial FIB removed
Upon VRF sub family deletion, associate FIB entries are looked up and
removed.

- add generic vpn-config attribute in vpn-instance
This generic field contains BGPVPN information ( import / export rules,
RD), that will be used and synced with ipv4-family and ipv6-family in
the same structure. By default, vpn-config is present, and is used. If
an IPv4 subnet is found, then ipv4-family is created based on what
contains vpn-config.

- Bug 9168: multipath command supports vpnv6 address families
The multipath command changes:
o the addr-family is optional and takes as default value vpnv4
o it is possible to set multipath for vpnv6 , evpn, or lu address-family

- Bug-9167: in case of subnetmap update, the networkId is set correctly
There are cases where the subnetmap networkId field is flushed, and
never set back when an update occurs.

Change-Id: I3af7f6d5e700735450fd615d1b080229c2dfd771
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
6 years agoNETVIRT-968 : Conntrack SNAT fails in a cluster setup. 95/64795/9
Aswin Suryanarayanan [Fri, 27 Oct 2017 08:45:40 +0000 (14:15 +0530)]
NETVIRT-968  : Conntrack SNAT fails in a cluster setup.

Made  the SNAT node event listener cluster aware using
AbstractClusteredAsyncDataTreeChangeListener(Only in Oxygen)

https://jira.opendaylight.org/browse/NETVIRT-968

Change-Id: If036fe679abe8ac5c5457b488325d2474f85820c
Signed-off-by: Aswin Suryanarayanan <asuryana@redhat.com>
6 years agoBug9298 : ModifiedNodeDoesNotExistException for FIP 30/64930/6
cgowdru [Tue, 31 Oct 2017 07:14:29 +0000 (12:44 +0530)]
Bug9298 : ModifiedNodeDoesNotExistException for FIP

Description:
1) This Exception is thrown which deleting the VM instances(using
command “openstack server delete VM“) as part of “External network test”
2) This VMs are booted directly using net-id
Ex: openstack server create --image cirros-0.3.5-x86_64-disk --flavor
m1.nano --nic net-id=193f740e-910f-4038-9a4a-7d8758e63756
VmInstanceFloating1 --security-group sg-connectivity --min 1 --max 1
3) And such Vms are associated with floating ip  using command
“openstack server add floating ip VmInstanceFloating1 10.10.10.12”
4) When such an VM is deleted using “openstack server delete”, I need
NeutronPortChangeListener.remove()(for VM Neutron port deletion) and
NeutronFloatingToFixedIpMappingChangeListener.update(for
floatingip-disassoicated from neutron port) getting triggered
concurrently.
5) NeutronPortChangeListener.remove() -> handleNeutronPortDeleted()
-> nvpnManager.dissociatefixedIPFromFloatingIP() ->
floatingIpMapListener.dissociatefixedIPFromFloatingIP() ->
removeRouterPortsOrPortsNode() -> MDSALUtil.syncDelete()
6) NeutronFloatingToFixedIpMappingChangeListener.update() ->
clearFromFloatingIpInfo() -> MDSALUtil.syncDelete()
7) Both step-5 and step-6 attempt to delete same DS instance
resulting in one in this exception.

Solution:
Change done to check if the internal-to-external-port-map fo the given
fixed-ip exists during Step-6 flow there-by preventing deletion on
non-existant DS instance.

Change-Id: Icc4973020ff73225a5b25a5e73d1ffcbf78f2609
Signed-off-by: cgowdru <chetan.arakere@altencalsoftlabs.com>
6 years agoBug 9297 : Adjacency doesn't exist exception fo FIP 18/65018/4
cgowdru [Thu, 2 Nov 2017 07:21:43 +0000 (12:51 +0530)]
Bug 9297 : Adjacency doesn't exist exception fo FIP

Description : When are ARP request for floating-ip(which is learnt
earlier) is received(with mac address change due to deletion and creation
of same FIP during tempest), query is done to delete the odl-adjacency
from vpn-interface which doesn't exists.

Instead of quering all adjacenies, change done for existance of specific
adjancency and delete it if only exists.

Change-Id: Id39f9f0830330bb84869c0d3a88c4787cd55df3c
Signed-off-by: cgowdru <chetan.arakere@altencalsoftlabs.com>
6 years agoneutronvpn: dual stack changes 17/62917/46
Valentina Krasnobaeva [Tue, 23 May 2017 09:08:42 +0000 (11:08 +0200)]
neutronvpn: dual stack changes

The vpn interface creation/deletion is decorrelated with the adjacencies
and fixed ips contexts port creation. This becomes necessary since each
neutron port will receive creation of ports, but also updates related to
update of new IPs ( which implies that it does not mean creation of VPN
interface).
Also if fixes in vpnmanager an issue upon some cases where networkId
field from subnetmap was null.

Change-Id: I664421f592ea7da9c34f5400100502593bfeea55
Signed-off-by: Valentina Krasnobaeva <valentina.krasnobaeva@6wind.com>
Signed-off-by: Noel de Prandieres <prandieres@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
6 years agobgp-manager: update thrift model 80/57980/142
Philippe Guibert [Mon, 29 May 2017 13:00:22 +0000 (14:00 +0100)]
bgp-manager: update thrift model

addVrf() and delVrf() have 2 new parameters that are needed.
The modification consists in adapting the necessary thrift generated
files changes. On top of that, the call appropriate to BgpRoute.addVrf
and BgpRoute.delVrf is done with correct parameters.

Change-Id: Ie2a42923e804d30668c649434fa21fbb39f2ef1c
Signed-off-by: Noel de Prandieres <prandieres@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Valentina Krasnobaeva <valentina.krasnobaeva@6wind.com>
6 years agoRemove un-used Dropwizard Metrics from bgpmanager 39/65339/2
Michael Vorburger [Wed, 8 Nov 2017 22:32:48 +0000 (23:32 +0100)]
Remove un-used Dropwizard Metrics from bgpmanager

Found during https://jira.opendaylight.org/browse/INFRAUTILS-19

If bgpmanager wants metrics in the future, then it should use the
upcoming infrautils.metrics instead of having a direct dependency on
io.dropwizard.metrics.

Change-Id: I54555c518f0b48f49f940021ba093a264f474e8d
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoComment out LogCaptureRule in ElanServiceTest 42/65342/1
Michael Vorburger [Wed, 8 Nov 2017 23:42:30 +0000 (00:42 +0100)]
Comment out LogCaptureRule in ElanServiceTest

to avoid spurious test failures for now; when I get time I'm hoping to
follow up with work which makes this completely reliable by having tests
await the completion of JC background jobs (which is what's causing
this)

Change-Id: I2bcc19f01a0665a85ab155cfa616817fdb3c4854
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agovpnmanager: update vpn instance families based on subnetmap updates only 16/62916/48
Valentina Krasnobaeva [Tue, 5 Sep 2017 09:47:22 +0000 (11:47 +0200)]
vpnmanager: update vpn instance families based on subnetmap updates only

Upon a change in configuration, VPN instance from config DS is updated.
The change is due to a subnetmap moving to or from an other vpnid. If the old
VPN was a BGPVPN, then the list of subnetmaps will be parsed to check if
an IP family is missing or not. Reversely, the introduction of a new
subnet refreshes the IP families of the VPN instance.
According to the information, the VPN instance is updapted.
Consequently, if BGPVPN is configured, then the associated BGP VRFs are
updated accordingly.
Also, the vpnmanager shell command is modified accordingly with correct
AFConfig. Because a VPN instance can be either IPv4 or IPv6 or both,
then a check should be done against the good structure to parse.

Change-Id: I76b067eda44900d5c7bbf3f9792a55c32f711612
Signed-off-by: Valentina Krasnobaeva <valentina.krasnobaeva@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
6 years agoConvert to JobCoordinator in aclservice-impl 22/64322/8
Tom Pantelis [Tue, 17 Oct 2017 00:40:19 +0000 (20:40 -0400)]
Convert to JobCoordinator in aclservice-impl

DataStoreJobCoordinator is deprecated so convert to use JobCoordinator.

Change-Id: Ibdeb83f2c147a1b0d651fca792f91f7674d3d802
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoBug 9299 - In conntrack SNAT Vpn to dpn maps fails to update when a 87/64387/13
Aswin Suryanarayanan [Tue, 17 Oct 2017 07:01:21 +0000 (12:31 +0530)]
Bug 9299 - In conntrack SNAT Vpn to dpn maps fails to update when a
subnet is added/removed

Added update method in centralized switch scheduler. This will update
the maps when a subnet is added/ removed from the router.

Change-Id: I7418cf0e3586fc643c14c86f807c542ed586305d
Signed-off-by: Aswin Suryanarayanan <asuryana@redhat.com>
6 years ago21->nat-group flow is not present on OVS after “upgrade” 83/64983/1
cgowdru [Mon, 30 Oct 2017 07:47:11 +0000 (13:17 +0530)]
21->nat-group flow is not present on OVS after “upgrade”

table=21, priority=10,ip,metadata=0x30d42/0xfffffe actions=group:225000
(checks the VRF id and forwards to a group
that outputs to the external interface)
The flow is in fact written by ODL but rejected by OVS because
group:225000 is not present at the time the flow is written.
Group:225000 is not written because at the time that is triggered
(twice, actually) there is no /elan-interfaces/elan-interface for the
external network (trunk) port because OVS has not yet connected.

Create a default NAT group(225000) before installing flow the
21->group:225000. If elan-interface(for external-interfaces) are missing
during this group creation, then create this group with an drop action.
Once elan-interfaces are available, this group will be updated with proper
action values.

Steps perfomed
--------------

1) Shutdown ODL (logout)
2) wipe data store (rm -rf $KARAF_HOME/journal/* &
$KARAF_HOME/snapshots/*)
3) disconnect OVS and clear groups/flows
sudo ovs-ofctl del-flows -O Openflow13 br-int
sudo ovs-ofctl del-groups -O Openflow13 br-int
sudo ovs-vsctl del-manager
sudo ovs-vsctl del-controller br-int
4) restart ODL (./karaf)
5) Wait for net-odl full sync from neutron
- waited until DS gets poulatedi
- (ex : GET http://192.168.56.1:8181/restconf/config/neutron:neutron/ports)
6) reconnect OVS
sudo ovs-vsctl set-manager "tcp:192.168.56.1:6640"
sudo ovs-vsctl set-controller br-int "tcp:192.168.56.1:6653"

Change-Id: Iad89b3ff7935846b0bf1a3b9b3a4690ff87fcd9c
Signed-off-by: cgowdru <chetan.arakere@altencalsoftlabs.com>
6 years agoConvert to JobCoordinator in qosservice-impl 77/64677/3
Tom Pantelis [Tue, 24 Oct 2017 18:49:19 +0000 (14:49 -0400)]
Convert to JobCoordinator in qosservice-impl

Change-Id: I3462bacddee1ad01803fdacec4f355e7c8a5bb7d
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert bgpmanager-impl to use mdsal EOS APIs 28/64828/2
Tom Pantelis [Thu, 12 Oct 2017 18:05:46 +0000 (14:05 -0400)]
Convert bgpmanager-impl to use mdsal EOS APIs

The controller EOS APIs are deprecated.

Change-Id: Ibb54eafc0561fa4ee1845498b5d17ef9b3b01363
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert to JobCoordinator in neutronvpn-impl 59/64859/2
Tom Pantelis [Sun, 29 Oct 2017 20:33:45 +0000 (16:33 -0400)]
Convert to JobCoordinator in neutronvpn-impl

Change-Id: I2f328995de40918bd3031d5754d91ffdf0c728cf
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert to JobCoordinator in dhcpservice-impl 21/64321/6
Tom Pantelis [Tue, 17 Oct 2017 00:12:25 +0000 (20:12 -0400)]
Convert to JobCoordinator in dhcpservice-impl

DataStoreJobCoordinator is deprecated so convert to use JobCoordinator.

Change-Id: Idb4057c125e41bf64dcba559caedfe8d046da28f
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert to JobCoordinator in cloud-servicechain-impl 25/64325/3
Tom Pantelis [Tue, 17 Oct 2017 01:19:52 +0000 (21:19 -0400)]
Convert to JobCoordinator in cloud-servicechain-impl

DataStoreJobCoordinator is deprecated so convert to use JobCoordinator.

Change-Id: Icce0eb72bf61fbc703e79f246aa7e8dc796e83f9
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert to JobCoordinator in policyservice-impl 24/64324/2
Tom Pantelis [Tue, 17 Oct 2017 01:02:50 +0000 (21:02 -0400)]
Convert to JobCoordinator in policyservice-impl

DataStoreJobCoordinator is deprecated so convert to use JobCoordinator.

Change-Id: I4e12d77e8626a7638c3cd4ada700061ee5ae81ae
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert to JobCoordinator in fibmanager-impl 23/64323/2
Tom Pantelis [Tue, 17 Oct 2017 00:53:12 +0000 (20:53 -0400)]
Convert to JobCoordinator in fibmanager-impl

DataStoreJobCoordinator is deprecated so convert to use JobCoordinator.

Change-Id: I17094b2da363bd4a96cca06d5c53cc45da001642
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoRemove deploy-site.xml 03/64903/2
Thanh Ha [Mon, 30 Oct 2017 21:14:37 +0000 (17:14 -0400)]
Remove deploy-site.xml

With the javadoc jobs now available to generate javadoc it is time to
remove the maven-sites and related files.

Change-Id: If19cda9d89fd6ad5c0cb1351885c59d501ffe6aa
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
6 years agoFix ElanServiceTest by adding ElanServiceTest 15/64915/1
Michael Vorburger [Mon, 30 Oct 2017 23:34:53 +0000 (00:34 +0100)]
Fix ElanServiceTest by adding ElanServiceTest

ElanServiceTest broke on master following
I75a0edccef1b47ecf1c246c9e51e7717916f1da2 ... :-(

Change-Id: Ib63cf571901e23e9d3dc897781c779866c5f052c
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoRevert "INFRAUTILS-18: @Ignore AclServiceStatefulTest until JobCoordinator fixed" 27/64827/1
Michael Vorburger [Fri, 27 Oct 2017 20:29:38 +0000 (22:29 +0200)]
Revert "INFRAUTILS-18: @Ignore AclServiceStatefulTest until JobCoordinator fixed"

This reverts commit fbde3eaa72bb40528df7bb482feef8103b812e9b,
because https://jira.opendaylight.org/browse/INFRAUTILS-18 is fixed.

Change-Id: I849d7c6abf5d53cf0d1cba5f8349318f6f45f0e8
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoRefactor/cleanup BgpConfigurationManager 79/64179/4
Tom Pantelis [Wed, 11 Oct 2017 20:37:35 +0000 (16:37 -0400)]
Refactor/cleanup BgpConfigurationManager

- converted static fields to instance fields
- changed all instance fields to private
- removed unused fields/variables/code
- fix warnings

Change-Id: Ic6629f39558ec5280718c42d56a6af9c6a194e46
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert dhcpservice to use mdsal EOS APIs 27/64127/8
Tom Pantelis [Tue, 10 Oct 2017 18:20:12 +0000 (14:20 -0400)]
Convert dhcpservice to use mdsal EOS APIs

The controller EOS APIs are deprecated.

Change-Id: I2670160dd459b4f3ff64aff2a877b2a6f0683988
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoINFRAUTILS-18: @Ignore AclServiceStatefulTest until JobCoordinator fixed 07/64807/2
Michael Vorburger [Fri, 27 Oct 2017 12:59:21 +0000 (14:59 +0200)]
INFRAUTILS-18: @Ignore AclServiceStatefulTest until JobCoordinator fixed

Change-Id: I6f53a51a26442572a001db2cc5f49c062f2de1a5
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoBug9245: Table=21 related exceptions fixes 81/64381/10
ehvkand [Tue, 17 Oct 2017 06:05:25 +0000 (11:35 +0530)]
Bug9245: Table=21 related exceptions fixes

https://jira.opendaylight.org/browse/NETVIRT-940

Change-Id: I66ae23bd3fd9ad1e2a80648672f8120ffd3beea3
Signed-off-by: ehvkand <hanamantagoud.v.kandagal@ericsson.com>
Signed-off-by: HANAMANTAGOUD V Kandagal <hanamantagoud.v.kandagal@ericsson.com>
6 years agoUse JobCoordinatorTestModule in aclservice component tests 00/60300/5
Michael Vorburger [Thu, 13 Jul 2017 17:51:58 +0000 (23:21 +0530)]
Use JobCoordinatorTestModule in aclservice component tests

This is required to be merged into netvirt at the same time as the
related change https://git.opendaylight.org/gerrit/#/c/60303/ goes into
genius; that one introduces the JobCoordinatorTestModule as part of
making genius' DJC delegate to infrautils' JC (and by doing so, breaks
the aclservice component tests).

Change-Id: I0f2c5258315f40f9db88806fe0a33619f0f7bb77
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoConvert aclservice-impl to use mdsal EOS APIs 60/64160/3
Tom Pantelis [Wed, 11 Oct 2017 13:08:20 +0000 (09:08 -0400)]
Convert aclservice-impl to use mdsal EOS APIs

The controller EOS APIs are deprecated.

Change-Id: I8471f5e1734d12ce88d05e1ff9ee120822e591eb
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert neutronvpn-imp to use mdsal EOS APIs 42/64142/6
Tom Pantelis [Wed, 11 Oct 2017 04:03:39 +0000 (00:03 -0400)]
Convert neutronvpn-imp to use mdsal EOS APIs

The controller EOS APIs are deprecated.

Change-Id: I9c4fba9147a72ab48ff7bc1bdb38a02a8c38515e
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert elanmanager-impl to use mdsal EOS APIs 41/64141/7
Tom Pantelis [Wed, 11 Oct 2017 02:17:53 +0000 (22:17 -0400)]
Convert elanmanager-impl to use mdsal EOS APIs

The controller EOS APIs are deprecated.

Change-Id: Ic0b4cbc2fc6b3e11958841d2704407f38edf7504
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert vpnmanager-impl to use mdsal EOS APIs 36/64136/7
Tom Pantelis [Tue, 10 Oct 2017 22:32:40 +0000 (18:32 -0400)]
Convert vpnmanager-impl to use mdsal EOS APIs

The controller EOS APIs are deprecated.

The ArpMonitoringHandler previously used the EntityOwnerUtils to
register its candidate which has the side effect of registering
a global EntityOwnershipListener that maintains local ownership
state for all entities in a static cache. It also stores change
events in a static (unsycnhronized) EVENTS_HISTORY list which grows
unbounded. It seems this is only used in one place to print the
history via a CLI command. Both these side effects are problematic
and I don't think need/should be propagated forward.

Change-Id: Ied8e3f061c798de9a0e8af97e13fc9dd7e5d51a6
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoNETVIRT-926 - Maxpath value should be between 1 to 64 in BGP multipath 48/64648/4
Gowri R [Tue, 24 Oct 2017 12:13:16 +0000 (17:43 +0530)]
NETVIRT-926 - Maxpath value should be between 1 to 64 in BGP multipath

Adding a check to ensure maxpath value for BGP multipath is in the range 1 to 64

Change-Id: I6797caca05efe35242ed6a44b73ca28827b5edfe
Signed-off-by: Gowri R <gowri.r@ericsson.com>
6 years agoBug 9234: CSS programmed wrongly with TOR mac 84/63884/9
eaksahu [Mon, 2 Oct 2017 20:24:40 +0000 (01:54 +0530)]
Bug 9234: CSS programmed wrongly with TOR mac

With these changes following improvement has been done.
1. All cache update are now happening inside DJC job .(DPNInterfaces
cache , ELan L2gwDevices , ELan Devices and Mac addresses)
2. Upon node Disconnect macs are not being withdrawn now from other
devices.
3. Upon node reconnect macs are scanned for stale entries and are
cleared .

LocalUcastMacListener has been added newly with the new childListener
class which listenes to parent node and processes child node if
required.
DPN cache , TOR cache and Mac cache were not synchronized properly
,leading to race conditions which is fixed in this.

Change-Id: I440e17750c86bc132b75222a91a06654126f9b75
Signed-off-by: eaksahu <a.k.sahu@ericsson.com>
6 years agoRefactor/cleanup BgpRouter 65/64165/2
Tom Pantelis [Wed, 11 Oct 2017 14:36:19 +0000 (10:36 -0400)]
Refactor/cleanup BgpRouter

- eliminated static instance
- converted static nature of fields to class fields
- removed unused fields

Change-Id: Ia7264795ccedb34125da8e35d756ddd3df18643b
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoUpdated to use bind-service update instead of bind and unbind in Acl VPN 24/64124/6
Shashidhar Raja [Tue, 10 Oct 2017 16:47:00 +0000 (22:17 +0530)]
Updated to use bind-service update instead of bind and unbind in Acl VPN
listener

This commit has a dependency on below genius commit:
https://git.opendaylight.org/gerrit/#/c/64123/

Depends-On: Ib05a8fcfac8e74fa5a925edd0db49b7254bbed6a
Change-Id: I3acfe6f7f3f3e98139eb2413774d559ba8c25f8d
Signed-off-by: Shashidhar Raja <shashidharr@altencalsoftlabs.com>
6 years agoRefactor qosservice-mpl to remove statics 15/64215/5
Tom Pantelis [Thu, 12 Oct 2017 20:59:05 +0000 (16:59 -0400)]
Refactor qosservice-mpl to remove statics

Several of the classes contained static fields and methods which
generally isn't best practice. Most of it centered around QosNeutronUtils
where users of the class pass service instances, eg DataBroker,
INeutronVpnManager et al, into the static methods. Instead of
QosNeutronUtils being static, I changed it to a singleton with the
services injected. This simpplifies users as they no longer have to
inject the services merely to pass into QosNeutronUtils methods.

Change-Id: Ib3c5efc1224979cd9b800d82fca1b631af9cf403
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert qosservice-impl to use mdsal EOS APIs 11/64211/4
Tom Pantelis [Thu, 12 Oct 2017 18:27:02 +0000 (14:27 -0400)]
Convert qosservice-impl to use mdsal EOS APIs

The controller EOS APIs are deprecated.

Change-Id: I5f10f11322e1533c540821726649c61acf48ae35
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoReplace deprecated Futures.addCallback by the newer version 44/64044/3
David Suarez [Sun, 8 Oct 2017 15:52:39 +0000 (17:52 +0200)]
Replace deprecated Futures.addCallback by the newer version

The method addCallback(ListenableFuture<V> future,
FutureCallback<? super V> callback) is deprecated and will be replaced
by a new its new version addCallback(ListenableFuture<V> future,
FutureCallback<? super V> callback, Executor executor) in April 2018.

Some other minor changes to pass the new version of checkstyle.

Change-Id: I3e288aad0aeee3e5f8cc9aeb777dd3d2cfb5c00a
Signed-off-by: David Suarez <david.suarez.fuentes@gmail.com>
6 years agoSpec: ACL support for protocols that are not supported by conntrack 46/62546/19
Somashekar Byrappa [Fri, 1 Sep 2017 13:28:35 +0000 (18:58 +0530)]
Spec: ACL support for protocols that are not supported by conntrack

This spec addresses following issues in ACL module:
(a) Enhance ACL to support protocols like OSPF, VRRP etc that are not
    supported by conntrack in stateful mode.
(b) Handle overlapping IP addresses while processing remote ACLs.
(c) Optimization for Remote ACL by reducing number of flows even for ports
    having multiple ACLs.

Change-Id: I8ee79a0769e24b351cabf88fb268b28389b43da3
Signed-off-by: Somashekar Byrappa <somashekar.b@altencalsoftlabs.com>
6 years agoHandle usecase when ELAN is null, and ACL service BIND/ADD fails due to NPE 47/62747/10
kiranvasudeva [Wed, 6 Sep 2017 10:03:58 +0000 (15:33 +0530)]
Handle usecase when ELAN is null, and ACL service BIND/ADD fails due to NPE

(a) Added ElanInterface Listener for Acl service, if ElanInterface add event comes
    after ConfigInterface or InterfaceState event's, update ElanId into aclInterface,
    invoke Bind and add.
(b) Skip Bind/Add in AclInterfaceListener/AclInterfaceStateListener if Elan id is null
(c) Sync all aclInterface modifications.

Change-Id: I29969844262af9c4972d8eeaaaf8a760e91b16d9
Signed-off-by: kiranvasudeva <kirankumar.v@altencalsoftlabs.com>
6 years agoBUG 9221: Improve logical SFF handling 48/64448/2
Jaime Caamaño Ruiz [Wed, 27 Sep 2017 13:50:24 +0000 (15:50 +0200)]
BUG 9221: Improve logical SFF handling

Ensure that the logical SFF is there when configuring a chain through
sfc trasnlator in case it might have been previously removed. Remove
it only when the feature is disabled.

Handle multiple SF data plane locators on chain removal so that non
logical SFF is also cleaned up afterwards.

Change-Id: I4b37f0c0cfd6fe2a3bd0fb66af66aa25ce662012
Signed-off-by: Jaime Caamaño Ruiz <jaime.caamano.ruiz@ericsson.com>
6 years agoBUG 9220: don't use tun_gpe_np as match field 47/64447/1
Jaime Caamaño Ruiz [Mon, 9 Oct 2017 13:33:33 +0000 (15:33 +0200)]
BUG 9220: don't use tun_gpe_np as match field

tun_gpe_np is not supported as match field on nsh patch OVS 2.6. This
field was used to match nsh vxlan encapsulated packets on sfc classifier
pipeline. Even if tun_gpe_np could be used, it wouldn't help as
currently encapsulation is implemented as vxlan+eth+nsh as opposed to
vxlan+nsh.

Workaround is to check for eth+nsh and check for tun_dst=0 with higher
priority to discern non tunneled nsh packets against tunneled ones.

Change-Id: I5038f5d8e89bdada559a736c711478f1bf123453
Signed-off-by: Jaime Caamaño Ruiz <jcaamano@suse.com>
6 years agoBug-9222: OptimisticLockFailedException error messages 14/63614/4
Philippe Guibert [Wed, 27 Sep 2017 13:05:33 +0000 (14:05 +0100)]
Bug-9222: OptimisticLockFailedException error messages

This commit reduces the number of calls to future.add().
This is a change introduced in neutron portchangelistener, in review
60185.

Change-Id: Ieaf466a56232e9999bb92858dfbf8be89e431194
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
6 years agoBug 9181: Code changes for conflicting modifications exceptions of table=19 90/63490/20
HANAMANTAGOUD V Kandagal [Mon, 25 Sep 2017 12:30:58 +0000 (18:00 +0530)]
Bug 9181: Code changes for conflicting modifications exceptions of table=19

Table=19 conflicting modification exception is seen when Router Interface
VRF entry is being created and VM is being booted at the same time.
This creates a race condition where same flow identity for table=19 is
being written into inventory configDS.

Fix:
Synchronization is being done over VpnInstance to avoid two threads trying
to write the same flow at same time.

Change-Id: I38d6b12bcec4ade471c99571028265d868a1e3a2
Signed-off-by: HANAMANTAGOUD V Kandagal <hanamantagoud.v.kandagal@ericsson.com>
Signed-off-by: ehvkand <hanamantagoud.v.kandagal@ericsson.com>
Signed-off-by: HANAMANTAGOUD V Kandagal <hanamantagoud.v.kandagal@ericsson.com>
6 years agoBug 9246: Conflicting modification from ARP and Router-GW-Mac 62/64062/1
karthikeyan [Mon, 9 Oct 2017 12:42:33 +0000 (18:12 +0530)]
Bug 9246: Conflicting modification from ARP and Router-GW-Mac

Problem Statement:
==================
The following runtime exceptions was throwing from NAT module as part of
" Delete Vm Instances" in CSIT.

Exception 1:
============
Conflicting modification for path
/(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:264442126811301}]
[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=81}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=Arp:tbl_81:lport_11:tpa_10.10.10.3}]

Exception 2:
============
Conflicting modification for path
/(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:264442126811301}]
[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=19}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=fa:16:3e:ce:fd:00.100003.2644421268113
01.19}]

Solution:
==========
Whenever NAPT switch over happens DS odl-nat:napt-switches will get update
with newly elected NAPT switch ID for particular router. If there is an
update in DS CentralizedSwitchChangeListener will get triggered and
re-install the L3_GW_MAC_TABLE (19) and ARP_RESPONDER_TABLE (81) flows. As
part of doing this we were used single write transaction object for both
DELETE and ADD. This is the root cause of this throwing conflict
modification exceptions. Now we have created separate write transaction
object for ADD and DELETE.

Change-Id: I409442c07535504ba642475c17c5a787cbf2a261
Signed-off-by: karthikeyan <karthikeyan.k@altencalsoftlabs.com>
6 years agoBug 8976 - Upstreaming fixes to master 89/63989/1
Philippe Guibert [Thu, 5 Oct 2017 14:06:20 +0000 (15:06 +0100)]
Bug 8976 - Upstreaming fixes to master

This patch contains fix for removing spaces on two log messages.

Change-Id: I7347933d50650a10ee9092655d8503d20a6c3ef6
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
6 years agoBug 8964 - Neutron test 44/63944/3
Aswin Suryanarayanan [Wed, 4 Oct 2017 14:30:41 +0000 (20:00 +0530)]
Bug 8964 - Neutron test
neutron.tests.tempest.scenario.test_floatingip.FloatingIpSameNetwork.test_east_west
fails

Set the in_port to zero in NAPT_PFIB table. This prevents the packet
drop in NAPT switch when the packet originating from tunnel is send back
to the same tunnel after DNAT to a Non Napt Switch.

The test[1](FloatingIpSameNetwork) verifies the traffic between a vm
with NFIP and vm with FIP with same internal n/w. The test now fails if
the NFIP vm and FIP vm happens to be in the same non NAPT switch.

[1]https://github.com/openstack/neutron/blob/master/neutron/tests/tempest/scenario/test_floatingip.py#L125

Change-Id: I42d98cc411ae21b8d32e44f4bc9217e22946cdc8
Signed-off-by: Aswin Suryanarayanan <asuryana@redhat.com>
6 years agoTest SNAT mostSignificantBit() 37/63937/3
Stephen Kitt [Wed, 4 Oct 2017 12:07:16 +0000 (14:07 +0200)]
Test SNAT mostSignificantBit()

Static analysis complains that the current implementation of
mostSignificantBit() overflows int; that’s actually not the case, but
we can rewrite it more efficiently using Integer.numberOfLeadingZeros
anyway (with a unit test to ensure that the behaviour doesn’t
change).

loadStart and loadEnd can be converted to static constants.

Change-Id: I7e9068edd9d6c98e7c1a3c830ad8d7098d01dc75
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoBug 9237 - NPE: InternalToExternalPortMapKey 36/63936/1
Sam Hague [Tue, 3 Oct 2017 18:43:36 +0000 (14:43 -0400)]
Bug 9237 - NPE: InternalToExternalPortMapKey

Change-Id: I40f0e07d11540480163cde2e15ec6e22583e4845
Signed-off-by: Sam Hague <shague@redhat.com>
(cherry picked from commit cf2b4bfbc1b5d18e9787fb9053ffdf1440f038fc)

6 years agoBug 9226: VPN Traffic fails after VM Migration 93/63793/4
Vivekanandan Narasimhan [Thu, 28 Sep 2017 17:39:36 +0000 (23:09 +0530)]
Bug 9226: VPN Traffic fails after VM Migration

Fixes the way we handle prefix-to-interface for VM Migration.

For more information please review the comment lines added in the
patch.

Change-Id: Ib6412f8ef53fcb3c460546332cdd44b2ec19a15d
Signed-off-by: Vivekanandan Narasimhan <n.vivekanandan@ericsson.com>
6 years agoBug 9180: Conflicting modification Exception from NAT Module 88/63488/6
karthikeyan [Mon, 25 Sep 2017 12:04:25 +0000 (17:34 +0530)]
Bug 9180: Conflicting modification Exception from NAT Module

Problem Description:
====================
The following runtime exceptions was throwing from NAT module as part of
"adding external router gateway set" in CSIT.

Exception 1:
============
Conflicting modification for path
/(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:264442126811301}]
[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=81}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=Arp:tbl_81:lport_11:tpa_10.10.10.3}]

Exception 2:
============
Conflicting modification for path
/(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:264442126811301}]
[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=19}]/flow/flow[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=fa:16:3e:ce:fd:00.100003.2644421268113
01.19}]

Solution:
==========
When we do router gateway set for external network, below same flows are
getting installed from two different NAT module listeners which is
causing this runtime "Conflicting modification" exceptions.

1) L3_GW_MAC_TABLE (19) -> L3_FIB_TABLE (21) with external router GW MAC
and
External router vpn-id as match criteria.

2) ARP_RESPONDER_TABLE (81) -> EGRESS_LPORT_DISPATCHER_TABLE (220) with
external router GW MAC in ARP Responder flow.

handleRouterGwFlows() method is commented out in ExternalRoutersListener
add() method alone.
Since the same action is taken care by CentralizedSwitchChangeListener
which is listening on DS "odl-nat:napt-switches".

Change-Id: I2dece791d639b243689f24c112bf6250029de019
Signed-off-by: karthikeyan <karthikeyan.k@altencalsoftlabs.com>
Signed-off-by: cgowdru <chetan.arakere@altencalsoftlabs.com>
Signed-off-by: karthikeyan <karthikeyan.k@altencalsoftlabs.com>
6 years agoBUG 7596 - Update to handle change in Neutron Network external attribute 07/63907/2
Vinh Nguyen [Sat, 5 Aug 2017 00:11:53 +0000 (17:11 -0700)]
BUG 7596 - Update to handle change in Neutron Network external attribute

Changes to handle update event when Neutron Network changes
from non-external to external and vice versa

Change-Id: I2c55272dc6e2b8473f2666b39e36b65c7e578cf0
Signed-off-by: Vinh Nguyen <vinh.nguyen@hcl.com>
6 years agoRemove unneeded mdsal and yangtools artifacts 79/63879/2
Sam Hague [Mon, 2 Oct 2017 16:58:49 +0000 (12:58 -0400)]
Remove unneeded mdsal and yangtools artifacts

Change-Id: Idc837885ce8e20cc0e69d79557e8151cd977c368
Signed-off-by: Sam Hague <shague@redhat.com>
6 years agoBump netvirt to use yangtools 1.2.0 55/63755/2
Anil Belur [Thu, 28 Sep 2017 06:48:47 +0000 (16:48 +1000)]
Bump netvirt to use yangtools 1.2.0

Jira: releng-485
Change-Id: I923b439e82e22e5520b86531c8a826fdde0ff4f8
Signed-off-by: Anil Belur <abelur@linuxfoundation.org>
6 years agoRemove unneeded pom version values 74/63874/1
Sam Hague [Mon, 2 Oct 2017 15:21:31 +0000 (11:21 -0400)]
Remove unneeded pom version values

Change-Id: I3cce922c5bbb60220f977d5f6ceb26baffb5a698
Signed-off-by: Sam Hague <shague@redhat.com>
6 years agoUndo incorrect code changes made during merge conflict. 52/63752/3
eupakir [Thu, 28 Sep 2017 06:20:57 +0000 (11:50 +0530)]
Undo incorrect code changes made during merge conflict.

A part of the fix  pushed in by https://git.opendaylight.org/gerrit/#/c/59229
was removed unintentionally in
https://git.opendaylight.org/gerrit/#/c/57978 .
This has been rectified.

Change-Id: I19372961a30c18a454cd359138190e49d5ab7769
Signed-off-by: eupakir <kiran.n.upadhyaya@ericsson.com>