902 Commits

Author SHA1 Message Date
ONOS Jenkins User
4e5f2d67ac Starting snapshot 1.14.0-SNAPSHOT 2018-08-13 23:16:37 +00:00
ONOS Jenkins User
cff0bd8922 Tagging 1.14.0-rc1 2018-08-13 23:15:43 +00:00
Carmelo Cascone
6a1ae71db1 Fix p4runtime runtime dependencies when building with Bazel
A convenient macro for packaging together all proto and gRPC libraries
in an OSGi jar is provided. Also re-packaging of gRPC core (to avoid OSGi
split problem) is simplified by depending on a patched fork of grpc-java.

Change-Id: Idb79a5bea8ae0bc57b146bda1fc47a4568d12c60
2018-08-13 18:51:36 +00:00
Sean Condon
3ae60e26d7 Fix error in POM for Maven build
Change-Id: I7b513f6d9070a3d0093364b1607735d0d03f0c94
2018-08-11 09:58:13 +01:00
Ray Milkey
4867af2f9c Revert "Tagging 1.14.0-b1"
This reverts commit 78ce40093ac008fd6d169ab83d2d5961f91f6e31.

Change-Id: I8482f550c30f75d65333f6be9c9115a930abc56f
2018-08-10 16:53:10 -07:00
Carmelo Cascone
4164436785 More p4runtime-related bazel build files
Change-Id: Icdd02a06d7905e4cd0a6c61d282fd522c7b75fe7
2018-08-10 18:42:44 +00:00
Ray Milkey
78ce40093a Tagging 1.14.0-b1 2018-08-10 11:16:44 -07:00
Sean Condon
5548ce618d Adding ServerSentEvents to Rest Southbound interface
Change-Id: I77411df608be8a1cab9d828db17202f88b969a0f
2018-08-10 08:56:58 +01:00
Thomas Vachuska
727abd3dfe Adding runtime dependencies for protobuf & gRPC.
Change-Id: Id6e8eede254252a9af1776579fa9bc9209385644
2018-08-09 16:18:11 -07:00
Carmelo Cascone
72893b7755 [WIP] Attempt at building grpc and p4runtime protocols with Bazel
STILL NOT WORKING AT RUNTIME

Change-Id: I1f9e60b12a12e09edad2a714ec2921a4f71c6d35
2018-08-09 20:33:39 +00:00
Yuta Higuchi
df1e3733bb Fixing pom.xml
- remove duplicate deps
- remove bundle instruction pointing to file which does not exist

Change-Id: Iad8f2aef94d7cd705317a6092174235409d7f968
2018-08-06 17:13:15 +09:00
Jian Li
d486a73352 Support to build openstack related apps using Bazel
Change-Id: Ibc9f43a8fd92bb41b162a88a1eb3e8c8c5ad990a
2018-08-05 08:53:02 -07:00
Ray Milkey
3077358d1a Bazel build for the combined GRPC runtime jar file
Change-Id: I76ff5f1b81a0985cb45c70c8f63640668207cd4e
2018-08-03 16:04:05 +00:00
Georgios Katsikas
15841e2a86 RestSBDevices with explicit proxy field
This patch allows to create RestSBDevices with explicit
isProxy (boolean) field.
This is important because previously, the RestDeviceProvider
did not allow this, resulting in new REST-based devices
being hidden behind other devices (thus not showing up in ONOS),
although a driver for these devices was available.

I also took the opportunity to slightly refactor the RestDeviceProvider.

Change-Id: I7c8ddf95ead357a35d54bc0bb6d36a2e4ca66f7a
Signed-off-by: Georgios Katsikas <katsikas.gp@gmail.com>
2018-07-30 16:15:49 +00:00
Jordan Halterman
00e92da455 Upgrade to Atomix 3.0-rc5
* Upgrade Raft primitives to Atomix 3.0
* Replace cluster store and messaging implementations with Atomix cluster management/messaging
* Add test scripts for installing/starting Atomix cluster
* Replace core primitives with Atomix primitives.

Change-Id: I7623653c81292a34f21b01f5f38ca11b5ef15cad
2018-07-27 15:40:26 +00:00
Thomas Vachuska
a01ef78df3 Fixing javadoc warnings.
Change-Id: I7b99660777bf69978bf91435a63526ccb9bf8b71
2018-07-25 21:55:27 +00:00
Georgios Katsikas
80e0b9fed4 Fixed NIC name to port number inconsistencies in server driver
This patch fixes some weak assumptions regarding the way the
server device driver maps NIC names and port numbers.
Also, some necessary refactoring and stdout message fixes are
committed.

Addressed comments from ONOS developers

Change-Id: I6730d971ddf8d4fe97c2d3bef75f1432e7a4592e
Signed-off-by: Georgios Katsikas <katsikas.gp@gmail.com>
2018-07-25 16:55:37 +00:00
Carmelo Cascone
58136816ab ONOS-7739 Support for P4Runtime multicast programming
Design doc: https://docs.google.com/document/d/13rkQlwr49M-uxQQEuxCMP7BFEPY2gtQ850Hn3gUfesU/edit#heading=h.lzdayib259sq

Change-Id: Ief00bec89fe5a9784b0ee13fdaafa3ae58ab654f
2018-07-20 18:16:17 +00:00
Ray Milkey
35ea5bfb55 Additional bazel build files for apps
Change-Id: If3f31139022b5657e4a7b8a33871e4eba0da286e
2018-07-19 21:47:33 +00:00
Carmelo Cascone
f645e8406c Bump P4 tools to latest version
With support for P4Runtime multicast API

Change-Id: I6982c32187204b656a927d0f3d7f3a4b1b877e75
2018-07-16 20:31:32 +00:00
Georgios Katsikas
74a8a44325 Graceful handling of ConnectException in HTTP delete
When the HTTPSBController attempts to delete a resource
on a device that is currently unavailable, a ConnectException
is thrown. This patch handles such a case more gracefully.

Change-Id: Iac2ea193bdd06fc8535ffce8850be6e522d3b441
Signed-off-by: Georgios Katsikas <katsikas.gp@gmail.com>
2018-07-06 15:47:05 +00:00
Carmelo Cascone
7044efd07e More bugfixes in P4Runtime subsystem
- NPE when removing agent listeners
- Don't block netcfg event dispatch thread on GDP
- Avoid unnecessary warn logs during disconnection in GDP

Change-Id: I612f7f7914579eea9ba393e952377a3933d92e8d
2018-07-06 13:01:36 +02:00
Carmelo Cascone
158b8c4f6b More improvements and bugfixes in P4Runtime subsystem
Most notably, we fix a bug in which some nodes were not able to find
pipeconf-specific behaviors for a given device. The problem is not
completelly solved but it's mitigated.

There's a race condition caused by the fact that the GDP updates the cfg
with the merged driver name before advertising the device to the core.
Some nodes might receive the cfg update after the device has been
advertised. We mitigate the problem by performing the pipeline deploy
(slow operation) after the cfg update, giving more time for nodes
to catch up. Perhaps we should listen for cfg update events before
advertising the device to the core?

Also:
- NPE when getting P4Runtime client
- Detect if a base driver is already merged in pipeconf manager
- Longer timeouts in P4Runtime driver and protocol (for slow networks)
- Configurable timeout in P4Runtime driver and GDP
- NPE when adding/removing device agent listeners in P4Rtunime handshaker
- Various exceptions due to race conditions in GDP when disconnecting
devices (by serializing disconnect tasks per device)
- NPE when cancelling polling tasks in GDP
- Refactored PipeconfService to distinguish between driver merge,
pipeconf map update, and cfg update (now performed in the GDP)
- Fixed PipeconfManagerTest, not testing driver behaviours
- Use Guava striped locks when possible (more memory-efficient than maps,
and with strict atomicity guarantees w.r.t. to caches).

Change-Id: I30f3887541ba0fd44439a86885e9821ac565b64c
2018-07-06 08:13:44 +00:00
Yuta HIGUCHI
cf91a2d634 Fix Bmv2 related issues
- fix pom issues introduced in ONOS-7251
- fix error-prone detected issue
- fix artifactId naming

Change-Id: I4711c14ec25ed83a6e9071c9a0f8a2d606dad877
2018-07-03 06:17:24 +00:00
Ray Milkey
dbd3821cf0 Checkstyle rule to prevent throwing the generic RuntimeException
This is a frequent cause of sonar breakage.

Change-Id: I54e0044447633a61bab560b020b57ed0a6875ebe
2018-07-02 18:03:00 +00:00
Carmelo Cascone
e5b2872eb6 Improve scalability of P4Runtime subsystem
The P4Runtime client was hanging (deadlock) on a master arbitration
request. As such, all other requests (e.g. table write) were waiting
for the client's request lock to become available.

Apart from fixing those deadlocks, this patch brings a number of
improvements that all together allow to run networks of 100+ P4Runtime
devices on a single ONOS instance (before only ~20 devices)

Includes:
- Asynchrounous mastership handling in DevicHandshaker (as defined in
the P4Runtime and OpenFlow spec)
- Refactored arbitration handling in the P4RuntimeClient
to be consistent with the P4Runtime spec
- Report suspect deadlocks in P4RuntimeClientImpl
- Exploit write errors in P4RuntimeClient to quickly report
channel/mastership errors to upper layers
- Complete all futures with deadlines in P4Runtime driver
- Dump all tables in one request
- Re-purposed ChannelEvent to DeviceAgentEvent to carry also mastership
response events
- Fixed IntelliJ warnings
- Various code and log clean-ups

Change-Id: I9376793a9fe69d8eddf7e8ac2ef0ee4c14fbd198
2018-06-29 13:59:27 +00:00
nitinanand
f14dccdc03 [ONOS-7704] device memory/cpu stats for pica8 switch using Switch_Inventory DB
Change-Id: I1956d06ab373119da59561252f5b35561f8f5619
2018-06-28 15:56:40 +00:00
Ray Milkey
0250a0811e Fix dependencies of some bazel tests
Change-Id: If864b37c08db73620c07a17174130024571a8d38
2018-06-28 15:33:02 +00:00
Esin Karaman
971fb7fd1f ONOS-7251 - Initial implementation of fabric.p4 L2 broadcast feature.
Thrift client cherry-picked from the commit dd5792ac9ee38a702c3128a34224852b5c284687

Change-Id: I989f2b2074485a892195889a7c976b518510da88
2018-06-28 13:34:47 +00:00
Ray Milkey
d1c34da3b6 Refactor PCE and PCEP test adapters to remove redundant classes
Change-Id: I407c3dcd42588c03ba7f5c438d0bf61409d64d69
2018-06-27 22:04:04 +00:00
Ray Milkey
1a783729a1 Fix for OS-12, NumberFormatException on badly formatted version string
Change-Id: I7d667b12bcc00e8a8135c367cb9463f266130d31
2018-06-27 21:07:37 +00:00
Carmelo Cascone
44448a52cc Allow re-creating clients for the same P4Runtime addr-port
Change-Id: Ib3de10d047f52dd28511e71385773d4b4a9ad74f
2018-06-26 12:23:29 +00:00
Ray Milkey
324af9301f Bazel build files for protocols
Change-Id: I12a9cfe2d135d10c640a51d9b3438bcd92f8e37f
2018-06-21 03:48:25 +00:00
Yuta HIGUCHI
4f55c67c98 NetconfSession refactoring
- Move netconf rpc envelope processing common across secure transport implementation
  to AbstractNetconfSession
  work by: Palash Kala <palash.kala@samsung.com>

Change-Id: I5f0d6adecf6224ae44f224291f645725b3c87739
2018-06-19 17:42:09 +00:00
Laszlo Papp
10f0d51401 Fix the snmp alarms on device configuration
Change-Id: Ia15df8cf2c112e00f7d6930272a97cb447e98fe8
2018-06-18 15:39:46 +01:00
Ray Milkey
1f9e7dc1fe Fix maven build of P4 models
Change-Id: If7ed98261a1f3a18ea752e7ce401d155085650f3
2018-06-15 13:37:33 -07:00
Carmelo Cascone
6af4e17c53 Bumped supported revisions of P4 tools
Includes:
- Use new P4Runtime "v1" package names
- Removed VALID match
- New table entry priority spec (1 is min priority, not 0)
- Fixed p4c-bm2-ss to include arch flag
- Re-compiled P4 programs with more recent p4c (with updated p4info)

Change-Id: I05908f40eda0f0c755009268fd261fb8bcc9be35
2018-06-15 19:04:30 +00:00
Yuta HIGUCHI
2ee4fba094 Mark netconf related factory as functional interface
- deprecate/remove redundant factory implementations

Change-Id: I29ba9f3397c37c02b37d07dff16a4203186c5fcd
2018-06-13 17:31:46 +00:00
FrankWang
2674e45220 Introduce Pi Register model to PI Framework
Change-Id: I7fae87d5b5ed5fff34b3addfc148cee6fc98137c
2018-06-13 13:00:50 +00:00
Yuta HIGUCHI
08392f45ec Fix gRPC dependency
Change-Id: Iddebec60218b555d8ffe39fcabd3daad0b776218
2018-06-09 07:15:37 +00:00
FrankWang
ea70de3094 [ONOS-7602]Implement support for P4Data in PI framework and P4Runtime southbound
Change-Id: I9c0c76fb29b8c3aa36f39bde62e825f0f0094253
2018-06-08 09:04:50 +00:00
Andrea Campanella
1e5734480f [ONOS-7584] Adding Capability of re-connecting to a P4Runtime Device.
Also addresses ONOS-7359

Change-Id: I47ec4ed429af82feb225ab5ac180b94c91366a53
2018-06-08 02:14:33 +00:00
Ray Milkey
a8cf59e03a move osgi_feature() and wrapped_osgi_jar() out of the bazel prelude
Change-Id: I0266ab4dbf0d0845ccbd940f2d0d3b230bd55260
2018-06-07 16:35:10 +00:00
Ray Milkey
32ea35cd0c Refactor of the OSGI bazel rules
- renamed the .bzl file to match the accepted snake case naming standard
- removed an uneccesary veneer method inside the rule implementation

Change-Id: I1e0f5aecf1d4b7b73e7376c1bb4c296960aaa5fc
2018-06-06 15:28:07 -07:00
Yuta HIGUCHI
eee1e82746 Align artifactId naming to buck
Change-Id: I16507dbfa23b9a1f45b6c2df92bfc0284cb91715
2018-06-06 17:08:07 +00:00
Kamal Krishna Bhatt
dbef16fcd4 Fix for ONOS-7708 java.lang.ClassCastException while calling the API to get OvsdbQueue.
Change-Id: Ib67f33483f870a775d8fa73fe7aa531b97c8e1e6
2018-06-06 08:22:17 +00:00
Ray Milkey
12ceb7acdb Fix ErrorProne reported problems with null checks on primitive types
Change-Id: I0e930370743be30cfb1e149535e53caf62947683
2018-06-05 22:21:04 +00:00
Laszlo Papp
9655b18147 ONOS-5917 SNMP Alarm Provider
Change-Id: I9eb39021584f3b1a5baed9dfa638569818901197
2018-06-05 08:02:46 +00:00
Ray Milkey
3275ae800b Implement OSGI wrappers for proto jar files
Change-Id: Ic30d162093c383edc4abf5e9e9b96df669d804c8
2018-06-04 17:46:51 +00:00
Ray Milkey
816db1086a Add modules to Bazel build
cli
core
incubator/rpc
pipelines/basic
protocols/netconf
protocols/openflow
protocols/rest

Change-Id: I165b94a04ba893d97d944e5deb2746f54566503b
2018-05-31 15:44:36 +00:00