927 Commits

Author SHA1 Message Date
Ray Milkey
7a2dee599c [WIP] Add @Service tags to all commands and completers
Change-Id: I8d6ae6185ada30a92481ddb7b603af323656dc3a
2018-09-28 11:21:57 -07:00
Ray Milkey
86ad7bb5e7 [WIP] apps CLI changes for karaf upgrade
Change-Id: I283efc39c7d4f4b31344f1d2d0cdd2b98a60932d
2018-09-28 11:21:43 -07:00
Ray Milkey
d84f89ba3d [WIP] Upgrade ONOS to karaf version 4.2.1
Change-Id: I7cd40c995bdf1c80f94b1895fb3344e32404c7fa
2018-09-28 11:20:57 -07:00
Laszlo Papp
bdb6408dce Make the netconf notification stream customisable
Change-Id: I0e51861b7f8cb4961a47e88f64a493106e2c7a8a
2018-09-17 09:20:50 +00:00
Carmelo Cascone
943c664d2f Fixed P4RuntimeClient not parsing detailed write errors
Before the only error shown was UNKNOWN, now we can report errors
specif to each write request.

Change-Id: I5eeed890597b7273720414498b3abce8e9d62fa8
2018-09-13 20:52:20 +00:00
Ray Milkey
6b1acfcb91 Remove deprecated addDevice() API
Change-Id: I486c679962d8fd888334d0dd6f50b418779564ce
2018-09-11 16:43:32 +00:00
Ray Milkey
5274150fa5 remove deprecated start() method
Change-Id: I91de662a165b943f46cff8b023e637633f9133c0
2018-09-11 16:43:26 +00:00
Carmelo Cascone
33b27bc190 Ignore entries from constant tables in P4Runtime
Change-Id: I6ba8591a9674287832a18e258c5dd3801c588a32
(cherry picked from commit ba73da5bd09a6b40ab5727ef4a03767d437687e8)
2018-09-10 08:33:35 +00:00
Carmelo Cascone
de3b6843ca Relinquish mastership when device reports "permission" denied event
Also reduces default pipeconf watchdog probe interval
Also fixes NPE on GDP when device is unreachable

Change-Id: Ie2fe1874b0883a037596d9a555a2f8cc030a55a6
(cherry picked from commit d797e2c28505fbdbb8597038ebcf977a053bae72)
2018-09-10 08:33:22 +00:00
Ray Milkey
7f98ba611d Deprecated protected data is now private
Change-Id: I520222a069a74f389b271734741807db80ec716e
2018-09-07 16:34:31 +00:00
Carmelo Cascone
9e4972c5d8 Refactor P4Runtime subsystem to implement async connection procedure
This patch is an attempt to solve issues observed when restarting both
switches and ONOS nodes. Most of the issues seemed to depend on a
brittle mastership handling when deploying the pipeline.

With this patch, GDP registers devices to the core with available=false
(i.e. offline) and marks them online only when the P4 pipeline has been
deployed to the device. A new PiPipeconfWatchdogService takes care of
deploying pipelines and producing event when devices are ready.

Moreover, we fix a race condition where pipeconf-related behaviors
were not found. This was caused by GDP enforcing the merged
driver name in the network config, while external entities (e.g.
Mininet) were pushing a JSON blob with the base driver name. This patch
removes the need to rely on such a trick and instead uses
pipeconf-aware logic directly in the driver manager (change #19622).

Finally, we fix issues in P4RuntimeClientImpl that were causing the
stream channel not detecting unreachable devices. The solution is to
follow gRPC APIs and re-instantiate a new channel once the first fails.

Change-Id: I6fbc91859c0fb58a6db3bc197b7081a8fe9f97f7
2018-09-06 03:08:09 +00:00
debanshur
37cf6ba727 SSL/TLS support for OVSDB Southbound API
Change-Id: Ib76653131bdf4b934a484eb72f91af60ff5861c0
Wiki Link : https://wiki.onosproject.org/pages/viewpage.action?pageId=23333242
2018-09-03 22:51:47 +00:00
zhongguo zhao
98bb37a80d fix netconf automatic reconnection issue (check both isClosed and isClosing)
Change-Id: I4b4730fe3030ae66877561ccf71f85c55919a7ce
2018-08-28 09:22:21 +00:00
Daniel Park
1455268005 Supports methods to get interface-related information in ovsdbclient service.
Change-Id: Ic7e45178c8adc9b207b43d893e64b1f2f47cebd4
2018-08-28 07:00:44 +00:00
Carmelo Cascone
85d72efe96 Fix race to become master in P4Runtime before pipeline config set
Change-Id: Id02e33a1d72d16ec49634ac57b6a4b56acdcf796
(cherry picked from commit 86f82c9e7ccd3912f77840e38eb7402a04f93681)
2018-08-28 04:50:17 +00:00
zhongguo zhao
78eab37f02 fix too many open files
Change-Id: If5b31db383631dfca907a1ee1018d51ce2f0f36e
2018-08-27 16:23:45 +08:00
Andrea Campanella
4828f18c01 Fixing restconf Bazel build
Change-Id: I125397749c1d057e9f7b4528a7b5946477f3f4b3
2018-08-24 17:03:24 +00:00
quan PHAM VAN
32d70e5642 [ODTN] Netconf inject capabilities and Nokia openconfig device discovery
Author:    Quan PHAM VAN <quan.pham_van@nokia.com>

Change-Id: I6bb639f0af3d1083922c4e631b8958a94d822886
2018-08-22 16:47:59 +02:00
Ray Milkey
761e80a427 Remove pom files from ONOS
Change-Id: I53e2395466cba10222d638736635b11380421d98
2018-08-21 18:11:58 +00:00
Kim JeongWoo
8b03bc583b [ONOS-7766] Modify the use of invalidated checkReply methods in Netconf
Change-Id: I4400c33373a93926bcc8a397db4f24e141790b63
2018-08-21 06:56:28 +00:00
Ray Milkey
312d987732 Starting snapshot 1.15.0-SNAPSHOT
Change-Id: I9239c7695f7faf6dc184a0ff54a34dedf4761b2d
2018-08-20 16:09:54 -07:00
Ray Milkey
05d609aa02 buildifier reformatting of bazel files
Change-Id: I1645613ec9dc57e659e7036634fcf3f3992b05a7
2018-08-15 17:55:00 +00:00
Carmelo Cascone
0e427dc182 Fix P4RuntimeClientImpl sending empty stream RPC messages
Change-Id: I31e010144585a0cb9e054e773b7a7e4380919d75
2018-08-15 05:53:37 +00:00
ONOS Jenkins User
03e5521fba Starting snapshot 1.14.0-SNAPSHOT 2018-08-14 22:13:58 +00:00
ONOS Jenkins User
3594c24cb2 Tagging 1.14.0-rc2 2018-08-14 22:13:02 +00:00
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