Robert Varga [Sun, 7 Jun 2015 01:27:26 +0000 (03:27 +0200)]
BUG-3157: performance tuning - Use a simple lookup table for prefix conversion
This is a clear CPU/memory trade-off, where we have a pre-allocated
bytearray for valid prefixes. We then lookup the appropriate offset
into this array when performing a mask operation. If the user requests
the actual array, we return a Arrays.copyOf(), cutting just the
appropriate bytes out. Memory cost is around 2K.
Change-Id: Idd679084bd3be4a31331a38ecf978b07d738f495
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
c59861d4957cb69badda3737b146a0c98f9fec71)
Robert Varga [Sat, 6 Jun 2015 11:44:49 +0000 (13:44 +0200)]
BUG-3363: code optimization and cleanup - Fix a few warnings
Unused imports, methods that can be static, deprecated imports, missing
type arguments.
Change-Id: I04f7cee19ab1832e58e5b7c91e3f4bcbe55d2a1f
Signed-off-by: Robert Varga <rovarga@cisco.com>
Signed-off-by: Michal Rehak <mirehak@cisco.com>
(cherry picked from commit
aedfc8ddeac646cd11b364e4faf1fca803175ef0)
Jozef Gloncak [Fri, 5 Jun 2015 12:30:22 +0000 (14:30 +0200)]
Bug 3594 - error when updating flow via restconf
If flow is updated via rpc update-flow where flow-ref
instance-identifier isn't specified then nothing is
deleted from flow hash to id map stored in operational DS.
Change-Id: Ia9151b9d8a85a920ef70d7328ef2dda769be297c
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
(cherry picked from commit
0ca58c24157ab10d3a140ceffe5e3cbd4a7991de)
Robert Varga [Sun, 7 Jun 2015 02:00:01 +0000 (04:00 +0200)]
BUG-3363: code optimization and cleanup - Use Strings.isNullOrEmpty()
A convenience method making for an easier read.
Change-Id: I7d5868999e4644fdcc2e67657e44264dc950f4f8
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
a589f3912de430ad4889fa776325bebabf4ffa34)
Robert Varga [Sun, 7 Jun 2015 01:56:47 +0000 (03:56 +0200)]
BUG-3363: code optimization and cleanup - Do not instantiate explicit arrays
Since Iterators.forArray() is variadic, we can simplify the call a bit.
Change-Id: Ib66035f0d18d76c2c6c8f8af0ad7f5915038b72a
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
804e6d8da21c4f7b5fbb91ae08e90ef51f723294)
Robert Varga [Sun, 7 Jun 2015 01:16:28 +0000 (03:16 +0200)]
BUG-3363: code optimization and cleanup - Use Arrays.copyOf(byte[], int)
This is a simpler version of Arrays.copyOfRange(), with equivalent
effect.
Change-Id: Iabf03022e2ace5d083fbe485b8b0e110658c457a
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
72153d9785596d79ad1261bf1b866939e0767e84)
Robert Varga [Sun, 7 Jun 2015 01:02:32 +0000 (03:02 +0200)]
BUG-3363: code optimization and cleanup - Do not open-code array copy operations
System.arrayCopy() is the proper tool for the job, use it. Also add
final modifiers to arguments and organize imports.
Change-Id: I123c30c3e85b92a7b5d9a9f237cda019b7c362e0
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
5f2ce7a9a8bb4758dc94ff543b251d6a8f4b3e47)
Robert Varga [Sat, 6 Jun 2015 01:44:24 +0000 (03:44 +0200)]
BUG-3157: performance tuning - Use a TrieMap as the ConcurrentMap implementation
TrieMap is space-optimized and has a high fanout, which means it will
reclaim space when not needed and has shallower structure than a
ConcurrentHashMap. It also re-hashes automatically and concurrently.
Change-Id: I1e40dbb5588c1e42475e12d73f7cadf46b909594
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
5faeb7ea76404e4da3620e63432b6038800d4de7)
Robert Varga [Sat, 6 Jun 2015 01:23:55 +0000 (03:23 +0200)]
BUG-3363: code optimization and cleanup - Make flowRegistry concurrent
Traces indicate that updating the flow registry can be a source of
contention. As it turns out all operations we perform on it can be
expressed in terms of ConccurentMap, so let's take advantage of that.
Change-Id: Iae145699cc5111a589eba421bc1082f88f39ee18
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
f355ec96d1d7c99038650839c133db0aff8b043c)
Robert Varga [Sat, 6 Jun 2015 01:17:38 +0000 (03:17 +0200)]
BUG-3363: code optimization and cleanup - Fix unsynchronized access to marks
We must not iterate over marks while not holding the lock, as we risk a
concurrent modification. Mkae sure we synchronize properly.
Also minimize the synchronized sections around flowRegistry. These will
be removed in the next patchset.
Change-Id: I5575fa972aea6d8055d578da2d3418c25286668d
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
06068449350ddee54597a38db39c678f93fe2ab3)
Robert Varga [Sat, 6 Jun 2015 01:13:39 +0000 (03:13 +0200)]
BUG-3363: code optimization and cleanup - Do not leak mutable collection
Flow descriptors should not be modified outside this class. Make sure
that is the case by wrapping it in an Collections.unmodifiableMap().
Change-Id: I188287d8d10911f6faabd5f31e028714ae005bce
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
9930a5d6b7cfeed87e4e3308882b5375bea10f59)
Robert Varga [Sat, 6 Jun 2015 01:11:13 +0000 (03:11 +0200)]
BUG-3363: code optimization and cleanup - Fix eclipse warnings
Unused imports, missing serialVersionUID, unneeded cast. Formatting
changes courtesy autosave cleanup actions.
Change-Id: If85ef69d426b129170d5b55d0bd6893a901d50cc
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
d25cd407fd8f5d038349db4bb2407d023afe3150)
Martin Bobak [Fri, 5 Jun 2015 13:19:52 +0000 (15:19 +0200)]
Bug 3599 - Li - transaction chain manager should not propagate connection context in notification
Change-Id: Ia03c152cec6c7ea3afbb29e5778b53cc1d80fd83
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
571b41953805ad4c14abbbd031fc86f4dfccf747)
Martin Bobak [Fri, 5 Jun 2015 15:05:55 +0000 (17:05 +0200)]
Bug 3597 - added session statistics for switch connect/disconnect events
Change-Id: I75f388721a678ba00e10b352bd87d1b3ca9833c3
Signed-off-by: Martin Bobak <mbobak@cisco.com>
Change-Id: Ia702621740bbc7190813ff286d6b76158bd59f64
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
1ab03d3178b3d81f46ef6c94ba8e742327e89921)
Michal Rehak [Fri, 5 Jun 2015 10:49:46 +0000 (12:49 +0200)]
BUG-3592: topology not starting (Li)
- added config subsystem files to Li features
Change-Id: Ibcdfa83ab47777a6b3d739b024a1453d17b48791
Signed-off-by: Michal Rehak <mirehak@cisco.com>
(cherry picked from commit
bea0a6e84adcc91ae681b2a07c69a168d72764e5)
Martin Bobak [Thu, 4 Jun 2015 14:03:34 +0000 (16:03 +0200)]
BUG-3580: statistics teardown improvement
- statistics context cancels next scheduled statistics poll
Change-Id: I3a4c1fb63d32f8ecc660da38455284bb142a62c6
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
c8b1875c9f8dcb4f5a4db29b33285990abb1149b)
Martin Bobak [Thu, 4 Jun 2015 07:19:33 +0000 (09:19 +0200)]
BUG-3579: device disconnection cleanup
- connection + handshake revisited
- device, rpc, statistics contexts/managers revisited
- cleaned up logging
- adapted tests
- added propagating to connectionCtx close for timeout
Change-Id: I990012ecb34fd3a229c1988cbd1c2b71af6ec98e
Signed-off-by: Michal Rehak <mirehak@cisco.com>
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
d54deb3112a9ee9cf71571cffd9fb40806d5bed2)
Kamal Rameshan [Fri, 5 Jun 2015 00:36:02 +0000 (17:36 -0700)]
Bug:3048-Handle duplicate nodeRemoved and nodeConnectorUpdated notifications to prevent tx failures
NodeRemoved notifications are received twice by the InventoryManager, in quick successions
If the duplicate node removal operation is clubbed with other node-removal operations in transaction chain, it fails the whole tx chain even
though we retry one time.
This patch caches the deleted nodes in-order to ignore the duplicate notifications. The cache entries are expired after 10s, to reduce the memory consumption.
Signed-off-by: Kamal Rameshan <kramesha@cisco.com>
Change-Id: Ifce9a8240e4a6bac00815be1f494f0077fd957d1
(cherry picked from commit
fce9a8240e4a6bac00815be1f494f0077fd957d1)
Martin Bobak [Wed, 3 Jun 2015 14:23:52 +0000 (16:23 +0200)]
Bug 3564 - Li - ofp when transaction chain manager exists in WORKING state, drop new connection
Change-Id: I75810f705774a75264558166bd7570eb9bae41e6
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
d2cc6d8fc130e6086cc75f98b210297fd4f85be3)
Martin Bobak [Tue, 2 Jun 2015 13:14:27 +0000 (15:14 +0200)]
Bug-3104: Bypassing MultimessageCollector
- added service for on-the-fly processing (flow stats only)
Change-Id: I6308bc1b38009deb6187ac2ee57b94a9b3d29145
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
cfda2cbdee0e34a67202bf7c740b841ef0a53a2b)
Martin Bobak [Wed, 3 Jun 2015 06:52:49 +0000 (08:52 +0200)]
Bug 3557 - Li -ofp when device reconnects, it has to wait for previous transaction chain to complete
TransactionChain should be checked for its lifecycle status when device reconnects
Change-Id: I272da2eae4d81802c0dc3e70308989daa6dd8162
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
8fd4238633295a741f65e2e82a883dfb401bb5b3)
Anil Vishnoi [Fri, 5 Jun 2015 13:08:48 +0000 (18:38 +0530)]
Bug 2862 - flow ID is unknown value in operational store. (e.g. id: #UF*200-3)
Fix for old Helium code base.
This issue only occurs when user don't set cookie value while installing the flow
and that's valid flow.
Cookie is used in flow comparison for the applications using match extensions
in their flow body. As of now openflowplugin don't use match extensions
in flow comparison, that can create a scenario where more then one stored flow
can match to any stats flow, if stored flows differ only by match extension.
Once match extensions are part of flow comparison, we should remove cookie
from flow comparison.
Cookie is an optional field, so user might not set it, but if switch
get flow without cookie value , it will use 0 as a default cookie value
and return cookie=0 when openflowplugin fetch the flow stats from switch.
In this scenario flow comparison will fail. This fix make sure that
if user didn't set cookie value while flow installation, skip the cookie
comparison while augmenting flow stats.
Change-Id: Ia156b70b08569ccd573ba07a549093fa1af3a82f
Signed-off-by: Anil Vishnoi <vishnoianil@gmail.com>
Jozef Gloncak [Thu, 4 Jun 2015 07:45:19 +0000 (09:45 +0200)]
BUG 2862 - alien flow ID when priority is missing.
Problem was:
- flow was sent to device
- attempt to write flow registry - fails (NPE) because missing priority
- flow was written to device
- statistics bring info about flow
- flow isn't found in flow registry therefore alien ID is generated for it.
Solution:
- sending of flow to device is executed only after storing flow to flow
registry. If it is unsuccessful then nothing is sent to device. Flow is thus
stored only in config DS.
Change-Id: I371d4030c41ac0866fb3615b8c2380aef5b283e2
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
(cherry picked from commit
19622f6f0ea04a46bffda0d7900c2b2b7a1c88c4)
Jozef Gloncak [Tue, 2 Jun 2015 08:10:31 +0000 (10:10 +0200)]
Bug 2862 - alien flows after flow update.
In Helium OF plugin is mapping of flow hashes to flow IDs stored
in operational DS. If flow data which are used for hash creating
(e. g. match) are changed then it isn't possible to find flow ID
in mapping stored in operational DS. Therefore deletion of hash
was added directly to update handling method - updateFlow.
Change-Id: If2f12d52d4bb8ca484ce31f1545f7493fe14364b
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
(cherry picked from commit
70651e7540863872f6e8d94377ccdf9b53b0bf93)
Michal Rehak [Tue, 2 Jun 2015 09:01:47 +0000 (11:01 +0200)]
BUG-2668: Handshake Exception
- fixing bunch of exception by checking connection state before
processing fist hello message from device
Change-Id: I8fcf9e9eeeb163e4fee30e9dabef810aabf1bf67
Signed-off-by: Michal Rehak <mirehak@cisco.com>
(cherry picked from commit
3b1e6fb5a6649abe7df47d2b3bb181229cb5cbc1)
Martin Bobak [Tue, 2 Jun 2015 08:03:51 +0000 (10:03 +0200)]
Bug 3350 - Provide override for features detected during handshake
Some devices doesn't provide features considered by OF protocol as
mandatory. We introduce configurable variable that overrides features
check.
Change-Id: I8f7fe9c31f00b785bd19b5f0e79b8162fa7a2a4b
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
4085d17036f47c4b9bcc5113b079309b64fbc390)
michal rehak [Wed, 3 Jun 2015 05:55:16 +0000 (05:55 +0000)]
Merge "BUG-3157: performance tuning - Do not user CopyOnWriteArrayList"
Ed Warnicke [Wed, 3 Jun 2015 01:31:01 +0000 (18:31 -0700)]
Bug 3341: Fix feature pom dependency issue
Change-Id: Ia9c3fecd2c5edcd080829bf5654c278c77c5bb0a
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
Ed Warnicke [Sun, 31 May 2015 16:38:47 +0000 (09:38 -0700)]
Bug 3341: Partial fix, wires topology-manager
This patch is a partial fix to Bug 3341.
It wires topology-manager with the config subsystem,
and makes it require-capabilities the models it depends on.
Change-Id: I26baef419534f7d05d56350847d2248844f91a1d
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
Ed Warnicke [Sun, 31 May 2015 04:19:34 +0000 (21:19 -0700)]
Bug 3341: Partial fix, wires topology-lldp-discovery
This patch is a partial fix to Bug 3341.
It wires topology-lldp-discovery with the config subsystem,
and makes it require-capabilities the models it depends on.
Change-Id: I9a70ea5bda5b5720e86d4591f29737eaa4d7ea7a
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
Ed Warnicke [Sun, 31 May 2015 03:05:57 +0000 (20:05 -0700)]
Bug 3341: Partial fix, wires inventory-manager
This patch is a partial fix to Bug 3341.
It wires inventory-manager with the config subsystem,
and makes it require-capabilities the models it depends on.
Change-Id: Id0f2891b47e0290411a382eb2ef2bc82c0a53c9e
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
Robert Varga [Tue, 2 Jun 2015 10:33:09 +0000 (12:33 +0200)]
BUG-3157: performance tuning - Do not user CopyOnWriteArrayList
Filling it is expensive, use a simple ArrayList.
Change-Id: I231ee15e177d4c689f1729dc7e55f19f4e286222
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
01acc1e6693c8ad65fed069393fc05b5d44a655b)
Vaclav Demcak [Mon, 1 Jun 2015 09:37:44 +0000 (11:37 +0200)]
BUG-3157: performance tuning - NodeConnectorRef cache
- introducing port number to NodeConnectorRef cache in deviceContext
Change-Id: I805f8d54967331b1f42924c7d9f0e24a24f24749
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
(cherry picked from commit
88aeb167f9cc81dcad79884dc3763cbda85296ae)
Kamal Rameshan [Fri, 29 May 2015 16:34:37 +0000 (09:34 -0700)]
Bug-3431:NullPointerException from OpenflowPlugin.application.StatisticsManagerImpl
Change-Id: I5a4b45dd9d32a2968596f8c466d85c91132d6ee2
Signed-off-by: Kamal Rameshan <kramesha@cisco.com>
(cherry picked from commit
5a4b45dd9d32a2968596f8c466d85c91132d6ee2)
Martin Bobak [Fri, 29 May 2015 12:37:54 +0000 (14:37 +0200)]
Bug 3437 - clean event time measurement average value of extreme values
Change-Id: Icc131dd1443ee2e76f2aeaee42bbe65a3c22786d
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
b50f59687da67b75ec743e1dff164ef88ddc7b6d)
Martin Bobak [Fri, 22 May 2015 09:43:46 +0000 (11:43 +0200)]
BUG-3157: perfomance tuning - cache translator lookups
Once a DeviceContext is instantiated, it has a fixed version, so we can
pre-cache the two most-used translators.
Change-Id: I9d324f14e3003301bf9107e2e6c12a189c0b6c80
Signed-off-by: Robert Varga <rovarga@cisco.com>
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
f29048e1e03900f2bce34e0b6dd196488dd34d39)
Martin Bobak [Thu, 28 May 2015 16:23:28 +0000 (18:23 +0200)]
Bug 3435 - add time counter for selected operations on device
Change-Id: Ie96860f8a253b57b82a8fb7e9577a8774b09a31f
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
667dd701f243e6344e864615559bbeb93d80bae8)
Robert Varga [Wed, 27 May 2015 10:10:35 +0000 (12:10 +0200)]
BUG-3157: Use InstanceIdentifier.firstIdentifierOf()
Instead of instantiating multiple instance identifiers, make sure to
express our intent in terms of the InstanceIdentifier API. In this
particular case we are looking for the identifier capped at the
specified key.
Change-Id: I0284c582959fb00527116335b0def93e71fa535e
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
f983b20e843c13e7d27f9c4261c719c1192066bf)
Robert Varga [Wed, 27 May 2015 10:04:11 +0000 (12:04 +0200)]
BUG-3157: Fix a generic warning in DropTestRpcSender
Not adding generic arguments is just being lazy.
Change-Id: Ib43a5c68a60ac838c8b3ab458af4aaaa7fbbbaba
Signed-off-by: Robert Varga <rovarga@cisco.com>
(cherry picked from commit
11f256f8c68db67fc9cd894d1766553b2f3d6562)
Martin Bobak [Thu, 28 May 2015 08:33:56 +0000 (10:33 +0200)]
Bug 3412 - Device should not be propagated if initial stats collection fails
Change-Id: Ib9bf397331f9011e6909caeefa8cf403747d005f
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
42f8e33bbd8649cd4f78b1873e69b77ae00b10c4)
Vaclav Demcak [Wed, 27 May 2015 20:11:59 +0000 (22:11 +0200)]
Bug 3407 - Don't reconnect Node without a full clean of OPERATIONAL DataStore.
Note: A reconnection scenario could bring some problem with TransactionChain for a huge data sets.
So we have to stop all PostHandShake processes as soon as is possible and wait for a full Node
disconnecting what includes OPERATIONAL DataStore clean too.
* add checkExisteingNode method in TransactionChainManager
* add synchronized check for tx in submit method
* fix tests
Change-Id: Ib2b772f6800528860ce881204d53bbec35e09b97
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
(cherry picked from commit
3668ca6d68b8762c6d69f41f4d1d95be8b17520e)
Martin Bobak [Wed, 27 May 2015 15:24:08 +0000 (17:24 +0200)]
Bug 3393 - don't silence exceptions in tx chain manager
Log events where tx chain operations fail.
Also do not print stacktrace in info level.
Change-Id: I50af32d2fa802506fddb4a218193f4ce9fac0278
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
396b210498ced73badea844afaad81e601d75a30)
Martin Bobak [Wed, 27 May 2015 10:18:33 +0000 (12:18 +0200)]
Bug 3390 - schedule statistics polling instead of polling right away
After successfull initial statistics gathering we don't
want to poll next statistics gathering right away. We schedule
polling job instead.
Change-Id: I1ed68227f33ca53fc58ce7e3d69aa345d65fdd57
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
71c7dc8480f1de90ec1015b3451bbdf12b66673a)
Martin Bobak [Wed, 27 May 2015 08:42:50 +0000 (10:42 +0200)]
Bug 3389 - Scheduling time adaptation calculated per device
Calculated time should not be shorter than basic timer
delay which is currently 3000 ms.
Change-Id: I9e534e9268e462b3b572a2bc12a8f80d7de97146
Signed-off-by: Martin Bobak <mbobak@cisco.com>
(cherry picked from commit
5fb386b9d2ca54fd446c1435f2bceaeb6c1990f0)
Robert Varga [Tue, 26 May 2015 17:16:30 +0000 (19:16 +0200)]
BUG-3157: performance tuning - Skip int->Integer boxing
We really need the integer object, so don't keep it as a primitive type.
Also make sure we run equals on a constant reference. Finally do not
instantiate a zero integer.
Change-Id: I64875984c66e6a2ae54d9ce3acefb529d500e4f2
Signed-off-by: Robert Varga <rovarga@cisco.com>
michal rehak [Fri, 29 May 2015 13:42:03 +0000 (13:42 +0000)]
Merge "Bug 3367 - StatManagerImpl scalable statPolling per stat type on device"
michal rehak [Fri, 29 May 2015 07:49:02 +0000 (07:49 +0000)]
Merge "Bug 3367 - StatManagerImpl scalable statPolling per stat type on device"
Vaclav Demcak [Wed, 27 May 2015 09:43:26 +0000 (11:43 +0200)]
Bug 3367 - StatManagerImpl scalable statPolling per stat type on device
Note: Running all stats for all device statistics in one time is
realy not good idea. So we'd like to bring a possibility for
scalable statistics aproach (one stat in one device in one time).
* remove gatherDynamicData(MultipartType multipartType) method
Change-Id: I3078cfe871b28fd11c09b7001f783b8e2cfbaa0d
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
Vaclav Demcak [Mon, 25 May 2015 14:41:19 +0000 (16:41 +0200)]
Bug 3367 - StatManagerImpl scalable statPolling per stat type on device
Note: Running all stats for all device statistics in one time is
realy not good idea. So we'd like to bring a possibility for
scalable statistics aproach (one stat in one device in one time).
* change getherDynamicData() like a chain for device statistics
Change-Id: Iaad3270a6a80b47ed9977b16362ec77bec55966f
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
michal rehak [Thu, 28 May 2015 11:03:23 +0000 (11:03 +0000)]
Merge "Cleanup IpConversionUtil"
michal rehak [Thu, 28 May 2015 11:02:20 +0000 (11:02 +0000)]
Merge "Fix warnings in TableFeaturesConvertor"
Jozef Gloncak [Mon, 9 Mar 2015 16:40:09 +0000 (17:40 +0100)]
BUG 2723 - Topology spoofing via LLDP - LLDPSpeaker
- added extra authorizer to LLDP payload
- used version property
- added logging
- fixed it and features test
Add TLV CustomSec field to creation of LLDP packet.
REMARK:
controller patch https://git.opendaylight.org/gerrit/#/c/21174/ has to
be merged first
Change-Id: I234305e827817aef2dcec820869bddca91fc2b33
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
Signed-off-by: Michal Rehak <mirehak@cisco.com>
(cherry picked from commit
e20d25cfda275b06826538726595682d88f92182)
(cherry picked from commit
041211583c485316c432eb33801c60fe33a05daa)
(cherry picked from commit
00033e6051c2451f78fb9521dbb2775569180d6c)
Jozef Gloncak [Tue, 17 Mar 2015 13:35:57 +0000 (14:35 +0100)]
BUG 2723 - Topology spoofing via LLDP - hash check in topology-discovery
Checking of CustomSec (TLV field in LLDP packet). Value of CustomSec from LLDP
packet has to be equal to hash value which is computed in
topology-lldp-discovery artifact. Hash value is obtained as MD5 value
calculated from concatenation of strings:
- node connector ID
- pseudo PID of running JAVA karaf
Method getValueForLLDPPacketIntegrityEnsuring() prepare array of bytes which
will be after hashing used to check integrity of LLDP packets. Ensuring that
LLDP packet wasn't modified. (extra authenticator; CVE-2015-1611 CVE-2015-1612)
Change-Id: Ic8f50c88e7d8e3722d8d83a01ffa94a96bde313f
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
(cherry picked from commit
67eed66d24b20d03645140d40b44d16ce53e1210)
Ed Warnicke [Thu, 14 May 2015 01:32:15 +0000 (18:32 -0700)]
Version bump for master after cutting of stable/lithium branch
Change-Id: Id6e3567a6e2e19174881d8090ee60ae7130f99a9
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
michal rehak [Tue, 26 May 2015 19:47:00 +0000 (19:47 +0000)]
Merge "Speed up packetin throttling"
michal rehak [Tue, 26 May 2015 19:13:20 +0000 (19:13 +0000)]
Merge "Bug 3328: Set icmpv4-match into OF10 match."
Robert Varga [Fri, 22 May 2015 11:17:51 +0000 (13:17 +0200)]
Speed up packetin throttling
Perform an atomic operation instead of taking a lock in the fast path.
Change-Id: If204594f375aa2f9f7295cc5321236756f01c258
Signed-off-by: Robert Varga <rovarga@cisco.com>
michal rehak [Tue, 26 May 2015 15:43:15 +0000 (15:43 +0000)]
Merge "Clean TransactionChainManager"
michal rehak [Tue, 26 May 2015 14:49:02 +0000 (14:49 +0000)]
Merge "Change StatisticsContext"
Vaclav Demcak [Thu, 21 May 2015 14:26:09 +0000 (16:26 +0200)]
Clean TransactionChainManager
Note: We don't need to check time or nr. of operations for
WriteTransaction. We would like to submit all collected stats
to DataStore ASAP.
* remove timer from TransactionChainManager
* remove calc nr. of operations
* add visible submitTransaction method
TODO: fix commeted-out tests
Change-Id: I88558a903c22ea804c7020a922320a947b865980
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
Robert Varga [Tue, 26 May 2015 10:06:58 +0000 (12:06 +0200)]
Cleanup IpConversionUtil
Follow JLS modifier ordering, do not use string concat to coerce
Strings, do not open-code unsigned byte-to-int conversion, remove
trailing whitespace.
Change-Id: Ia8a1ac8defcd97d2cf2307b899781ace5894d4f7
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Tue, 26 May 2015 01:30:52 +0000 (03:30 +0200)]
Fix warnings in TableFeaturesConvertor
Remove unnecessary casts. Fix test to not issue warnings, too.
Change-Id: I3d4241c8dac03a6323fc389a687a09f119d16e33
Signed-off-by: Robert Varga <rovarga@cisco.com>
Martin Bobak [Tue, 26 May 2015 11:22:53 +0000 (13:22 +0200)]
schedule next poll only after previous is done
Statistics will be gathered only after previous run was completed.
Change-Id: I3316a3ac541d53a268829de99b4d6a2116405a17
Signed-off-by: Martin Bobak <mbobak@cisco.com>
michal rehak [Tue, 26 May 2015 13:16:53 +0000 (13:16 +0000)]
Merge "Statistics polling is scheduled per one device"
michal rehak [Tue, 26 May 2015 12:58:03 +0000 (12:58 +0000)]
Merge "Un-obfuscate srcVlanMatch"
michal rehak [Tue, 26 May 2015 12:56:55 +0000 (12:56 +0000)]
Merge "Use an ImmutableMaps for constant lookups"
michal rehak [Tue, 26 May 2015 12:53:47 +0000 (12:53 +0000)]
Merge "Fix TableFeaturesConvertor table"
michal rehak [Tue, 26 May 2015 12:52:48 +0000 (12:52 +0000)]
Merge "Use constants for Ordering objects"
michal rehak [Tue, 26 May 2015 12:52:06 +0000 (12:52 +0000)]
Merge "Make OrderComparator.build() use generic arguments"
michal rehak [Tue, 26 May 2015 12:50:46 +0000 (12:50 +0000)]
Merge "Add VLAN match constants"
michal rehak [Tue, 26 May 2015 12:47:06 +0000 (12:47 +0000)]
Merge "Optimize FlowConvertor"
michal rehak [Tue, 26 May 2015 12:45:28 +0000 (12:45 +0000)]
Merge "Make MatchReactor a proper constant"
michal rehak [Tue, 26 May 2015 12:44:59 +0000 (12:44 +0000)]
Merge "Simplify CommonService interface"
michal rehak [Tue, 26 May 2015 11:24:14 +0000 (11:24 +0000)]
Merge "HashUtil erradicated"
Martin Bobak [Tue, 26 May 2015 10:52:29 +0000 (12:52 +0200)]
Statistics polling is scheduled per one device
Change-Id: Ic28ea509445ab6f557438337be2a5db9650efd03
Signed-off-by: Martin Bobak <mbobak@cisco.com>
Martin Bobak [Tue, 26 May 2015 09:16:15 +0000 (11:16 +0200)]
HashUtil erradicated
Hashing flow values for its future identification is not done anymore. We
use repective object's haschode and equals methods.
Change-Id: Id977b85df565869e13ed902230a20e742945a261
Signed-off-by: Martin Bobak <mbobak@cisco.com>
Robert Varga [Tue, 26 May 2015 01:07:58 +0000 (03:07 +0200)]
Un-obfuscate srcVlanMatch
Eclipse complains about the possibility of a null-derefence. While it is
not possible, rewrite the code to make that obvious. Also move to
MoreObjects to remove deprecation warning.
Change-Id: I039fb0d3aaefc9fce69252d880dbad4459437e7c
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Tue, 26 May 2015 00:30:39 +0000 (02:30 +0200)]
Use an ImmutableMaps for constant lookups
The lookup maps are meant to be immutable, make sure that is the case.
Change-Id: Ia706459fad8e068de55617e51b5a357f2f1b2353
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Tue, 26 May 2015 01:17:36 +0000 (03:17 +0200)]
Fix TableFeaturesConvertor table
This mapping problem has gone unnoticed until conversion to ImmuableMap.
Fix it here so it can be cherry-picked.
Change-Id: I41df518816e854c200ee05005e6ab0c591ef002c
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Tue, 26 May 2015 00:23:51 +0000 (02:23 +0200)]
Use constants for Ordering objects
These objects are used heavily, make sure we share instances.
Change-Id: I81fd8cac22d5f32643e58199ede545b909934100
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Tue, 26 May 2015 00:14:25 +0000 (02:14 +0200)]
Make OrderComparator.build() use generic arguments
This is a simple trick, but fixes a few warnings in users.
Change-Id: Iba6b022c39c756f335e88849baefbaaf9e12a2bc
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Tue, 26 May 2015 00:08:06 +0000 (02:08 +0200)]
Add VLAN match constants
These matchers are used very frequently, add them as constants and
reuse.
Change-Id: Ieeab6388fbb58d9439f284acce950e9e122d219f
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Mon, 25 May 2015 23:47:20 +0000 (01:47 +0200)]
Optimize FlowConvertor
Do not copy collections needlessly in toFlowModInputs(). Also bail from
isSetVlanIdActionCasePresent() as soon as we find a match. In
handleSetVlanIdForOF13() we know we are returning at most two elements,
so allocate the array accordingly.
Change-Id: I121893068827fe9f3d7bfc156d5fd334d2550c80
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Mon, 25 May 2015 23:43:27 +0000 (01:43 +0200)]
Make MatchReactor a proper constant
Singleton instance was not constant, fix that.
Change-Id: I65a4943481c68428e963846516e0324b17706e00
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Mon, 25 May 2015 18:07:46 +0000 (20:07 +0200)]
Simplify CommonService interface
Introduce utility RequestCallback classes, which encapsulate common
FutureCallbackFunctionality.
Instead of transforming functions, introduce sendRequest() abstract
method. This method is invoked once the request has been allocated and
it is responsible for building the request payload and calling
commitRequest() with the payload and appropriate callback.
Also introduce AbstractVoidService, which maps responses to Void and
ensures the slot is always committed. It also enqueues a
VoidFutureCallback to complete the request.
AbstractSimpleService handles remapping of result to the appropriate
class, if it is present.
AbstractMultipartService handles gathering of multipart requests.
Change-Id: I047ff873f09a5dd7e95d8dc101429f7c3ee248a1
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Mon, 25 May 2015 14:33:36 +0000 (16:33 +0200)]
Make sure RpcResultBuilder is local
There is no need for it to be a field.
Change-Id: Ia046491699f8c9af8b9b1a3e5e45734567d55d67
Signed-off-by: Robert Varga <rovarga@cisco.com>
Robert Varga [Mon, 25 May 2015 14:34:18 +0000 (16:34 +0200)]
RpcManagerImpl should take an integer
A long is not really appropriate, cap it to an integer.
Change-Id: Ie0a4e3819904e8e4aad16a37b2fddbecf3fd1248
Signed-off-by: Robert Varga <rovarga@cisco.com>
michal rehak [Mon, 25 May 2015 15:27:32 +0000 (15:27 +0000)]
Merge "HashUtils are not used anymore"
michal rehak [Mon, 25 May 2015 15:23:56 +0000 (15:23 +0000)]
Merge "code cleanup : removed unused parts of code"
Vaclav Demcak [Mon, 25 May 2015 11:58:54 +0000 (13:58 +0200)]
Change StatisticsContext
Note: Running all stats for all device statistics in one time is
realy not good idea. So we'd like to bring a possibility for
scalable statistics aproach.
* implement getherDinamicData with MultipartType as input
TODO in future commits:
* modify StatisticManagerImpl.pollStatistcs for one statType for all devices
* add separate statChain for new Devices stat collecting (one stat in one time)
* scale flowStats for table
Change-Id: I3d1a29ba94ddbb81ce9ee98eb9fdcfe97149a278
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
michal rehak [Mon, 25 May 2015 15:03:21 +0000 (15:03 +0000)]
Merge "Fix stats for extension actions"
Martin Bobak [Mon, 25 May 2015 10:02:55 +0000 (12:02 +0200)]
HashUtils are not used anymore
We will be using Match object when calculating identifier for flow in local flow registry.
This identifier will be normalized as soon as normalization will be introduced. That
will result into device flow registry holding normalized flow keys.
Change-Id: Ieeaf1b573a34fd94c8cd2d7e932d4db8fb5ca83e
Signed-off-by: Martin Bobak <mbobak@cisco.com>
Martin Bobak [Fri, 22 May 2015 14:16:00 +0000 (16:16 +0200)]
code cleanup : removed unused parts of code
Change-Id: I3b7034a579fb83edcc5a07de72f02b3e0c51692d
Signed-off-by: Martin Bobak <mbobak@cisco.com>
Martin Bobak [Mon, 25 May 2015 13:25:40 +0000 (15:25 +0200)]
Removed unwanted preconditions check
Change-Id: I426dc98a88e34fe28041bffdca103139d7b99658
Signed-off-by: Martin Bobak <mbobak@cisco.com>
Robert Varga [Mon, 25 May 2015 07:56:31 +0000 (09:56 +0200)]
Add a generic type argument
OutboundQueueHandlerRegistration is generic, silence an eclipse
warning.
Change-Id: I7896b424534e8acff20be24b50dd2e2567ace9c1
Signed-off-by: Robert Varga <rovarga@cisco.com>
Ed Warnicke [Sat, 2 May 2015 06:00:00 +0000 (23:00 -0700)]
Fix stats for extension actions
Extension actions were not showing up in OPER.
This fixes that.
Change-Id: I484b9bb477296e9a7f74a04d4d4d01401d8e486b
Signed-off-by: Ed Warnicke <hagbard@gmail.com>
michal rehak [Mon, 25 May 2015 09:22:41 +0000 (09:22 +0000)]
Merge "Bug-3085:StatisticsManager drops nodeadded operations when exceptions occur"
Vaclav Demcak [Mon, 25 May 2015 08:56:54 +0000 (10:56 +0200)]
Bug-3085:StatisticsManager drops nodeadded operations when exceptions occur
Currently nodeAdded and all stat notifications are fed to a queue as datastore operations and submitted in batches of 100.
If one of the tx chain submit fails the node added operation also gets discarded, along with the rest.
Queuing node added operations along with rest of the stat notifications causes stats for the new nodes to get collected quite late, as the number of devices increase.
Also when a node gets removed, the datastore operations that are queued for the removed node get submitted which might clash with the inventory-manager’s transaction.
So this patch ignores operations queued up for removed node.
Also it ignores for the stale stat notification operations which are collected for a node which got reconnected. This is done by marking the stat operations via UUIDs, created during node-added.
path6: rebase and fix conflicts
Change-Id: I5564627857c1834658ca0a0f2d530e129b7db953
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
Robert Varga [Fri, 22 May 2015 14:18:06 +0000 (16:18 +0200)]
simplify MultiMsgCollector
Collection task is bound to a particular request, hence we do not need
to perform lookups and can easily simplify the code.
Change-Id: I4ce59348da13f15c9e537dd4c57e65dcb85e2ad9
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
Signed-off-by: Robert Varga <rovarga@cisco.com>
Tony Tkacik [Fri, 22 May 2015 13:58:02 +0000 (15:58 +0200)]
Fixed Ipv6 usage in unit tests to use valid addresses / prefixes.
Change-Id: I4291b9759079184548586e6ad0ddf8728ab43db2
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>