4746 Commits

Author SHA1 Message Date
Ray Milkey
33306ba609 Revert "Removing applyRole to avoid double mastership requests to the provider."
This reverts commit 82e21897f3e735594510709fc9f0bc85f37d8f4c.

Change-Id: Id0a76f915fadcc0f83b588159eef537a5d695c62
2018-09-20 13:42:22 -07:00
Andrea Campanella
80b296d9c7 Notifying the delegate about the RESTORED event on the mastership of a given device.
In turn the DeviceManager checks the role and sends the proper one down to the provider to be applied.

Change-Id: Icab9ac30b6e269d8acf9d14896c9858beaedb6da
2018-09-19 13:14:33 +00:00
Ray Milkey
66bf3824ea Remove deprecated Host Provider APIs
Change-Id: Ie6b2d2e38160a015df97337c06101e9156c8ab83
2018-09-18 16:55:56 -07:00
Andrea Campanella
82e21897f3 Removing applyRole to avoid double mastership requests to the provider.
The request roleforSync call handles the request.
The store selects a role and this in turn issues a
handleMastershipEvent call that deals with applying the request

Adapting NETCONF device provider to mark online only after session establishment.

Change-Id: Id16937ced3af31b5b65bc6e5b0794557cf900a57
2018-09-18 07:35:41 +00:00
Ray Milkey
1f8fcc3c6b Fix problems detected by the latest version of errorprone
Change-Id: I532d3627fa232e93ee6860bd10db64c99e78f915
2018-09-17 22:48:13 +00:00
Ray Milkey
f031e308fd Remove deprecated constructors and change usges to builder pattern
Change-Id: I4d3b756268db233debdcb0782f738d38c77a50ac
2018-09-11 16:43:21 +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
3bceb01c23 Remove deprecated getLeaderBoard() API from LeadershipService
Change-Id: I009e1ae26faef3950a7a5e997376783895f575f2
2018-09-07 13:42:46 -07: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
Carmelo Cascone
0761cd3cc0 Few core changes in preparation of P4Runtime subsystem refactoring
Refactoring aims at providing a more robust connection procedure of
P4Runtime-based devices.

Refactoring requires devices to be registered to the core with
available=false (i.e. offline), and marked online only when the P4
pipeline has been deployed to the device. Also, it leaves the duty of
handling pipeconf-specific drivers to the driver subsystem, instead of
having the GeneralDeviceProvider take care of it, which resulted to be
brittle.

Changes include:
- Choose not to mark device online when re-asserting mastership role by
declaring special device annotation.
- Lookup drivers in device projectable model unsing driver service
device-based method, which is consistent with the way other subsystems
look for device drivers.
- In DriverManager, when looking for device drivers, consider the case
of pipeconf-programmable devices, in which case a special "merged"
driver needs to instantiated at runtime.
- In PacketManager, push flow objectives only if device is available
(i.e. after pipeline has been deployed).

Change-Id: I80f78a4f40730a06cb82fa55fefab08a91a89268
2018-09-06 03:07:44 +00:00
You Wang
45ce008e51 Increase leadership election timeout to 2500ms
Change-Id: I824fe2b56caeb344f65cfccaf54d8cf3fcafb49b
(cherry picked from commit 8825b4baf4445609819086685a62064ade23ff66)
2018-09-05 17:34:44 +00:00
Charles Chan
dc579c580a Implement compareTo for TableId to avoid IllegalArgumentException
java.lang.IllegalArgumentException: Comparison method violates its general contract!

Change-Id: I4033e9a6743f134583eab936de2b960d76274919
2018-08-29 19:07:02 +00:00
Jordan Halterman
35a02eaa85 Implement destroy() method for certain primitives to preserve backwards compatibility
Change-Id: I64e5790d531bf538bbfd886419362b14967331e6
2018-08-28 19:28:14 +00:00
Jordan Halterman
204c7bf435 Make leadership/mastership failover timeouts configurable
Change-Id: I5e45085205ef3025d947ba69b3a122d41315b828
2018-08-28 16:51:43 +00:00
Carmelo Cascone
da60a61435 Build missing pipeconf-merged driver at startup
Change-Id: Ia5600de362978be1f551c7581d138e35b9736108
(cherry picked from commit 11296f34f16041f3ae32c735b7218cb4ca98637a)
2018-08-28 04:51:16 +00:00
jaegonkim
8eabcecfe6 [ONOS-7751] Sometimes device availability is not changed to available after creation of OF device
Change-Id: I5fd62c598e865e149755b9d09594c985846a572b
2018-08-21 22:14:09 +00:00
Ray Milkey
761e80a427 Remove pom files from ONOS
Change-Id: I53e2395466cba10222d638736635b11380421d98
2018-08-21 18:11:58 +00:00
psneha
f31ac6ff9f Added one more Component Config REST API; for specified component and variable.
Change-Id: I810aa90636c55c8b05c146780ad28c307cefff33
2018-08-21 12:17:32 +00:00
Ray Milkey
312d987732 Starting snapshot 1.15.0-SNAPSHOT
Change-Id: I9239c7695f7faf6dc184a0ff54a34dedf4761b2d
2018-08-20 16:09:54 -07:00
Jordan Halterman
e075338aa7 Upgrade to Atomix 3.0.0 final
Change-Id: Ia8ea1394dde40776a2ede660f8bdb876332e4b49
2018-08-20 15:32:11 -07:00
Jordan Halterman
c1be5b8003 Upgrade to Atomix 3.0.0-rc12
Change-Id: Id05018faa82195608d0ec6dae5cedc7a8899fc19
2018-08-20 19:35:24 +00:00
Charles Chan
b71e1ba963 Do not queue VERIFY objectives
Change-Id: If53738aa3fbe89396bffcc95543a07e9f879c6cb
2018-08-17 17:45:03 +00:00
Ray Milkey
7981a32f37 Fix NPE when component can't be found
Change-Id: I803240cde2d2b2c5efeee03617d0e3a275a2f570
2018-08-16 23:52:44 +00:00
Saurav Das
09c2c4d19b Changing the default pw transport vlan to 4090 instead of 4093.
Also adding component config options for pw transport vlan and default internal vlan.

Change-Id: I8bb48530e46db8534b825eecd9aea781fe3f0de1
2018-08-16 05:00:04 +00:00
Ray Milkey
05d609aa02 buildifier reformatting of bazel files
Change-Id: I1645613ec9dc57e659e7036634fcf3f3992b05a7
2018-08-15 17:55:00 +00:00
Jordan Halterman
6cf60c3f33 Convert all Atomix exceptions to ONOS storage exceptions
Change-Id: If4ba6b4fa41643fc3d9a9f2d84dc68fd6399a352
2018-08-15 17:41:48 +00:00
Thomas Vachuska
6ac9035267 [ONOS-7162] Forcing provider scheme to always be in lowercase.
Change-Id: I27fa58b044da7a4f6d447082ecb92c8f448152fe
2018-08-14 23:19:54 +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
Thomas Vachuska
afac1c61b8 Resizing a unit test that intermittently exceeds the default small size time limit.
Change-Id: I89775fc3520c925987a43127cc5c442e7be6214b
2018-08-13 17:03:00 +00: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
Jordan Halterman
bc559fd94e Upgrade to Atomix 3.0.0-rc11
Change-Id: I731b16319ce2e5607700e178d341729862c7ed57
2018-08-10 20:59:37 +00: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
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
Jordan Halterman
fa71cc6fdf Upgrade to Atomix 3.0.0-rc10
Change-Id: If4095b225611a62831ae45dbf59550c7ce3a9f3c
2018-08-08 22:50:37 +00:00
Jordan Halterman
bc98239e13 Use default primitive timeout in map keys/values/iterators
Change-Id: I72e3b24eb219b4f10b02406c94798b7581d4effa
2018-08-08 08:03:57 +00:00
Jordan Halterman
6aca84c7e7 Upgrade to Atomix 3.0.0-rc7 to use agent distribution
Change-Id: I368ea95456553518bd627b1f4197442535186158
2018-08-06 02:12:32 +00:00
Jian Li
d486a73352 Support to build openstack related apps using Bazel
Change-Id: Ibc9f43a8fd92bb41b162a88a1eb3e8c8c5ad990a
2018-08-05 08:53:02 -07:00
Jordan Halterman
19c123a77b [ONOS-7757] Support onos-local and embedded cluster configurations
- Refactor cluster.json to support internal/external nodes ('controller' and 'storage')
- Bootstrap embedded partitions when 'storage' nodes not present
- Update onos-gen-config script to generate cluster.json based on environment variables
- Update setup scenario to ignore missing $OCC# environment variables

Change-Id: Ia93b64e13d7a7c35ed712da4c681425e3ccf9fe9
2018-07-31 00:03:48 +00:00
Thomas Vachuska
b6d31676d2 Refactoring to eliminate a split package issue in onos-core-primitives.
Change-Id: I48ff6fe62ae006906674aae1f69e015395f042fc
2018-07-27 17:03:47 -07:00
Ray Milkey
644fdbf65b bazel implementation of the bucklet for ATOMIX primitives
Change-Id: I0db54c031856d55cefe0fa8ab67237ed5a787595
2018-07-27 23:18:23 +00:00
Ray Milkey
28d77f3fc2 Bazel build for Atomix 3.0 use
Change-Id: I720a9ab4b2262571a06e92ee087f5e0a8b606947
2018-07-27 23:18:16 +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
Ray Milkey
74c98a3ee8 Refactor file path validation code; reject apps with up-level references in the name
Change-Id: I4b14604608078d12df2f7b89f9f841ed19c2552c
2018-07-26 17:28:05 +00:00
Ray Milkey
351d456aca Prevent zip archives from putting files in directories outside of the target directory
Change-Id: I4c751097e8d5190f3df32d8aa4195336e28b1c0a
2018-07-26 15:41:50 +00:00
Youngbo Sim
3c933ec287 bugfix: ONOS-7741
Change-Id: I0971ff4eac5517621071f20e87631740a32b1f7f
2018-07-25 16:43:34 +00:00