netvirt.git
6 years agoadd csit tools 17/66617/3
Sam Hague [Tue, 19 Dec 2017 15:42:19 +0000 (10:42 -0500)]
add csit tools

Change-Id: I6d7df190633fef95ea3ed3b560933f96733409de
Signed-off-by: Sam Hague <shague@redhat.com>
6 years agoAdjust for odlparent 3 / yangtools 2 63/66563/4
Stephen Kitt [Mon, 18 Dec 2017 13:00:02 +0000 (14:00 +0100)]
Adjust for odlparent 3 / yangtools 2

This disables ElanServiceTest which is broken (see GENIUS-109), and
SFC to enable earlier testing.

Change-Id: I204aabf268275b1f9d359c85db4263ad07358d5e
Signed-off-by: Stephen Kitt <skitt@redhat.com>
Signed-off-by: Sam Hague <shague@redhat.com>
6 years agouse more common logger for alarm (i.e org.slf4j.Logger) 09/67109/3
Noel de Prandières [Fri, 12 Jan 2018 13:32:06 +0000 (14:32 +0100)]
use more common logger for alarm (i.e org.slf4j.Logger)

Change-Id: I3ea7f6ace69406facd421e10f22b13f2e9505198
Signed-off-by: Noel de Prandières <prandieres@6wind.com>
6 years agospec for sriov-hardware-offload 81/62481/16
Moshe Levi [Thu, 31 Aug 2017 07:19:52 +0000 (10:19 +0300)]
spec for sriov-hardware-offload

Change-Id: If4a137f24f65785daa2a651b70aaf1aa32ae043a
Signed-off-by: Moshe Levi <moshele@mellanox.com>
Co-Authored-By: Edan David <edand@mellanox.com>
6 years agoDisable building policyservice 79/67079/2
Sam Hague [Thu, 11 Jan 2018 21:17:17 +0000 (16:17 -0500)]
Disable building policyservice

Change-Id: I9d539dfcbc447e41b76c50f1894c2df4cd768d9a
Signed-off-by: Sam Hague <shague@redhat.com>
6 years agodisable building odl-ovsdb-ui 24/67124/1
Sam Hague [Fri, 12 Jan 2018 16:47:27 +0000 (11:47 -0500)]
disable building odl-ovsdb-ui

Change-Id: I71425eb83a3508b6f279d3e17206c2cafbd86926
Signed-off-by: Sam Hague <shague@redhat.com>
6 years agoMove SFC dependencies to a dedicated profile 80/66380/4
Stephen Kitt [Tue, 12 Dec 2017 09:49:33 +0000 (10:49 +0100)]
Move SFC dependencies to a dedicated profile

This creates an “sfc” profile which must be enabled if SFC
dependencies are to be built. It *is* enabled by default, so the
current behaviour is preserved, but can be disabled by enabling the
“no-sfc” profile.

Change-Id: Ia890371dc50a144cde7489402daff70c15f23284
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoConvert VpnPseudoPortCache to non-static singleton 00/66400/3
Tom Pantelis [Tue, 12 Dec 2017 21:04:07 +0000 (16:04 -0500)]
Convert VpnPseudoPortCache to non-static singleton

Change-Id: I0847074e1a5170afdddb36997eaf8dd12e925fcb
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoNETVIRT-1038 Fix bind logic in policymgr 09/67009/3
Vishal Thapar [Wed, 10 Jan 2018 11:18:37 +0000 (16:48 +0530)]
NETVIRT-1038 Fix bind logic in policymgr

TunnelStateChangeListener in policymanager seems to have
inconsistency between when it does bind and unbind.

Bind is called for vxlan tunnels while unbind for logicalGroups.

Fix is to call bind also for logicalGroups only as captured
in the feature spec [1].

[1]
http://docs.opendaylight.org/en/latest/submodules/netvirt/docs/specs/policy-based-path-selection.html#proposed-change

Change-Id: I25946ef80a313028427f49378494324f06a7c8bf
Signed-off-by: Vishal Thapar <vishal.thapar@ericsson.com>
6 years agoLog level and message updated 71/66871/2
Tarun Thakur [Thu, 4 Jan 2018 11:00:07 +0000 (16:30 +0530)]
Log level and message updated

Log level updated from warn to error and
added few more parameters into log messages of AclServiceUtils and
NeutronSecurityRuleListener classes to help in debugging.

Change-Id: Ia01c033a7b383de6bcf368f027d9b8e21f72b1a9
Signed-off-by: Tarun Thakur <tarun.t@altencalsoftlabs.com>
6 years agoBug 8998 - sriov vm connectivity broken 67/66867/2
eaksahu [Thu, 4 Jan 2018 09:35:33 +0000 (15:05 +0530)]
Bug 8998 - sriov vm connectivity broken

Use the right dpn id while updating its broadcast group

Change-Id: Ifd2d3f3a445a2621cfc1aae74e48037e95fac5ed
Signed-off-by: eaksahu <a.k.sahu@ericsson.com>
6 years agoConvert L2GatewayCacheUtils to non-static singleton service 37/66337/4
Tom Pantelis [Sat, 9 Dec 2017 17:35:13 +0000 (12:35 -0500)]
Convert L2GatewayCacheUtils to non-static singleton service

Crrated an interface, L2GatewayCache, with an associated
L2GatewayCacheImpl that is advertised as an OSGI service.
The L2GatewayCacheUtils had a couple update* methods that
only had one call site so I just inlined the code in the
caller to keep L2GatewayCache as a simple cache.

To avoid perpetuating circular bundle dependencies and having to
use optional availability on reference import, I put the
L2GatewayCacheImpl in a new bundle, cache-impl.

Change-Id: I4c1dcc761afcdaa214e4bdcf53f9ddb85363539f
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoRemove unused static fields in HwvtepTerminationPointListener 71/66771/2
Tom Pantelis [Tue, 26 Dec 2017 23:27:53 +0000 (18:27 -0500)]
Remove unused static fields in HwvtepTerminationPointListener

The static fields, waitingJobsList and teps, are essentially no
longer used (ie have no effect now) so remove them.

Change-Id: I18f6ca8703a1317648c1298ca593ce230840c116
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix ConflictingModificationAppliedException with 3 retries 44/65944/3
Michael Vorburger [Mon, 27 Nov 2017 22:06:22 +0000 (23:06 +0100)]
Fix ConflictingModificationAppliedException with 3 retries

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

Change-Id: I13d9e0da2de10bda2fb913da9393991f7aef2392
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoUpdate cni specification link in coe spec 87/66887/3
Faseela K [Fri, 5 Jan 2018 10:04:52 +0000 (15:34 +0530)]
Update cni specification link in coe spec

Change-Id: Iebcfcd88b1edd0ace6160704cb34d5eb231afa9d
Signed-off-by: Faseela K <faseela.k@ericsson.com>
6 years agoDeletion of POD is not deleting corresponding ietf-interface 77/66877/1
Faseela K [Thu, 4 Jan 2018 15:45:49 +0000 (21:15 +0530)]
Deletion of POD is not deleting corresponding ietf-interface

Change-Id: Ib0c87fd4a7e5e9403980c68907487e8e2dabce93
Signed-off-by: Faseela K <faseela.k@ericsson.com>
6 years agoUpdates to COE ELAN integration 87/66287/5
Faseela K [Wed, 6 Dec 2017 18:05:36 +0000 (23:35 +0530)]
Updates to COE ELAN integration

- All pods of same namespace within the same node
  should be part of same ELAN.
- Pods of same namepsace, but under different node
  will not be part of same ELAN.
- Ietf interface as well as elan-interface names
  should have a format namespace:podName to match
  with the external id coming from CNI plugin

Change-Id: Ia33506190299ffb4cc6f2ff47209282ed437cf76
Signed-off-by: Faseela K <faseela.k@ericsson.com>
6 years agoAdding compute node scale in scale out spec 46/66346/9
K.V Suneelu Verma [Mon, 11 Dec 2017 11:25:07 +0000 (16:55 +0530)]
Adding compute node scale in scale out spec

Change-Id: I382addbc8db175bf3a1f07640d28f5a83791f80d
Signed-off-by: K.V Suneelu Verma <k.v.suneelu.verma@ericsson.com>
6 years agoDrop Karaf shell specifiers 82/66382/4
Stephen Kitt [Tue, 12 Dec 2017 10:20:35 +0000 (11:20 +0100)]
Drop Karaf shell specifiers

We no longer need to support Karaf 3, and the karaf.shell
"[3.0.0,4.1)" declarations prevent us from upgrading to Karaf 4.1
(which is coming with odlparent 3).

Change-Id: I317dc1c99acf8de19c5341bd9b706ed8e09a0f1a
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoSpec for weighted NAPT selection 62/64862/3
Vishal Thapar [Mon, 30 Oct 2017 05:25:02 +0000 (10:55 +0530)]
Spec for weighted NAPT selection

Change-Id: If4e6540373a8caf2ef7f401c7ee11df7b9debf1d
Signed-off-by: Vishal Thapar <vishal.thapar@ericsson.com>
6 years agoNETVIRT-970: IPv6 Cluster Support 88/66388/2
Sridhar Gaddam [Tue, 12 Dec 2017 06:03:52 +0000 (11:33 +0530)]
NETVIRT-970: IPv6 Cluster Support

This patch updates the listeners in ipv6service to be
cluster aware and ensures that only the cluster owner
does the following.
  a. programming the necessary ipv6 control path flows.
  b. sending out periodic router advertisements.

Change-Id: I4b437b14e13da93701fcd94ac271ff3fe4426983
Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
6 years agoNETVIRT 1029:Route label mismatch for Subnet route 82/65882/2
Loshmitha [Fri, 24 Nov 2017 08:35:49 +0000 (14:05 +0530)]
NETVIRT 1029:Route label mismatch for Subnet route
For an update of network,BGP was deleting the old network,sleeping for 5
secs and adding a new network to QBGP.But if the same network update
came in this 5 secs,it was creating issues.So removing 5 sec delay after
checking with QBGP guys

Change-Id: I9a4cb8f096b608e84e377eeb301d3bd52519b175
Signed-off-by: Loshmitha <loshmitha@ericsson.com>
6 years agoBug 8998 - Adding support for multiple PS 60/65560/12
eaksahu [Wed, 15 Nov 2017 17:17:18 +0000 (22:47 +0530)]
Bug 8998 - Adding support for multiple PS

Following Listners do following job
onGlobalNodeAdd ------->copy child operational global node to parent node
copy parent config global node to child node
copy child ps operational node to parent ps
copy parent ps config to child ps config
onGlobalNodeUpdate ---->copy child operational global node update to parent
onGlobalNodeDelete ---->delete parent operational global node if all child got deleted
onPsNodeAdd ----------->copy child operational ps node to parent ps
                        copy parent config ps to child ps
onPsNodeUpdate -------->copy child update to parent
onPsNodeDelete -------->delete parent operation ps node if all child got deleted

Change-Id: I27d2e6896cadc38fd7c88e5d469ae89603e687c7
Signed-off-by: eaksahu <a.k.sahu@ericsson.com>
6 years agoTools to troubleshoot netvirt 28/63128/9
Vishal Thapar [Tue, 22 Aug 2017 16:09:35 +0000 (21:39 +0530)]
Tools to troubleshoot netvirt

Change-Id: Ie008f8f67dbff3ca980e3b48af121275c98e2014
Signed-off-by: Vishal Thapar <vishal.thapar@ericsson.com>
6 years agoDon't export packages in impl bundles 40/66340/4
Tom Pantelis [Mon, 11 Dec 2017 04:58:10 +0000 (23:58 -0500)]
Don't export packages in impl bundles

Add empty <Export-Package> to the maven-bundle-plugin configuration
to prevent any dependencies on the bundle and prevent @Singleton
annotated classes from being accidently included in another bundle's
blueprint XML.

Change-Id: Iab1c2ea41fff3782770e17cf68eb8156221dcdff
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix odlparent 3 Checkstyle issues 53/65853/8
Stephen Kitt [Tue, 14 Nov 2017 08:31:23 +0000 (09:31 +0100)]
Fix odlparent 3 Checkstyle issues

This doesn’t upgrade to odlparent 3, but fixes all the issues that the
new Checkstyle settings in odlparent 3 pick up; in particular, utility
classes need private constructors and need to be final, and parameters
and local variables mustn’t shadow fields.

Change-Id: Ifb43f4177cd12766538b572299cb8f858b420476
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoSpec for coe-netvirt integration 50/63250/14
Faseela K [Mon, 18 Sep 2017 21:00:13 +0000 (02:30 +0530)]
Spec for coe-netvirt integration

Change-Id: Ic2e739feaa6dbf3be8a69c7082046f47ae7eb1f9
Signed-off-by: Faseela K <faseela.k@ericsson.com>
6 years agoAdd findbugs plugin to the binding-parent pom 38/66338/2
Tom Pantelis [Sat, 9 Dec 2017 21:52:35 +0000 (16:52 -0500)]
Add findbugs plugin to the binding-parent pom

Now that virtually all of the sub-projects have findbugs enabled, we
can now add it to the binding-parent pom and remove it from each
sub-project pom. This has the added benefit that new sub-projects will
automatically pick it up.

Also fixed remaining violations in:

  aclservice-shell
  fibmanager-shell
  neutronvpn-shell

Change-Id: Ibeba7e83a7556a65afb2d7e82c26ad349625a2bf
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoEliminate circular dependencies and convert to BP annotations in elanmanager 80/65880/14
Tom Pantelis [Fri, 24 Nov 2017 06:32:05 +0000 (01:32 -0500)]
Eliminate circular dependencies and convert to BP annotations in elanmanager

ElanInstanceManager -> ElanInterfaceManager -> ElanUtils -> ElanInstanceManager

  Elimnated ElanUtils -> ElanInstanceManager by moving
  ElanInterfaceManager.getElanDPNByName to ElanUtils.

Eliminated ElanInterfaceManager.setElanUtils and
ElanUtils.getElanL2GatewayMulticastUtils that were put in to avoid circular
dependencies between ElanUtils, ElanInterfaceManager, ElanInterfaceManager and
ElanL2GatewayMulticastUtils. The circular dependencies were eliminated by
eliminating the dependencies between

  ElanL2GatewayMulticastUtils -> ElanInterfaceManager and
  ElanL2GatewayMulticastUtils -> ElanInstanceManager.

The former entailed moving
ElanInterfaceManager.updateRemoteBroadcastGroupForAllElanDpns et al
to ElanL2GatewayMulticastUtils.

The latter entailed the caller looking up and passing the ElanInstance to
updateRemoteBroadcastGroupForAllElanDpns via handleMcastForElanL2GwDeviceDelete,
handleMcastForElanL2GwDeviceAdd. The call sites for these are
DisAssociateHwvtepFromElanJob and LogicalSwitchAddedJob via
L2GatewayConnectionUtils, AssociateHwvtepToElanJob and HwvtepLogicalSwitchListener.

Change-Id: Ida1d3c64e6a122af6f96fad59b5295319a2098ef
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert InterVpnLinkCache to non-static singleton 58/66158/6
Tom Pantelis [Thu, 30 Nov 2017 19:04:34 +0000 (14:04 -0500)]
Convert InterVpnLinkCache to non-static singleton

InterVpnLinkCache is now an interface with InterVpnLinkCacheImpl
that is advertised as a service. InterVpnLinkCache is also used
by fibmanager-impl which, unfortuantely, creates a circular
service dependency with vpnamnager-impl so the service import
ws made optional. A better sution would be to put the
InterVpnLinkCacheImpl in a separate bundle.

Change-Id: If09ba2b99110c1d43c87985110e69365ec76f33f
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoNETVIRT-1023 - OptimisticLockFailedException: infrautils.jobcoordinator-impl 60/66160/2
Victor Pickard [Fri, 1 Dec 2017 16:19:14 +0000 (11:19 -0500)]
NETVIRT-1023 - OptimisticLockFailedException: infrautils.jobcoordinator-impl

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

Looks like my patch below introduced a new exception.
 https://git.opendaylight.org/gerrit/#/c/65726/

Looks like only the TZ should be deleted, which will also delete
the VTEP. So, just delete the TZ.

Note: This exception only showed up in CSIT runs, did not see
any exceptions in local testing.

Change-Id: I4d6c0a180a2845b4658b6759222b1fc1e782f0db
Signed-off-by: Victor Pickard <vpickard@redhat.com>
6 years agoUpdated to call bind/unbind from ACL interface state listener to avoid 24/65924/2
Shashidhar Raja [Mon, 27 Nov 2017 07:47:48 +0000 (13:17 +0530)]
Updated to call bind/unbind from ACL interface state listener to avoid
stale flows during VM migration

Change-Id: I4b61f96b0672e4a70160926d762510f665eb7732
Signed-off-by: Shashidhar Raja <shashidharr@altencalsoftlabs.com>
6 years agoMiscellaneous cleanup in natservice-impl 83/66083/2
Tom Pantelis [Thu, 30 Nov 2017 03:28:59 +0000 (22:28 -0500)]
Miscellaneous cleanup in natservice-impl

See inline comments.

Change-Id: Ie2b13930c8830a495738042df4fd397b00e5ba4f
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert BgpUtil to non-static singleton 73/66073/2
Tom Pantelis [Wed, 29 Nov 2017 19:30:29 +0000 (14:30 -0500)]
Convert BgpUtil to non-static singleton

Change-Id: I70a61df997b1d2d66e56b55389596976c8a4444a
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert bgpmanager-impl to use BP annotations 63/66063/3
Tom Pantelis [Wed, 29 Nov 2017 15:44:19 +0000 (10:44 -0500)]
Convert bgpmanager-impl to use BP annotations

The CLI command classes were also changed to inject the BpgManager
instead of obtaining statically from Commands.

Change-Id: I597efb41fd99c4b839c662308c635c2394bc3820
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in statistics 97/65897/4
Tom Pantelis [Fri, 24 Nov 2017 22:59:39 +0000 (17:59 -0500)]
Fix FindBugs violations and enable enforcement in statistics

See in-line comments.

Change-Id: I5d17d62d71ed25d0286dfa9b4412b0d2dd8ed34f
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoEnable FindBugs enforcement in remaining projects 31/65931/6
Tom Pantelis [Mon, 27 Nov 2017 18:14:03 +0000 (13:14 -0500)]
Enable FindBugs enforcement in remaining projects

bgpmanager-api
coe
fibmanager-api
statemanager
vpnmanager-api

Change-Id: I38101e24842173145cb98aa1340e125a7c1f9e4f
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoRemove static alertThreshold in QosAlertPortData 31/66031/3
Tom Pantelis [Tue, 28 Nov 2017 21:18:38 +0000 (16:18 -0500)]
Remove static alertThreshold in QosAlertPortData

Pass a Supplier to QosAlertPortData to obtain the threshold. The
Supplier is maintained by the QosAlertManager.

Change-Id: I409765654d869eb2a4d7bf5a671705abe60e7e54
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoMove sometimes verbose log from INFO to DEBUG 58/63958/4
Jamo Luhrsen [Wed, 4 Oct 2017 18:13:07 +0000 (11:13 -0700)]
Move sometimes verbose log from INFO to DEBUG

as seen in this failing CSIT [0] this log message was
logged at INFO level repeatedly some 2700+ times.

if it's needed at INFO level, at least we need to slow it down

[0] https://logs.opendaylight.org/releng/jenkins092/netvirt-csit-1node-openstack-queens-upstream-stateful-oxygen/7/odl1_karaf.log.gz

Change-Id: Icce9bd14c0bcfb40cfe4b73658554a751d499cb9
Signed-off-by: Jamo Luhrsen <jluhrsen@redhat.com>
6 years agoFix FindBugs violations and enable enforcement in policyservice 99/65899/3
Tom Pantelis [Fri, 24 Nov 2017 16:27:49 +0000 (11:27 -0500)]
Fix FindBugs violations and enable enforcement in policyservice

See in-line comments.

Change-Id: I3dd9d025fee4b92b6c402999b25a924b877156f6
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in cloudservicechain 00/65900/3
Tom Pantelis [Fri, 24 Nov 2017 19:56:27 +0000 (14:56 -0500)]
Fix FindBugs violations and enable enforcement in cloudservicechain

See in-line comments.

Change-Id: I79438536ecb7f7c5c5e63ca732e881f0dce1bb98
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in sfc 98/65898/2
Tom Pantelis [Fri, 24 Nov 2017 18:15:36 +0000 (13:15 -0500)]
Fix FindBugs violations and enable enforcement in sfc

See in-line comments.

Change-Id: Ie3648f0c3a47efa629a0819ccd520e303e10d344
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoNETVIRT-1030 Unbinding elan service during interface state change 04/64804/7
eceghkl [Fri, 27 Oct 2017 12:06:56 +0000 (17:36 +0530)]
NETVIRT-1030 Unbinding elan service during interface state change

*Issue: Unbind was not called during interface state change.
Interfacemanager used to handle unbind during state change. Recently,
other apps started unbinding itself during state change. Due to this
stale entries are coming in table 17 for elan

*Fix: Unbind the elan service during interface state change

Change-Id: I1422f3690fac7d7587930a04207d93361a29bea0
Signed-off-by: eceghkl <manu.b@ericsson.com>
6 years agoNETVIRT-1024: Fix NPE in Ipv6ServiceUtils.installIcmpv6NsPuntFlow API 83/65883/4
Sridhar Gaddam [Fri, 24 Nov 2017 09:55:58 +0000 (15:25 +0530)]
NETVIRT-1024: Fix NPE in Ipv6ServiceUtils.installIcmpv6NsPuntFlow API

Change-Id: I18e7685a87108a94969b6f862d9b2b49f9e126e5
Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
6 years agoNETVIRT-1032: Add null checks for ConcurrentMap access 15/66015/2
Tom Pantelis [Tue, 28 Nov 2017 17:49:46 +0000 (12:49 -0500)]
NETVIRT-1032: Add null checks for ConcurrentMap access

ConcurrentMap doesn't allow null keys so protect access with null
checks.

Change-Id: I465ade8dbd7d0613c293ae168e12d78538652fd5
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoUpdated two display commands provided by 6wind 93/66193/2
Shankar M [Mon, 4 Dec 2017 11:43:28 +0000 (17:13 +0530)]
Updated two display commands provided by 6wind

Change-Id: I550ffc301786b6a394c16549653063712a51129a
Signed-off-by: Shankar M <shankar.m@ericsson.com>
6 years agoImprove the wiring of component tests 71/66171/1
David Suarez [Fri, 1 Dec 2017 23:36:06 +0000 (00:36 +0100)]
Improve the wiring of component tests

Improve the wiring of component tests that use Guice wiring to consume
a DataBroker annotated as an OsgiService. This patch should be merged
before [1].

[1] https://git.opendaylight.org/gerrit/#/c/66148/

Change-Id: I3c63596c0f602c144b96dfd118ecd7a4f7613b4e
Signed-off-by: David Suarez <david.suarez.fuentes@gmail.com>
6 years agoEvpn Junit Testcases 96/65696/9
Riyazahmed D Talikoti [Sat, 18 Nov 2017 18:11:26 +0000 (23:41 +0530)]
Evpn Junit Testcases

1. Port is created in DPN1 before EVPN attach and check for RT2
advertisement.
2. Port is created in DPN1 after EVPN attach and check for RT2
advertisement.
3. Port is deleted in DPN1 check for RT2 withdrawal(if EVPN is attached).
4. Detach EVPN and check for RT2 withdrawal.
5. Add MacVrfEntry before EVPN attach and check for DMAC flor install for
RT2 received route.
6. Add MacVrfEntry after EVPN attach and check for DMAC flor install for
RT2 received route.
7. Withdraw RT2 route received, check for uninstalling the DMAC flow.

Additionally test helper files added.
Light weight implementation of some other module like bgpmanager,
vpnmanager is done and they are binded.

Change-Id: Ie0ec83dcec97a48d7f7c5f21c4865a6d98a3ceed
Signed-off-by: Riyazahmed D Talikoti <riyazahmed.d.talikoti@ericsson.com>
6 years agoAdd jobcoordinator-impl test dependency in neutronvpn-impl 75/66075/2
Tom Pantelis [Wed, 29 Nov 2017 21:55:08 +0000 (16:55 -0500)]
Add jobcoordinator-impl test dependency in neutronvpn-impl

https://git.opendaylight.org/gerrit/#/c/66064/ removes the
jobcoordinator-impl dependency from the mdsalutil-api pom which
neutronvpn-impl needs for UT's.

Change-Id: Ib24d8540ffc08caf0b5fdcea843e2a4851ce360b
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert AclInterfaceCacheUtil to non-static singletoni service. 27/66027/4
Tom Pantelis [Tue, 28 Nov 2017 16:18:19 +0000 (11:18 -0500)]
Convert AclInterfaceCacheUtil to non-static singletoni service.

An AclInterfaceCache interface was added to the api bundle with
the AclInterfaceCacheImpl in the impl bundle. The AclInterfaceCacheImpl
is advertised as an OSGi service.

The AclInterface class was not thread-safe. Instead of making it thread-safe,
it was made immutable to simplify things. The cache creates new instances
on updates. Also AclInterface instances are now created via a Builder.

Change-Id: Id3b69a87795d6ff0c6dcbd3ac599cd0326077e25
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoNet-odl full-sync. Set router ext gw MAC 76/64876/3
Josh [Mon, 30 Oct 2017 08:02:17 +0000 (10:02 +0200)]
Net-odl full-sync. Set router ext gw MAC

During full-sync networking-odl syncs routers before ports. As such,
the MAC of the router's gw port is not available to be set when the
internal netvirt router is written to md-sal. This commit adds logic
to update the router when the port is written.

Change-Id: Ic6b78f77a8352416d3260678dcd6624e2fcf8d68
Signed-off-by: Josh <jhershbe@redhat.com>
6 years agoDrop obsolete Maven site configuration 34/65934/1
Stephen Kitt [Mon, 27 Nov 2017 17:03:47 +0000 (18:03 +0100)]
Drop obsolete Maven site configuration

See
https://lists.opendaylight.org/pipermail/odlparent-dev/2017-November/001492.html

Change-Id: Id3fb2f82521cfe9ac7f0e2d0356a3b59db0f36a2
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoRemove Ipv6ServiceUtils static instance 78/65878/3
Tom Pantelis [Fri, 24 Nov 2017 01:34:46 +0000 (20:34 -0500)]
Remove Ipv6ServiceUtils static instance

Make it a proper singleton. Also some of the conversion and
calculation methods are true utilities and thus were made static
to avoid having to inject it.

Change-Id: If96656895c5150024ab5b9d56fc3fed8ce26ba89
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoMake ipv6service-impl classes thread-safe 77/65877/2
Tom Pantelis [Fri, 24 Nov 2017 00:17:46 +0000 (19:17 -0500)]
Make ipv6service-impl classes thread-safe

IfMgr, VirtualPort, VirtualRouter et al contain fields and Maps that aren't
synchronized. Make mutable fields volatile and use ConcurrentMaps.

Also Ipv6TimerWheel is only used by IfMgr so create a local instance instead
of a static instance and close it properly.

Change-Id: I2fef4df14a4efa5d65984040b40deade9d71bfe7
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoConvert elanmanager-impl to use JobCoordinator 70/65670/10
Tom Pantelis [Fri, 17 Nov 2017 04:45:21 +0000 (23:45 -0500)]
Convert elanmanager-impl to use JobCoordinator

Change-Id: I8c104820589bab6a395e70545486007033a0ef6d
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in elanmanager-impl 20/65520/25
Tom Pantelis [Wed, 22 Nov 2017 13:07:05 +0000 (08:07 -0500)]
Fix FindBugs violations and enable enforcement in elanmanager-impl

See in-line comments

Change-Id: I4d8b7cf418ebb0aa46435de3c5cb2b3b06440b71
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in natservice 46/65846/3
Tom Pantelis [Wed, 22 Nov 2017 16:27:13 +0000 (11:27 -0500)]
Fix FindBugs violations and enable enforcement in natservice

See in-line comments

Change-Id: I831e0a60048cddce1224356ae27f3e8359ea17d2
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in ipv6service 56/65856/3
Tom Pantelis [Wed, 22 Nov 2017 22:20:46 +0000 (17:20 -0500)]
Fix FindBugs violations and enable enforcement in ipv6service

See in-line comments.

Eliminated the static instances for IfMgr and Ipv6PeriodicTrQueue.

The ShowIpv6Command class referenced the static IfMgr instance.
I extracted an interface, ElementCache, for the IfMgr whicb is
advertsed as a service and injected into ShowIpv6Command. The shell
bundle shouldn't reference packages in the impl bundle so I also
extracted interfaces for VirtualRouter, VirtualPort et al.

Ipv6ServiceImpl basically just wired the static instances - since
this is no longer needed, Ipv6ServiceImpl was removed.

Change-Id: I635ff43cffded41c7a32079214cff48a057f4fac
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix FindBugs violations and enable enforcement in aclservice 77/65777/5
Tom Pantelis [Tue, 21 Nov 2017 02:29:12 +0000 (21:29 -0500)]
Fix FindBugs violations and enable enforcement in aclservice

See in-line comments

Change-Id: If57c4a0c1a9478daaffeb08132bdf117ecbd59a6
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix the fix for the bad transaction leak in VpnInterfaceManager 35/65835/1
Michael Vorburger [Wed, 22 Nov 2017 09:58:20 +0000 (10:58 +0100)]
Fix the fix for the bad transaction leak in VpnInterfaceManager

In 0c3a7e3103fea3dc039519ab4d4497fd218dc3d8 for
I0f62fcc17c037365c9384e56c9f6f5a430693c20 there was a left-over
tx.submit() that should have also been removed as part of it (because
callWithNewWriteOnlyTransactionAndSubmit already does that, as its name
says).  This fixes the follow new error which started appearing in CSIT
logs since that was merged:

2017-11-21 18:05:05,592 | ERROR | ChangeHandler-77 | L3vpnPopulator
| 349 - org.opendaylight.netvirt.vpnmanager-impl - 0.6.0.SNAPSHOT |
Future (eventually) failed: addToLabelMapper
java.lang.UnsupportedOperationException: submit() cannot be used inside
a Managed[New]TransactionRunner

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

Change-Id: Ic2c8b02670242f3a3f190860c205d7d70c2939b3
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoEVPN RT2 : L2VNI demux table changes 27/58927/15
Vyshakh Krishnan CH [Mon, 10 Jul 2017 14:11:37 +0000 (19:41 +0530)]
EVPN RT2 : L2VNI demux table changes

When a packet comes from another DC in evpn RT2 scenario, it lands up in
table 24(l2vni demux table) from where the elan tag is derived and send
to destination mac table

Change-Id: I3ddf1b0d086a78eb1b2cc7a2760f02bf1c55ae4d
Signed-off-by: Vyshakh Krishnan CH <vyshakh.krishnan.c.h@ericsson.com>
6 years agoNETVIRT-937: Fix NPE in ElanInstanceManager 21/65821/2
Tom Pantelis [Tue, 21 Nov 2017 22:50:27 +0000 (17:50 -0500)]
NETVIRT-937: Fix NPE in ElanInstanceManager

2017-11-21 16:21:43,179 | ERROR | nPool-1-worker-2 | JobCoordinatorImpl               | 261 - org.opendaylight.infrautils.jobcoordinator-impl - 1.3.0.SNAPSHOT | Runnnable likely about to terminate thread due to uncaught exception; but here is useful debugging context: JobEntry{key='elaninterface-963a4d35-297e-4757-be14-6c3dec354221', mainWorker=org.opendaylight.netvirt.elan.internal.ElanInstanceManagerElanInstanceManager$$Lambda$774/1098386956@516cbba2, rollbackWorker=null, retryCount=6, futures=[null, com.google.common.util.concurrent.ImmediateFuture$ImmediateSuccessfulCheckedFuture@39325841]}
java.lang.NullPointerException: at index 0
at com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:235)[27:com.google.guava:22.0.0]
at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:225)[27:com.google.guava:22.0.0]
at com.google.common.collect.ObjectArrays.checkElementsNotNull(ObjectArrays.java:219)[27:com.google.guava:22.0.0]
at com.google.common.collect.ImmutableList.construct(ImmutableList.java:342)[27:com.google.guava:22.0.0]
at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:257)[27:com.google.guava:22.0.0]
at com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:228)[27:com.google.guava:22.0.0]
at com.google.common.util.concurrent.Futures.allAsList(Futures.java:835)[27:com.google.guava:22.0.0]
at org.opendaylight.infrautils.jobcoordinator.internal.JobCoordinatorImpl$MainTask.runWithUncheckedExceptionLogging(JobCoordinatorImpl.java:369)[261:org.opendaylight.infrautils.jobcoordinator-impl:1.3.0.SNAPSHOT]

The futures List in remove is reused across the submitted jobs in the forEach loop
which is unsafe as the List is accessed by multiple threads. Each job now returns its
own local futures List.

The futures returned from elanInterfaceManager.removeElanInterface
were also added to the List but I don't see the purpose of this. removeElanInterface
waits for those tx's to complete. Maybe it was so the JC would retry them? If so, this
entire code path has a mix of sync and async transactions which is a bit confusing -
some are submitted to the JC, ohers aren't; some may be retried, others aren't.

Change-Id: I82193fc36a339db42b83df5bfa3d17ff0a88dfa0
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix NPE in NeutronvpnManager 19/65819/2
Tom Pantelis [Tue, 21 Nov 2017 20:54:24 +0000 (15:54 -0500)]
Fix NPE in NeutronvpnManager

CSIT log shows:

2017-11-21 17:20:01,945 | ERROR | nPool-1-worker-3 | JobCoordinatorImpl               | 261 - org.opendaylight.infrautils.jobcoordinator-impl - 1.3.0.SNAPSHOT | Exception when executing jobEntry: JobEntry{key='PORT-f08a0cc9-49aa-4db8-b69b-dcc486817764', mainWorker=org.opendaylight.netvirt.neutronvpn.NeutronvpnManager$$Lambda$825/713684833@92010fc, rollbackWorker=null, retryCount=0, futures=null}
java.lang.NullPointerException
at org.opendaylight.netvirt.neutronvpn.NeutronvpnManager.withdrawPortIpFromVpnIface(NeutronvpnManager.java:817)
at org.opendaylight.netvirt.neutronvpn.NeutronvpnManager.lambda$removeSubnetFromVpn$2(NeutronvpnManager.java:1413)

This line:

  if (sn == null || !adj.getSubnetId().equals(sn.getId()))

I assume adj isn't null in which case getSubnetId() must be null. I changed it to
use Objects.equals which means the equals check would evaluate to false if
getSubnetId() is null (unless sn.getId() is also null). I assume this is correct.

Change-Id: Ib769273ee805e333fc96d0fcb83db15da056f69e
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix NPE in VpnSubnetRouteHandler 18/65818/2
Tom Pantelis [Tue, 21 Nov 2017 20:36:14 +0000 (15:36 -0500)]
Fix NPE in VpnSubnetRouteHandler

CSIT log shows several of these:

2017-11-21 16:51:37,973 | ERROR | nPool-1-worker-0 | VpnSubnetRouteHandler            | 349 - org.opendaylight.netvirt.vpnmanager-impl - 0.6.0.SNAPSHOT | SUBNETROUTE: onInterfaceDown: SubnetOpDataEntry update on interface 174fcd9a-f2fc-4f70-bc1e-9a42755175ea down event for subnet 9189b34e-b7be-40ff-9bd4-8c0d0a4f96f3 falied {}
java.lang.NullPointerException
at org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler.electNewDpnForSubnetRoute(VpnSubnetRouteHandler.java:988)
at org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler.onInterfaceDown(VpnSubnetRouteHandler.java:649)
at org.opendaylight.netvirt.vpnmanager.SubnetRouteInterfaceStateChangeListener.lambda$remove$1(SubnetRouteInterfaceStateChangeListener.java:154)

networkId is purposely passed as null in several call sites. It is only used to extract
the String value to pass to addSubnetRouteToFib which passes to L3vpnInput#setNetworkName.
From there is looks like null network name is handled.

Change-Id: Ie86c2ead79d4431a06e04526dc415f58c893d461
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoFix NPE in SubnetmapChangeListener 17/65817/2
Tom Pantelis [Tue, 21 Nov 2017 20:26:02 +0000 (15:26 -0500)]
Fix NPE in SubnetmapChangeListener

CSIT log shows a ton of these:

java.lang.NullPointerException
at org.opendaylight.netvirt.vpnmanager.SubnetmapChangeListener.update(SubnetmapChangeListener.java:119)[349:org.opendaylight.netvirt.vpnmanager-impl:0.6.0.SNAPSHOT]
at org.opendaylight.netvirt.vpnmanager.SubnetmapChangeListener.update(SubnetmapChangeListener.java:31)[349:org.opendaylight.netvirt.vpnmanager-impl:0.6.0.SNAPSHOT]
at org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:152)[247:org.opendaylight.genius.mdsalutil-api:0.4.0.SNAPSHOT]

Either vpnIdOld or subnetId was null when calling getValue(). We could check for
null in all places they're being logged but I just changed it to pass the
reference as Uuid's toString will print the internal value.

Change-Id: I6c88177a476f38c38189bddfb55a62cfba61d9a9
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoBug 9188 Removing the ODL thrift IP check 04/65704/2
Loshmitha [Mon, 20 Nov 2017 09:34:00 +0000 (15:04 +0530)]
Bug 9188 Removing the ODL thrift IP check

In RHEL,ODL MIP will not be hosted in the BGP EOS owner and it will be
in HA proxy.So removing the availability and check for this IP in the
code.Check was not required as QBGP has replay mechanism whenever the IP
comes up

Change-Id: I79a6cfddb36dd9c7b2322615bf3871a9bfdc7e44
Signed-off-by: Loshmitha <loshmitha@ericsson.com>
6 years agoSmall optimization in ipv6service code 01/65801/3
Sridhar Gaddam [Tue, 21 Nov 2017 14:31:49 +0000 (20:01 +0530)]
Small optimization in ipv6service code

Change-Id: Ibc6d4431d9139826ede38c6708b70130d5a32030
Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
6 years agoFix FindBugs violations and enable enforcement in qosservice 06/65806/3
Tom Pantelis [Tue, 21 Nov 2017 15:49:37 +0000 (10:49 -0500)]
Fix FindBugs violations and enable enforcement in qosservice

See in-line comments.

Change-Id: I323e23bccdfcc526ceb3f62148292152f5dc5738
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoNETVIRT-1000: protect VpnInterfaceManager::remove 43/65743/5
Stephen Kitt [Mon, 20 Nov 2017 16:53:11 +0000 (17:53 +0100)]
NETVIRT-1000: protect VpnInterfaceManager::remove

This patch ensures that the write transactions in
VpnInterfaceManager::remove are always closed.

Change-Id: Iaca016e08fed88f8cb34afbef702465ba152bbe0
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoNETVIRT-1000: protect VrfEntryListener (partially) 32/65732/5
Stephen Kitt [Mon, 20 Nov 2017 14:55:39 +0000 (15:55 +0100)]
NETVIRT-1000: protect VrfEntryListener (partially)

This patch ensures that the write transactions in
VrfEntryListener.CleanupVpnInterfaceWorker::call and
::deleteFibEntries are always closed.

Change-Id: I57a6912fa162d3e37792d479ad76ae0879c3ae35
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoNETVIRT-1000: protect TunnelEndPointChangeListener 18/65718/6
Stephen Kitt [Mon, 20 Nov 2017 13:28:23 +0000 (14:28 +0100)]
NETVIRT-1000: protect TunnelEndPointChangeListener

This patch ensures that the write transactions in
TunnelEndPointChangeListener::add are always closed.

Change-Id: I79af37a9c046a405113c1fd408098b06fb59d028
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoNETVIRT-1000: protect manageRemoteRouteOnDPN 13/65713/7
Stephen Kitt [Mon, 20 Nov 2017 11:59:52 +0000 (12:59 +0100)]
NETVIRT-1000: protect manageRemoteRouteOnDPN

This patch ensures that the write transaction in
VrfEntryListener::manageRemoteRouteOnDPN is always closed.

Change-Id: I4add610addb470bea3ceda9736f9cbc457adcb44
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoFix wrong use of JobCoordinator in ElanInstanceManager 02/65802/2
Michael Vorburger [Tue, 21 Nov 2017 14:41:08 +0000 (15:41 +0100)]
Fix wrong use of JobCoordinator in ElanInstanceManager

found by chance during analysis of
https://jira.opendaylight.org/browse/NETVIRT-937, but then realised that
this will not fix that NPE - but would be good to rectify anyway.

Change-Id: If49efc13855ddeb085256ce0a6d5c093f42687f8
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
6 years agoNETVIRT-1000: protect handleNeutronPortUpdated 10/65710/6
Stephen Kitt [Mon, 20 Nov 2017 10:15:33 +0000 (11:15 +0100)]
NETVIRT-1000: protect handleNeutronPortUpdated

This patch ensures that the write transaction in
NeutronPortChangeListener::handleNeutronPortUpdated is always closed.

Change-Id: I56557db7fc4852100599379b0b32267a94ed9807
Signed-off-by: Stephen Kitt <skitt@redhat.com>
(cherry picked from commit 9448a059037d75fc3d1a307ee47031b890b1b0d3)
(cherry picked from commit 040f5af4bff626b56e7ed51e1e25fc3c773abafa)

6 years agoInfrautils DiagStatus Integration For ELAN 00/64000/10
Faseela K [Thu, 5 Oct 2017 18:50:01 +0000 (00:20 +0530)]
Infrautils DiagStatus Integration For ELAN

Change-Id: Ifc2b79e370def61728929ba7ba8d22289510cff8
Signed-off-by: Faseela K <faseela.k@ericsson.com>
6 years agovpnmanager: various support for vpn-interface-op in operDS 13/59413/100
Philippe Guibert [Mon, 10 Jul 2017 11:54:32 +0000 (12:54 +0100)]
vpnmanager: various support for vpn-interface-op in operDS

Misc changes in vpn-manager related to the support of two router setup:
- tunnelinterface state changes
This commit enhances API changes for the following:
o updateVpnInterfaceOnTepDelete
o updateVpnInterfaceOnTepDelete
Instead of looking for a VPNInterface in operDS and refreshing context,
the VPNInterfaceOpDataEntries are looked up. Contexts are refreshed
accordingly.
- vpn-subnet: update packet processing with correct router-id
The metadata retrieved from the packet is compared against the router
used in the VPN interface. Action is done accordingly.
Also, upon interface going down, a check is done on the retrieving
datapath ID and performing subnet propagation, provided that
vpninterface-op-data-entry is present.

- vpn-util: check ARP learning against VPN interface
When receiving an ARP response on a VPN interface, the metadata is
checked against the list of routers in that VPN interface.

- vpnmanager-interface-op-data: adapt vpnInterfaceOpDataEntry listener
This change handles the update and deletion of operDS vpnInterfaceOpDataEntry
 entries. It replaces the old code that was expecting vpnInterface entries.

- vpnmanager-shell: dump the list of vpnInterfaceOpDataEntry()
This lists the whole list of vpnInterfaceOpDataEntry() previously
created when a vpnInterface was created in config DS.

Change-Id: Ia0a8845464912a56a16e87649c2adaf74c71d5de
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 agovpnservice: various changes to support vpn-interface-op-data-entry 45/59445/92
Philippe Guibert [Thu, 22 Jun 2017 13:35:42 +0000 (14:35 +0100)]
vpnservice: various changes to support vpn-interface-op-data-entry

- natservice: misc nat changes while using vpn-interface-op-data-entry
On some cases where a VM interface is connected to two routers ( case
with dual stack IPs), then the router which has nat enabled is searched.
The changes parse the list of router per VPN interface, and return the
first router which has NAT enabled.
Obviously, that kind of setup may have only one router with NAT enabled,
at maximum.
On EVPN flow programmation, on removing floating IPs, the vpnInterfaces
operational is removed too.
On Interface state change, the vpnInterfaces will be updated, added or
removed.

- cloud-service-chain: update VpnToPseudoPortData with VpnInterfaces
Because VpnInterface can support more than one VPN, when a new VPN
interface is created or removed, the list of its VPN should be parsed
against the VpnToPseudoPortData contexts.

- fib-manager: update operational Adjacencies by using vpnInterfaceOpDataEntry
This commit deletes the adjacenciesOp entry related to a vrfEntry, in
vpnInstanceOpDataEntry. The list of vpnRouterIds() is parsed in config
DS vpnInstance, to check is there is a vpnInstanceOpDataEntry existing.
Then if present, the associated adjacenciesOp is deleted.

The commit introduces a new function called getAdjacencyIdentifierOp().
It replaces getAdjacencyIdentifier, and will search for adjacencies that
are relying on vpninterfaceopdataentry.

Change-Id: I5a676b15dfdb415064a2e9daba5f4c7b4d584fe9
Signed-off-by: Valentina Krasnobaeva <valentina.krasnobaeva@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Noel de Prandières <prandieres@6wind.com>
6 years agovpninterface-manager: introduce vpn-interface-op-data context in oper DS 00/59700/99
Philippe Guibert [Mon, 10 Jul 2017 11:26:36 +0000 (12:26 +0100)]
vpninterface-manager: introduce vpn-interface-op-data context in oper DS

This commit includes the following:
- upon add() and remove() event, create/or remove vpn-interface-op-data-entry
for each pair (interface,vpnname) in operDS.
- BGP advertisement related to adjacencies from VPN
- support for AdjacenciesOp new yang model for operDS
- vpninterface-manager: update router interface FIB entry if a new vpn interface
is updated, the extraroutes are being added accordingly. The same is done for
FIB entries.
- vpninterface-manager: support for update operation upon the list of routers
changed for a vpn interface, the vpnInterfaceOpDataEntry are removed, then
readded.

Following API changed: replaced VpnInterface with VpnInterfaceOpDataEntry
o processExternalVpnInterface
o processVpnInterfaceDown
o withdrawAdjacenciesForVpnFromBgp and advertiseAdjacenciesForVpnToBgp
o processVpnInterfaceUp use VpnInterface as new parameter
o addVpnInterfaceVpn and addNewAdjToVpnInterface and delAdjFromVpnInterface
Change InterfaceStateChangeListener accordingly

The two following APIs
are being added vpnName as parameter:
- deleteFibEntryForRouterInterface
- createFibEntryForRouterInterface

Change-Id: I6320c7839c274fcf5d7779ce15a89733dd97217f
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Noel de Prandieres <prandieres@6wind.com>
6 years agovpnmanager: vpn-interfaces yang container has vpn-instance-name list 80/57780/112
Philippe Guibert [Wed, 24 May 2017 14:34:48 +0000 (15:34 +0100)]
vpnmanager: vpn-interfaces yang container has vpn-instance-name list

- In order to handle internal VPN or BGPVPN in a two router case solution,
some yang changes is needed.
Config DS is being added a list of vpn-instance configuration for one
VPN interface. The need is to have two vpn instances configurable for one VPN.
This commit change only handles the compilation by adapting java code
to as to care about the first element of vpn-instance.

- vpnmanager: basis changes for two router case solution

o vpnmanager-api: yang changes for two router case solution
In order to handle internal VPN or BGPVPN in a two router case solution,
some yang changes is needed. In a dual router case solution, one vpn
Instance and two vpn Interfaces will lead to create one structure for
config DS and two structures for oper DS.
This commit is change for OperDS. Oper DS is using a vpn-interface-op
structure instead of using vpn-interface structure. The structure is indexed
by interface name and by vpn-instance.
Add adjacencies in vpn-interface-op-data. In oper DS,
vpn-interface-op-data will benefit from adjacencies like it has been
done for config DS with vpn-interface structure.

o vpn-util: introduction of vpn-interface-op-data related functions
This commit introduces some utility routines to handle
vpn-interface-op-data structures within operDS context.
New functions are:
 o getVpnInterfaceOpDataEntryIdentifier
 o getVpnInterfaceOpDataEntry
This function is modified, because now, the operational VpnInterface is
VpnInterfaceOpDataEntry:
 o getOperationalVpnInterface
 o scheduleVpnInterfaceForRemoval
Add utility functions to handle adjacenciesOp. The introduction of
AdjacenciesOp structure, based on VpnInterfaceOpDataEntry introduces two
new routines.
 o getVpnInterfaceOpDataEntry
 o getVpnInterfaceOpDataEntryAugmentation

Change-Id: I87a4919899b0c702267977e5942ff8589f77de55
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
Signed-off-by: Noel de Prandieres <prandieres@6wind.com>
6 years agoFix compiler errors in aclservice 72/65772/2
Tom Pantelis [Tue, 21 Nov 2017 01:33:52 +0000 (20:33 -0500)]
Fix compiler errors in aclservice

Patches https://git.opendaylight.org/gerrit/#/c/62955/ and
https://git.opendaylight.org/gerrit/#/c/64684/ crossed while
merging and cause compile errors.

The first patch introduced an AclDataUtil interface which has the
same name as the AclDataUtil impl. It's confusing to have classes
with the same name and it's also a bit strange to have an interface
with Util in the name so I renamed the interface to AclDataCache.

I also changed the Map getters in AclDataUtil to return copies
as the caller shouldn't modify them.

Change-Id: I1f818d06f967665fe677ddf7b0bad71f7640f8ac
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
6 years agoNETVIRT-1000: protect handleNeutronPortCreated 05/65705/3
Stephen Kitt [Mon, 20 Nov 2017 09:55:38 +0000 (10:55 +0100)]
NETVIRT-1000: protect handleNeutronPortCreated

This patch ensures that the write transaction in
NeutronPortChangeListener::handleNeutronPortCreated is always closed.

Change-Id: I97fed4d99d0c81bf4f8c2704233238884dbb2a0d
Signed-off-by: Stephen Kitt <skitt@redhat.com>
6 years agoChanges are related to provide a command to display acl caches. 55/62955/23
Nishchya Gupta [Mon, 11 Sep 2017 09:12:41 +0000 (14:42 +0530)]
Changes are related to provide a command to display acl caches.

Added a new command display-acl-data-cache with aclservice scope,this
command displays the data for in total 4 caches of acl module.
Three cache from AclDatautils and one cache from AclInterfaceCacheUtil.

Usages for command will be shown if input command is improper.

Change-Id: Ide45e04b41747ddc1dd59fbad8e05b1d61e6964b
Signed-off-by: Nishchya Gupta <nishchyag@altencalsoftlabs.com>
6 years agoFix bad transaction leak in VpnInterfaceManager 19/65619/4
Michael Vorburger [Mon, 20 Nov 2017 17:02:14 +0000 (18:02 +0100)]
Fix bad transaction leak in VpnInterfaceManager

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

  292x transactions opened here, which are not closed:
    org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter.newWriteOnlyTransaction(BindingDOMDataBrokerAdapter.java:69)
    (...)
    org.opendaylight.netvirt.vpnmanager.VpnInterfaceManager.addToLabelMapper(VpnInterfaceManager.java:1594)
    org.opendaylight.netvirt.vpnmanager.populator.impl.L3vpnPopulator.addSubnetRouteFibEntry(L3vpnPopulator.java:104)
    org.opendaylight.netvirt.vpnmanager.populator.impl.L3vpnOverMplsGrePopulator.populateFib(L3vpnOverMplsGrePopulator.java:57)
    org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler.addSubnetRouteToFib(VpnSubnetRouteHandler.java:827)
    org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler.electNewDpnForSubnetRoute(VpnSubnetRouteHandler.java:906)
    org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler.onSubnetAddedToVpn(VpnSubnetRouteHandler.java:241)
    org.opendaylight.netvirt.vpnmanager.SubnetmapChangeListener.add(SubnetmapChangeListener.java:89)
    org.opendaylight.netvirt.vpnmanager.SubnetmapChangeListener.add(SubnetmapChangeListener.java:29)
    org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:158)

Change-Id: I0f62fcc17c037365c9384e56c9f6f5a430693c20
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
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>