controller.git
10 years agoSuppress unchecked cast warnings 34/5434/3
Robert Varga [Tue, 18 Feb 2014 10:45:26 +0000 (11:45 +0100)]
Suppress unchecked cast warnings

These casts are either safe, or we need to throw an exception --
ClassCast is as good an exception as any.

Change-Id: I74026fee5004984bfc18d990a3b6fee68a1fb479
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoFix comments and remove use of deprecated class 06/5406/3
Robert Varga [Wed, 19 Feb 2014 02:55:48 +0000 (03:55 +0100)]
Fix comments and remove use of deprecated class

This primarily removes SchemaServiceListener, as that is deprecated and
implied by SchemaContextListener, which is replacing it.

Change-Id: I977e818ff466ab27f6cd213d1e0e255e2f1b59a4
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMerge "Close Bug:443 - Implement ImmediateEventExecutor wrapper to config-subsystem."
Tony Tkacik [Tue, 25 Feb 2014 15:38:06 +0000 (15:38 +0000)]
Merge "Close Bug:443 - Implement ImmediateEventExecutor wrapper to config-subsystem."

10 years agoMerge "Add watchdog thread to detect illegal blocking calls during second phase commit."
Tony Tkacik [Tue, 25 Feb 2014 14:59:52 +0000 (14:59 +0000)]
Merge "Add watchdog thread to detect illegal blocking calls during second phase commit."

10 years agoMerge "Better exception handling when instantiating YangModelBindingProvider, fix...
Tony Tkacik [Tue, 25 Feb 2014 14:58:10 +0000 (14:58 +0000)]
Merge "Better exception handling when instantiating YangModelBindingProvider, fix confignetconfconnector activator."

10 years agoClose Bug:443 - Implement ImmediateEventExecutor wrapper to config-subsystem. 36/5436/4
Tomas Olvecky [Fri, 21 Feb 2014 10:46:42 +0000 (11:46 +0100)]
Close Bug:443 - Implement ImmediateEventExecutor wrapper to config-subsystem.

Change-Id: I7b633407ce186507379c0008408deae3775fd0df
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
10 years agoAdd watchdog thread to detect illegal blocking calls during second phase commit. 70/4870/5
Tomas Olvecky [Fri, 14 Feb 2014 15:22:10 +0000 (16:22 +0100)]
Add watchdog thread to detect illegal blocking calls during second phase commit.

Add a thread that starts when second phase commit starts, that will monitor if
a module instance occupies the commit thread for more than 5 seconds. If so, log
a warning every second informing about possible misuse of config subsystem to
block on external resources.
Added a proxy module that caches Module#getInstance() call as this method is
idempotent.

Change-Id: Ia1e56386bdd8c6b7a6dc625cfc69253b927c92a9
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
10 years agoBetter exception handling when instantiating YangModelBindingProvider, fix confignetc... 58/5458/1
Tomas Olvecky [Tue, 25 Feb 2014 13:44:26 +0000 (14:44 +0100)]
Better exception handling when instantiating YangModelBindingProvider, fix confignetconfconnector activator.

Do not just log exception if it occurs while calling getModuleInfo, but add it as nested exception.
Fix confignetconfconnector activator: if activator fails to find ConfigRegistry, stop method should interrupt searching for it.

Change-Id: I0b97e5a044be0fd2304b35d34f46a1c540aac248
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
10 years agoMerge "fix bug 431"
Tony Tkacik [Tue, 25 Feb 2014 12:02:03 +0000 (12:02 +0000)]
Merge "fix bug 431"

10 years agoMerge "Integration test added to netconf-it to test identity (de)serialization."
Tony Tkacik [Tue, 25 Feb 2014 11:58:13 +0000 (11:58 +0000)]
Merge "Integration test added to netconf-it to test identity (de)serialization."

10 years agoMerge "Accept agentpath as a parameter to the run script"
Tony Tkacik [Tue, 25 Feb 2014 11:56:20 +0000 (11:56 +0000)]
Merge "Accept agentpath as a parameter to the run script"

10 years agoMerge changes I1b834def,Iece78be2
Tony Tkacik [Tue, 25 Feb 2014 11:54:25 +0000 (11:54 +0000)]
Merge changes I1b834def,Iece78be2

* changes:
  Removed duplicated dependency declaration: ietf-netconf-monitoring,ietf-netconf-monitoring-extension from commons.opendaylight.
  Move xtend dependency definition from md-sal pom to commons.opendaylight

10 years agoSalRemoteClientDeployer - instantiate SalRemoteClient for given URL. 87/5387/6
Milos Fabian [Tue, 18 Feb 2014 09:44:24 +0000 (10:44 +0100)]
SalRemoteClientDeployer - instantiate SalRemoteClient for given URL.

SalRemoteClient:
-Creates schema context.
-Initialize mapping service
-Creates restconf client
-Starts sal remote service broker
-Provides consumer registaration

Change-Id: Idc0d8be4c088bac8a4df24b98e482184a6e54665
Signed-off-by: Milos Fabian <milfabia@cisco.com>
10 years agoMerge "Reuse AbstractListenerRegistration"
Tony Tkacik [Tue, 25 Feb 2014 11:24:49 +0000 (11:24 +0000)]
Merge "Reuse AbstractListenerRegistration"

10 years agoRemoved duplicated dependency declaration: ietf-netconf-monitoring,ietf-netconf-monit... 26/5426/2
Tomas Olvecky [Thu, 20 Feb 2014 13:30:10 +0000 (14:30 +0100)]
Removed duplicated dependency declaration: ietf-netconf-monitoring,ietf-netconf-monitoring-extension from commons.opendaylight.

Change-Id: I1b834def2831acfae7749b24a6778f5811aca182
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
10 years agoMove xtend dependency definition from md-sal pom to commons.opendaylight 25/5425/3
Tomas Olvecky [Thu, 20 Feb 2014 12:59:28 +0000 (13:59 +0100)]
Move xtend dependency definition from md-sal pom to commons.opendaylight

Change-Id: Iece78be2da9a8797deb082a7d81030a2c85dac26
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
10 years agoMerge "Fix some sonar bugs in config-api and config-manager."
Tony Tkacik [Tue, 25 Feb 2014 11:10:25 +0000 (11:10 +0000)]
Merge "Fix some sonar bugs in config-api and config-manager."

10 years agoRpcRegistration.close() should not throw 55/5455/1
Robert Varga [Tue, 25 Feb 2014 10:12:14 +0000 (11:12 +0100)]
RpcRegistration.close() should not throw

Closing an RPC registration is an atomic act, e.g. it should never be
allowed to throw exceptions.

Change-Id: Ie49c67691540db4d4a8a21814e01d3287c5f31cd
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoReuse AbstractListenerRegistration 05/5405/2
Robert Varga [Wed, 19 Feb 2014 02:54:03 +0000 (03:54 +0100)]
Reuse AbstractListenerRegistration

No sense in defining a new class -- just reuse what's already there.
Also uncovers the fact that we're losing an underlying registration --
but let's deal with that once the ListenerRegistration API changes not
to throw exceptions on close().

Change-Id: I5a12b1d7ca89f1608bc54b3f1a520223e650d53f
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agofix bug 431 54/5454/1
Vaclav Demcak [Mon, 24 Feb 2014 21:52:44 +0000 (22:52 +0100)]
fix bug 431

Change-Id: Ifd972d7e8acfbc8ed2b9d64391f156b09617d304
Signed-off-by: Vaclav Demcak <vdemcak@cisco.com>
10 years agoMerge "Modify config-api exceptions, bump config and netconf to 0.2.5-SNAPSHOT."
Tony Tkacik [Mon, 24 Feb 2014 17:22:10 +0000 (17:22 +0000)]
Merge "Modify config-api exceptions, bump config and netconf to 0.2.5-SNAPSHOT."

10 years agoAdded support to register of RPC Implementation. 49/5449/1
Lukas Sedlak [Mon, 24 Feb 2014 10:00:40 +0000 (11:00 +0100)]
Added support to register of RPC Implementation.

NetconfDevice has now has capability to support of rpc implementation which adds support for ODL to send rpcs towards netconf server.
Added fix for commit handler registration. Now the commit handler is registered only and only when mount instance is availible.

Change-Id: I11eced0fda40b3c0cd66fd6477c4df45304d3e18
Signed-off-by: Lukas Sedlak <lsedlak@cisco.com>
10 years agoAdded documentation into web socket in RestConf 39/5439/2
Ladislav Borak [Fri, 21 Feb 2014 12:19:50 +0000 (13:19 +0100)]
Added documentation into web socket in RestConf

Change-Id: I36fae4c8916c6d25a1b9619390467e48b64e8a3d
Signed-off-by: Ladislav Borak <lborak@cisco.com>
10 years agoMerge "Backward compatibility for User management"
Andrew Kim [Sun, 23 Feb 2014 01:50:47 +0000 (01:50 +0000)]
Merge "Backward compatibility for User management"

10 years agoModify config-api exceptions, bump config and netconf to 0.2.5-SNAPSHOT. 61/5261/6
Maros Marsalek [Tue, 11 Feb 2014 15:36:32 +0000 (16:36 +0100)]
Modify config-api exceptions, bump config and netconf to 0.2.5-SNAPSHOT.

Change ConflictingVersionException and ValidationException to be checked instead of
runtime exceptions.
Fix ConfigPusher's ConflictVersionException handling that was introduced when IOException was
used to wrap RuntimeException.
Small fixes in netconf, more refactoring of exception handling will be needed there.

Maros Marsalek: Rebase commit + fix compliation issue in ShutdownTest

Change-Id: Iab89de6ef6ced0de0a267470f860912ae3c56892
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
10 years agoIntegration test added to netconf-it to test identity (de)serialization. 37/5437/1
Maros Marsalek [Fri, 21 Feb 2014 10:48:44 +0000 (11:48 +0100)]
Integration test added to netconf-it to test identity (de)serialization.

Change-Id: I637011107edea916aaab35e8d2298bbbbabed653
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
10 years agoMerge "Fix message aggregator for chunked netconf messages."
Tony Tkacik [Fri, 21 Feb 2014 10:44:16 +0000 (10:44 +0000)]
Merge "Fix message aggregator for chunked netconf messages."

10 years agoFix message aggregator for chunked netconf messages. 23/5423/3
Maros Marsalek [Thu, 20 Feb 2014 12:19:03 +0000 (13:19 +0100)]
Fix message aggregator for chunked netconf messages.

Aggregator did not work with 1 message in multiple chunks.

Change-Id: I03cc89c3fc56a52f077fd21f77bd98e47ea358a9
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
10 years agoFix some sonar bugs in config-api and config-manager. 15/5415/2
Tomas Olvecky [Wed, 19 Feb 2014 14:43:41 +0000 (15:43 +0100)]
Fix some sonar bugs in config-api and config-manager.

Change-Id: I417bb4bdd649606d871382e7bf561d35daafc11b
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
10 years agoMake use of new sendMessage method in AbstractNegotiator 93/5393/2
Maros Marsalek [Tue, 18 Feb 2014 11:58:47 +0000 (12:58 +0100)]
Make use of new sendMessage method in AbstractNegotiator

Change-Id: Ieeb104aa34b8140936a1daf8011ba3b0effc79d5
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
10 years agoMerge "ConfigurationService to create default config dir"
Alessandro Boch [Wed, 19 Feb 2014 21:42:43 +0000 (21:42 +0000)]
Merge "ConfigurationService to create default config dir"

10 years agoAccept agentpath as a parameter to the run script 18/5418/1
Moiz Raja [Wed, 19 Feb 2014 20:04:36 +0000 (12:04 -0800)]
Accept agentpath as a parameter to the run script

This is to be used when you want to start open daylight with say the yourkit profiling agent

Usage would be something like this,

./run.sh -agentpath:"/Applications/Yourkit.app/bin/mac/agent.lib"

Change-Id: I0034adab46dc5185e54dfb22c85985324f82d0fb
Signed-off-by: Moiz Raja <moraja@cisco.com>
10 years agoConfigurationService to create default config dir 07/5407/5
Yevgeny Khodorkovsky [Wed, 19 Feb 2014 03:16:15 +0000 (19:16 -0800)]
ConfigurationService to create default config dir

- Have ConfigurationService create a default startup config directory,
  so that container unaware apps/modules can initiate and individual
  save.
- Semantic fixes in IConfigurationContainerService
- Bump configuration api rev since methods were added since last rev

Change-Id: Ifec274c258859a402f6dad7394c43c28ed162b95
Signed-off-by: Yevgeny Khodorkovsky <ykhodork@cisco.com>
10 years agoMerge "bug 433 NPE in onGlobalContextUpdated of ControllerContext class"
Tony Tkacik [Wed, 19 Feb 2014 15:29:03 +0000 (15:29 +0000)]
Merge "bug 433 NPE in onGlobalContextUpdated of ControllerContext class"

10 years agoAdd ModuleInfoBackedContext loading strategy to RuntimeGeneratedMapping service. 14/5414/2
Maros Marsalek [Tue, 18 Feb 2014 15:51:09 +0000 (16:51 +0100)]
Add ModuleInfoBackedContext loading strategy to RuntimeGeneratedMapping service.

RuntimeGeneratedMappingServiceImpl is now started by the config-manager.
ModuleInfoBackedContext is filled by BundleTracker in config-manager.

This fix allows use of yang identities in netconf and restconf.

Change-Id: Id59d9d2ce08bfc9216d90cb5673e2d02aafd9151
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
10 years agoMerge "BUG-421: Define multipart-transaction-aware"
Tony Tkacik [Wed, 19 Feb 2014 14:41:07 +0000 (14:41 +0000)]
Merge "BUG-421: Define multipart-transaction-aware"

10 years agobug 433 NPE in onGlobalContextUpdated of ControllerContext class 12/5412/1
Jozef Gloncak [Wed, 19 Feb 2014 12:32:51 +0000 (13:32 +0100)]
bug 433 NPE in onGlobalContextUpdated of ControllerContext class

Input parameter of type SchemaContext of method onGlobalContextUpdated is
now checked if is different from null to be able to call getOperations method.
In addition clearing of map of rpcs was added.

Change-Id: I2b69d7f50acba041ade17acba8b3f2af7b3e4d9c
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
10 years agoStop config-manager as first bundle when shutting down container. 11/5411/1
Tomas Olvecky [Wed, 19 Feb 2014 10:58:33 +0000 (11:58 +0100)]
Stop config-manager as first bundle when shutting down container.

If config-manager is stopped after a configured module's bundle has been stopped, config-manager will be unable to cleanly
close other instances, so it needs to be stopped as first bundle.
GlobalEventExecutorModule (netty-global-event-executor) is singleton, enforce it in only allowing one instance
called 'singleton'.
Make shutdown grace period smaller in order to close netty threads sooner that shutdown issues System.exit(1).

Change-Id: I042c606a5bedc49492784dcb0a5ad4dcbdcb0939
Signed-off-by: Tomas Olvecky <tolvecky@cisco.com>
10 years agoBackward compatibility for User management 04/5404/1
Sapan Shah [Wed, 19 Feb 2014 02:45:48 +0000 (18:45 -0800)]
Backward compatibility for User management

Change-Id: I844d959852cd40fa242ac56b6efa36b2982e73ec
Signed-off-by: Sapan Shah <sapshah@cisco.com>
10 years agoAdd logging for HashMapDataStore 95/5395/1
Robert Varga [Tue, 18 Feb 2014 15:36:36 +0000 (16:36 +0100)]
Add logging for HashMapDataStore

Change-Id: Icea99ff59317cc387a1143762840795149d4058e
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMerge "bug 344 interpretation of slashes ('/') in URI"
Tony Tkacik [Tue, 18 Feb 2014 15:18:53 +0000 (15:18 +0000)]
Merge "bug 344 interpretation of slashes ('/') in URI"

10 years agoMerge "Switch from using xtend to java in md-sal adapters"
Tony Tkacik [Tue, 18 Feb 2014 15:18:22 +0000 (15:18 +0000)]
Merge "Switch from using xtend to java in md-sal adapters"

10 years agoMerge "Activate enforcement of Path type"
Tony Tkacik [Tue, 18 Feb 2014 12:30:44 +0000 (12:30 +0000)]
Merge "Activate enforcement of Path type"

10 years agobug 344 interpretation of slashes ('/') in URI 68/5368/3
Jozef Gloncak [Mon, 17 Feb 2014 14:13:56 +0000 (15:13 +0100)]
bug 344 interpretation of slashes ('/') in URI

If slash (/) should be part of path parameter from URI it can be specified with %2F
placeholder.
e.g. list which key is "ke/y_1" CAN'T be specified as
list_name/ke/y_1
but should be constructed as
list_name/ke%2Fy_1

It is also necessary to add to target distribution folder
/opendaylight/configuration/config.ini
following line
org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true

Change-Id: Id07e7969247f3b60a44b808c95dac6375cebc011
Signed-off-by: Jozef Gloncak <jgloncak@cisco.com>
10 years agoMerge "Introduce checked sendMessage() method"
Tony Tkacik [Tue, 18 Feb 2014 12:23:33 +0000 (12:23 +0000)]
Merge "Introduce checked sendMessage() method"

10 years agoActivate enforcement of Path type 92/5392/1
Robert Varga [Tue, 18 Feb 2014 11:33:01 +0000 (12:33 +0100)]
Activate enforcement of Path type

This activates pre-prepared requirement of P to be of type Path<P>,
which had prerequisites in generated DTOs. Yangtools have been updated,
so it should be safe to activate this now.

Change-Id: I68ad3a77311e44db2e6bee1d7e2b3684090e5cbd
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoFix warnings in netconf-api and netconf-util 67/5367/4
Maros Marsalek [Mon, 17 Feb 2014 14:03:57 +0000 (15:03 +0100)]
Fix warnings in netconf-api and netconf-util

Change-Id: Icd7f605796ddb38cc01ac08c4de7e3c62cc8da39
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
10 years agoImprove NETCONF encoding performance 80/5380/3
Robert Varga [Sat, 15 Feb 2014 17:24:21 +0000 (18:24 +0100)]
Improve NETCONF encoding performance

This changes the protocol encoder such that it is piped directly into
the output buffer rather than constructing intermediate buffers and
strings.

Change-Id: I4938b2fd72b2321d21617c4e9c8a4d491778b657
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMerge "Untangle the XML/Hello message decoders"
Tony Tkacik [Tue, 18 Feb 2014 11:05:27 +0000 (11:05 +0000)]
Merge "Untangle the XML/Hello message decoders"

10 years agoMerge "Do not instantiate multiple DocumentBuilderFactories"
Tony Tkacik [Tue, 18 Feb 2014 11:01:13 +0000 (11:01 +0000)]
Merge "Do not instantiate multiple DocumentBuilderFactories"

10 years agoMerge "Split message aggregators"
Tony Tkacik [Tue, 18 Feb 2014 10:59:36 +0000 (10:59 +0000)]
Merge "Split message aggregators"

10 years agoMerge "Correct encoding"
Tony Tkacik [Tue, 18 Feb 2014 10:58:25 +0000 (10:58 +0000)]
Merge "Correct encoding"

10 years agoMerge "Cleanup framing mechanisms"
Tony Tkacik [Tue, 18 Feb 2014 10:57:13 +0000 (10:57 +0000)]
Merge "Cleanup framing mechanisms"

10 years agoIntroduce checked sendMessage() method 90/5390/1
Robert Varga [Tue, 18 Feb 2014 10:39:14 +0000 (11:39 +0100)]
Introduce checked sendMessage() method

This method send a message down the socket and makes sure that
negotiation fails if the message does not reach the peer for any reason.
Subclasses should use this method instead of talking directly to the
underlying channel.

Change-Id: I5b8201caef1c4ba655dad12fb139b054b9e75f06
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoFix a few more warnings 86/5386/1
Robert Varga [Tue, 18 Feb 2014 08:53:30 +0000 (09:53 +0100)]
Fix a few more warnings

- Remove unused string constants
- Add type arguments
- Removed unused field

Change-Id: I8fbbd238a805d9445eecc4d7c65176ce4ff36b6d
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoOptimize empty transactions 84/5384/3
Robert Varga [Tue, 18 Feb 2014 08:34:14 +0000 (09:34 +0100)]
Optimize empty transactions

This is a micro-optimization: if we know there are no affected paths,
we used to spin an entire transaction -- which ended up revalidating an
empty delta. Let's skip the entire circus and proceed to commit
directly.

Change-Id: Ia6250663c01348dd08610c2a44dc01743761a05c
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoAnother round of warnings fixes 82/5382/3
Robert Varga [Tue, 18 Feb 2014 07:34:56 +0000 (08:34 +0100)]
Another round of warnings fixes

Removes one unused method
Fixes raw type usage where possible
Organize imports to get rid of unused/duplicate imports
Remove the use of deprecated InstanceIdentifier methods

Change-Id: I75bac5eae1e8cffcf88ab01451d3e4a8afa8c43e
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoPlace an upper bound on notification concurrency 81/5381/3
Robert Varga [Tue, 18 Feb 2014 06:43:15 +0000 (07:43 +0100)]
Place an upper bound on notification concurrency

In Cbench tests we have seen as many as 2000 threads being created. This
is certainly an overkill and thus let's place an upper bound on the
number of threads we create.

Change-Id: I6a7f429080504cbfa75679cc5879264a0622f140
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoRemove unused ganymed.version property 83/5383/3
Robert Varga [Tue, 18 Feb 2014 07:47:06 +0000 (08:47 +0100)]
Remove unused ganymed.version property

Change-Id: Ifffaa15f77bed86c04909b5f6aee8ec389779994
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoUntangle the XML/Hello message decoders 79/5379/1
Robert Varga [Sun, 16 Feb 2014 05:46:06 +0000 (06:46 +0100)]
Untangle the XML/Hello message decoders

The tie between these classes was completely unnecessary -- we had this
complicated contract just for the sake of reusing couple of lines of
code. Untangle and optimize.

Change-Id: I6fd29ba0ff5d87a5fb2362e87e4fb1361544429f
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoDo not instantiate multiple DocumentBuilderFactories 78/5378/1
Robert Varga [Sun, 16 Feb 2014 05:44:49 +0000 (06:44 +0100)]
Do not instantiate multiple DocumentBuilderFactories

We're instantiating builders themsenves, so we can safely reuse a single
factory. No sense in initiating it more than once.

Change-Id: I70dfa2d5cc51a09722bb7ad41ce4d61f8691ac3d
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoSplit message aggregators 77/5377/1
Robert Varga [Sun, 16 Feb 2014 04:29:51 +0000 (05:29 +0100)]
Split message aggregators

This splits the EOM aggregator and the chunked encoding aggregator. The
chunked encoding can be much more efficient and hardened as it allows
for proper stream processing.

We do not go the entire way here, just tighten the chunk header parsing
by keeping an explicit state machine. We still need to gather the entire
message before shifting it, as our downstream expects to see the message
in its entirety.

Change-Id: I60947b6d018b73581a56adda5212d3482dda61ea
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoCorrect encoding 76/5376/1
Robert Varga [Sun, 16 Feb 2014 03:31:16 +0000 (04:31 +0100)]
Correct encoding

NETCONF chunked encoding is transferred in US_ASCII, not UTF-8.

Change-Id: I33d45b0d2806c91aaf5c22fcaf3731fdad6cf7f6
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoCleanup framing mechanisms 75/5375/1
Robert Varga [Sat, 15 Feb 2014 22:21:51 +0000 (23:21 +0100)]
Cleanup framing mechanisms

This gets rid of pre-instantiated NetconfMessageHeader in favor of
creating a static constructor method.

Furthermore allow our output chunking to be variable and bump the
default from 1K to 8K. The upper limit on chunk size is 16M.

Change-Id: I0ab4405fc7d750cca5875049f03b053aa80037ef
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoUpdate UserConfig with salt value while changing roles 74/5374/1
Sapan Shah [Tue, 18 Feb 2014 01:31:20 +0000 (17:31 -0800)]
Update UserConfig with salt value while changing roles

Change-Id: If99955c69cbf374e891db37c7a7f584f37acc047
Signed-off-by: Sapan Shah <sapshah@cisco.com>
10 years agoSwitch from using xtend to java in md-sal adapters 73/5373/3
Moiz Raja [Mon, 17 Feb 2014 23:55:59 +0000 (15:55 -0800)]
Switch from using xtend to java in md-sal adapters

This is part of my effort to switch all xtend code in the adapters to java

Change-Id: I10c679fbe5f7980facd1b5e5d2e0a5c3ae997ff6
Signed-off-by: Moiz Raja <moraja@cisco.com>
10 years agoMerge "Fix eclipse warnings about maven-enforcer-plugin"
Tony Tkacik [Mon, 17 Feb 2014 17:03:54 +0000 (17:03 +0000)]
Merge "Fix eclipse warnings about maven-enforcer-plugin"

10 years agoMerge "CHange log level from warn to debug in ProtocolSessionPromise when connection...
Tony Tkacik [Mon, 17 Feb 2014 16:31:35 +0000 (16:31 +0000)]
Merge "CHange log level from warn to debug in ProtocolSessionPromise when connection attempt fails"

10 years agoFix eclipse warnings about maven-enforcer-plugin 58/5358/2
Robert Varga [Sun, 16 Feb 2014 11:53:22 +0000 (12:53 +0100)]
Fix eclipse warnings about maven-enforcer-plugin

This patch adds an ignore lifecycle mapping, letting eclipse know it
should ignore the plugin.

Change-Id: I6508c5a929a30042197af3a390fe34378a348b9a
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMerge changes I393151af,I0a302cde
Tony Tkacik [Mon, 17 Feb 2014 16:30:03 +0000 (16:30 +0000)]
Merge changes I393151af,I0a302cde

* changes:
  Fix unused field warnings
  Fix warnings about overriden versions

10 years agoMerge "Add support for multiple choice case statements within one augument in config...
Tony Tkacik [Mon, 17 Feb 2014 16:28:11 +0000 (16:28 +0000)]
Merge "Add support for multiple choice case statements within one augument in config yang files"

10 years agoMerge "Fix namespaces for netconf monitoring extensions."
Tony Tkacik [Mon, 17 Feb 2014 16:19:09 +0000 (16:19 +0000)]
Merge "Fix namespaces for netconf monitoring extensions."

10 years agoFix typo in switchmanager log message in word 'available' 66/5366/1
Alissa Bonas [Mon, 17 Feb 2014 12:49:20 +0000 (14:49 +0200)]
Fix typo in switchmanager log message in word 'available'

Change-Id: I97bd3d69109b9fec460793758f9a56459a5226b0
Signed-off-by: Alissa Bonas <abonas@redhat.com>
10 years agoFix unused field warnings 57/5357/2
Robert Varga [Sun, 16 Feb 2014 11:22:03 +0000 (12:22 +0100)]
Fix unused field warnings

Removes affected fields, add @Override annotations and make constant
fields final.

Change-Id: I393151af1459e31eeded0786cf32223068635172
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoFix warnings about overriden versions 56/5356/2
Robert Varga [Sun, 16 Feb 2014 11:03:08 +0000 (12:03 +0100)]
Fix warnings about overriden versions

With proper parent structure, version overrides should not be present.

Change-Id: I0a302cde1c619af76f9290f7e5ca5080ff4fe251
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoFix namespaces for netconf monitoring extensions. 53/5253/6
Maros Marsalek [Tue, 11 Feb 2014 10:13:02 +0000 (11:13 +0100)]
Fix namespaces for netconf monitoring extensions.

Change-Id: Ib191dbcb121ead95db65263b4b478b8eac64c004
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
10 years agoCleanup warnings 55/5355/2
Robert Varga [Sun, 16 Feb 2014 10:22:45 +0000 (11:22 +0100)]
Cleanup warnings

Change-Id: I26d45b3f3856ddd893b54089521b5366deb34db3
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMerge "Serializable classes should have serialVersionUID"
Tony Tkacik [Mon, 17 Feb 2014 09:57:38 +0000 (09:57 +0000)]
Merge "Serializable classes should have serialVersionUID"

10 years agoMerge "Do not access static methods through object instances"
Tony Tkacik [Mon, 17 Feb 2014 09:56:36 +0000 (09:56 +0000)]
Merge "Do not access static methods through object instances"

10 years agoMerge "Add a bit of documentation"
Tony Tkacik [Mon, 17 Feb 2014 08:54:30 +0000 (08:54 +0000)]
Merge "Add a bit of documentation"

10 years agoSerializable classes should have serialVersionUID 54/5354/1
Robert Varga [Sun, 16 Feb 2014 09:56:01 +0000 (10:56 +0100)]
Serializable classes should have serialVersionUID

Change-Id: I3b7e3270202275a6bc08617957f78ee969d3ac70
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoDo not access static methods through object instances 53/5353/1
Robert Varga [Sun, 16 Feb 2014 09:48:01 +0000 (10:48 +0100)]
Do not access static methods through object instances

Stops eclipse from complaining.

Change-Id: I153b651068cceb8263f2f4a8ea65b8de45a1ba50
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoAdd a bit of documentation 47/5347/1
Robert Varga [Sat, 15 Feb 2014 06:05:11 +0000 (07:05 +0100)]
Add a bit of documentation

Change-Id: I57883cffb62f4f22de74d567f9d040a90e21a5d0
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoDisconnect node statistics tracking 46/5346/1
Robert Varga [Sat, 15 Feb 2014 06:36:09 +0000 (07:36 +0100)]
Disconnect node statistics tracking

This patch moves scheduling into the node handlers themselves. This
should allow for spreading out of the statistics collection, preventing
spikes. Additionally delay the initial collection by up to 5 seconds to
deal with multiple switches connecting at the same time.

Change-Id: I6ea039b405595b3756263bddd9cf8997bc73a038
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoHandle openflowplugin returning null 45/5345/1
Robert Varga [Sat, 15 Feb 2014 02:17:36 +0000 (03:17 +0100)]
Handle openflowplugin returning null

It turns out that openflow plugin reports success with null transaction
ID if the switch does not support a feature. This is quite bad, but we
can recover rather easily. Rework the registration contract to take care
of the changes.

Change-Id: I62fe7badeb5d792c8533762f5e68b7d37811f8ed
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoDetect RPC failures 42/5342/1
Robert Varga [Sat, 15 Feb 2014 02:17:36 +0000 (03:17 +0100)]
Detect RPC failures

This detects when RPCs to stats services fail. Also it removes the enums
used only for legacy debug.

Change-Id: Id4eb348b92378735a143b799b4c97b9840766ff6
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMerge "Move queue/meter/flow listeners into their trackers"
Tony Tkacik [Sat, 15 Feb 2014 03:52:52 +0000 (03:52 +0000)]
Merge "Move queue/meter/flow listeners into their trackers"

10 years agoMerge "Move statistics request functions into trackers"
Tony Tkacik [Sat, 15 Feb 2014 03:26:48 +0000 (03:26 +0000)]
Merge "Move statistics request functions into trackers"

10 years agoMerge "Bug fixes for netconf southbound plugin."
Tony Tkacik [Sat, 15 Feb 2014 03:25:14 +0000 (03:25 +0000)]
Merge "Bug fixes for netconf southbound plugin."

10 years agoMove queue/meter/flow listeners into their trackers 35/5335/3
Robert Varga [Fri, 14 Feb 2014 19:24:40 +0000 (20:24 +0100)]
Move queue/meter/flow listeners into their trackers

This completes the move of triggers under a per-node registration. With
this structure we should have a complete control of what should be going
on for a switch.

Change-Id: Ia35c925947e044ff826c1f2560c040fe696aaed0
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMove statistics request functions into trackers 23/5323/5
Robert Varga [Fri, 14 Feb 2014 19:24:05 +0000 (20:24 +0100)]
Move statistics request functions into trackers

This moves the gory details of specific requests into their respective
trackers. It also makes the request pipeline asynchronous.

Change-Id: I56ad175bc75b1af18263ae294cb3ffc118557abd
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMove statistics request methods into NodeStatisticsHandler 22/5322/3
Robert Varga [Fri, 14 Feb 2014 01:42:01 +0000 (02:42 +0100)]
Move statistics request methods into NodeStatisticsHandler

This move make sure we route all requests through a particular node
handler, so it now sees which stats are actually requested for a
particular node.

This means that MultipartMessageManager can use a simple map, as all
operations are now protected by the NodeStatisticsHandler's lock.

Current code organization now allows the individual statistics request
methods to be moved into individual trackers.

Change-Id: Iebd53d6dd447db7ab684cd2c6a90d9abf1b0e91e
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMove MultipartMessageManager into NodeStatisticsHandler 21/5321/3
Robert Varga [Thu, 13 Feb 2014 22:37:20 +0000 (23:37 +0100)]
Move MultipartMessageManager into NodeStatisticsHandler

There is no reason to have a global manager, now each
NodeStatisticsHandler instantiates its own manager -- thus the nodeId
in its tables has no point. This has the added value of being protected
by the NodeStatisticsHandler lock, thus we are prepared to having a
completely consistent view of what operations are really expected even
when switches flap.

Change-Id: I4ca63982506c6f290967040d5626400cb0a0996e
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoSplit out statistics tracking into separate classes 12/5312/4
Robert Varga [Thu, 13 Feb 2014 18:45:13 +0000 (19:45 +0100)]
Split out statistics tracking into separate classes

- FlowStats
- FlowTableStats
- GroupDescStats
- GroupStats
- MeterConfigStats
- MeterStats
- NodeConnectorStats
- QueueStats

are all now tracked by dedicated classes. Also create a dedicated
QueueStatsEntry and FlowStatsEntry class.

Furthermore the flow walking code is modified to stop searching as soon
as it finds a matching flow.

Change-Id: Ia2bacb12f9c0af6520c115c161388b72a846b062
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoAdd proxies for statistics getters 11/5311/3
Robert Varga [Thu, 13 Feb 2014 08:33:28 +0000 (09:33 +0100)]
Add proxies for statistics getters

This is a simple unification of stats collection triggers so they are
centered about their per-node collector.

Change-Id: Iaf63d782b58b84ed3270b9215587f96f93aab3cc
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoUse a single Timer instead of two threads 00/5300/4
Robert Varga [Thu, 13 Feb 2014 07:45:36 +0000 (08:45 +0100)]
Use a single Timer instead of two threads

It turns out that we really want to have the aging and collection bound
to a common timeline, so let's combine them. This will give us the
opportunity to perform mark&sweep in future.

Furthermore we use the threads only for periodic tasks, so let's convert
to a Timer with TimerTasks. This will allow us more flexibility going
forward, for example allowing NodeStatisticsHandlers to manage how often
they wish to collect individual statistics.

Change-Id: Ie2cd0e4e7391e1175a8927773f85278b80f16c48
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoStart rework of MultipartMessageManager 99/5299/4
Robert Varga [Thu, 13 Feb 2014 07:00:13 +0000 (08:00 +0100)]
Start rework of MultipartMessageManager

- TxIdEntry should be private static final
- Remove unused method
- Use System.nanoTime() for timekeeping

Change-Id: I51bf99082aadeb1f83055a0bf6a07e320c089db0
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoCentralize targetNodeRef in the NodeStatisticsHandler 98/5298/7
Robert Varga [Thu, 13 Feb 2014 03:41:07 +0000 (04:41 +0100)]
Centralize targetNodeRef in the NodeStatisticsHandler

There's no reason to allocate it over and over again, we will be using
for a long time. Also push the DataProviderService into
NodeStatisticsHandler such that we do not have circular references.

Change-Id: I1e2444644a27516c87ca93d386f5dc2ac334ffaf
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoKeep track of the tables we discover 97/5297/6
Robert Varga [Thu, 13 Feb 2014 03:23:54 +0000 (04:23 +0100)]
Keep track of the tables we discover

NodeStatisticsHandler has always the most uptodate information about
which tables were discovered. Let's cache the table IDs -- we will
need them for sending out follow-up requests.

And now that we do that, we do not have to read the tables from
DataProviderService just to get the keys -- use whatever we cached.

Change-Id: I9550ae3330215277d373ec0b2ea67945ef0e7c5c
Signed-off-by: Robert Varga <rovarga@cisco.com>
10 years agoMerge "Walk the tables directly"
Tony Tkacik [Sat, 15 Feb 2014 01:38:51 +0000 (01:38 +0000)]
Merge "Walk the tables directly"