912 Commits

Author SHA1 Message Date
Ray Milkey
a349da9d6b Merge branch 'master' into dev-karaf-4.2.1
Change-Id: I3c87139d15508e16a15df62fe73590b2a2ef7a04
2018-11-07 16:20:46 -08:00
Yi Tseng
5f7fef58a2 [ONOS-7831] Implement GnmiHandshaker
Change-Id: I2232a724a86955483321f9fda571907aa2cb615a
(cherry picked from commit a884274c5796e6d8e6a58743d2d7f5ef47124b78)
2018-11-07 22:42:49 +00:00
DongRyeol Cha
c29f9077cf Fix starvation of file descriptors due to netconf memory leak
If there are some errors during start the netconf session, SshClient is not freed so that sockets or file descriptors that made by SshClient are not freed as well.
It leads to starvation of file descriptors for onos so that onos cannot make network connections, spawn the threads so on.

This fix does not permit reusing of already closed NetconfSessionMinaImpl.

ONOS-7833

Change-Id: I1c8799cbbf8b28d23629123ad5d31ccca4a1fb3d
(cherry picked from commit 8f4c1e2ac5ed0033a472a4eb44fdfcba12145134)
2018-11-07 08:22:18 +00:00
DongRyeol Cha
8f4c1e2ac5 Fix starvation of file descriptors due to netconf memory leak
If there are some errors during start the netconf session, SshClient is not freed so that sockets or file descriptors that made by SshClient are not freed as well.
It leads to starvation of file descriptors for onos so that onos cannot make network connections, spawn the threads so on.

This fix does not permit reusing of already closed NetconfSessionMinaImpl.

ONOS-7833

Change-Id: I1c8799cbbf8b28d23629123ad5d31ccca4a1fb3d
2018-11-07 08:21:55 +00:00
Ray Milkey
5739b2cc0c Merge branch 'master' into dev-karaf-4.2.1
Change-Id: I260f0ee72fa87f1547fa790f031c4980176992ac
2018-11-06 14:11:34 -08:00
Yi Tseng
890dc3f03a
[ONOS-7141][ONOS-7142] Add GnmiClient and GnmiController
Change-Id: I6347da378d9e4b59a38e2efacc27599b96dc1515
2018-11-05 12:01:35 -08:00
Yi Tseng
2a340f7cc6 [ONOS-7829] Implement AbstractGrpcClient and AbstractGrpcClientControl
Change-Id: I39cba6834e7fe8d1b60b576b9934c0b3cfa7104b
2018-11-05 19:05:35 +00:00
Ray Milkey
e52652ced3 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: I059c6a95489ff5cdc51dd7e98ba44a8415238bc2
2018-11-02 17:12:33 -07:00
Yi Tseng
e671fc9624 Update gNMI version and build script
Change-Id: I0f2d3c84a7a13111dc5da966b21836338d327929
2018-11-02 03:59:16 +00:00
Thomas Vachuska
07782d262b Eliminated old features.xml and app.xml files required by no-longer supported Maven build.
Change-Id: I060af47c85c1b83d35f6cc8e462d6d609872b15a
2018-11-01 20:41:00 +00:00
Ray Milkey
68032db277 Remove blueprint files for 3.0 karaf CLI
Change-Id: I017db2a3c66cea8f0f7c568e5d4f3f302170936d
2018-11-01 20:39:23 +00:00
Thomas Vachuska
00b5d4fee0 Removing commented out @Property annotations from the drivers, protocols, pipelines and providers.
Change-Id: I4cabc5a53c93b778824c72cebbce0ec49700eade
2018-10-30 23:43:55 +00:00
Ray Milkey
a218d43062 Merge branch 'master' into merge
Change-Id: Id77bb2de77dd288404c83e331b076aaf9aafacc5
2018-10-30 12:44:55 -07:00
Georgios Katsikas
db14847c2d Correctly set test URL in server device driver
Also, the parent DefaultRestSBDevice had a faulty testUrl toString.

Change-Id: I15d9432402aa00d453c3b09cbf5e5c05e82549eb
Signed-off-by: Georgios Katsikas <katsikas.gp@gmail.com>
2018-10-29 14:03:43 +00:00
ghj0504520
ed7340c7c2 ONOS-7797 Support adding an arbitrary number of members to an existing P4Runtime group
Change-Id: I7b9ed589ca15957ee1b2780934a6da8e998bace3
2018-10-27 00:25:03 +00:00
Ray Milkey
956bb1691a Merge remote-tracking branch 'origin/master' into dev-karaf-4.2.1
Change-Id: If611105632e508cb17352c6f5b1cbcfd85f716d1
2018-10-26 10:53:44 -07:00
steven30801
7632e150e1 [ONOS-7596] Support reading table entries with counter data in P4Runtime
Change-Id: I85bacb1697a6c881dd69ba74a2162c73ec0b8aee
2018-10-26 17:25:13 +00:00
Thomas Vachuska
22ea6126e4 Removing BUCK files and other Buck-related auxiliaries.
Change-Id: I23691380efcd9bce4906695605214ed59ada0e87
2018-10-24 20:02:31 +00:00
ghj0504520
ec1a420030 ONOS-7810 calculate cookie field when pipeconf registered
Change-Id: Iea29fc447b34c49d4e8fcc831812385459c1ccbb
2018-10-24 19:59:22 +00:00
ghj0504520
92a48bfe9e ONOS-7810 use cookie field when checking the pipeline in P4Runtime
Change-Id: I777af9536889eb525f78493e2cbf43ff637b1a1f
2018-10-23 18:04:36 +00:00
Ray Milkey
d542568b21 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: Iec1b8947c898b0bf10db8caece0c3a064d1c63ae
2018-10-23 10:50:43 -07:00
Andrea Campanella
9d5066b521 Fixing login issues on restconf web resource
Change-Id: I33677d1de5f8bd00b35dc7a7786ea190f1bed606
2018-10-23 16:20:24 +00:00
Ray Milkey
28b15ae6e0 Fixes to allow ONOS to build using built in bazel Java 9 JDK
Change-Id: I57b7b3b9a8a28a824b196a72a24c42cd9d04cc59
2018-10-19 17:08:37 +00:00
柯志勇10068695
55f80b6a23 The result of dis.getMessageDigest().digest() must be returned here. Otherwise, this method will lose its meaning.
Change-Id: I356a47386bde4c39eb5e1e95a3f7036a38137acd
2018-10-19 05:54:58 +00:00
Carmelo Cascone
03ae0acdd8 Bump version of P4Runtime to 1.0.0rc3 and P4 tools
Change-Id: I3082b4bd772d692830bd5af8e326a0fd5fb2f167
2018-10-18 22:30:46 +00:00
Ray Milkey
2d7bca1540 Move type specifiers from property name constants to the corresponding component annotations
Change-Id: Id5e3b669721ecf076a010cc4783b9e6b33e6fca0
2018-10-17 22:41:15 +00:00
Ray Milkey
0b18b72872 Merge branch 'master' into merge
Change-Id: I163ecf699b554e33f4db938c66b73c9911e51135
2018-10-16 13:19:15 -07:00
Ray Milkey
b5646e6f7a Use property constants for OSGi components for stores
Change-Id: I5d21075abb453d5bc54e02653d5a96746e6a074e
2018-10-16 18:52:22 +00:00
Ray Milkey
309f9a0944 Implement OSGi properties for openflow protocol
Change-Id: I1abee2716909c8d102fcfd53f10515d7e0439a9f
2018-10-16 17:24:58 +00:00
Ray Milkey
ec20a291b5 netconf protocol changes for karaf 4.2.1 CLI
Change-Id: Ica9b614c4ef4f8264df13bd119531bb7806c290b
2018-10-11 15:55:42 -07:00
柯志勇10068695
d7e3b6f5ad If FileInputStream is not close(), there will be a risk of memory leaks.
Change-Id: I9a0d6100ec26a83fd0e7cb4312246bdd8df28082
2018-10-11 14:30:56 +08:00
Ray Milkey
db57f1c326 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: I86b9d80581cd76a7c20e05201023090f9692d1ab
2018-10-09 11:26:45 -07:00
Carmelo Cascone
e44592f246 More robust P4Runtime group handling
This patch solves the PENDING_UPDATE and PENDING_ADD_RETRY issue
observed on the ONS EU topology.

The P4Runtime action profile group handling has been re-implemented to
be robust against inconsistencies of the device mirror, which is now
periodically synchronized with the device state. Similarly, we implement
a routine in the P4RuntimeClient to cleanup unused action profile
members.

This patch includes also:
-  Refactor PI handle classes to allow creating handles without the
entity instance
- Use list instead of collections in P4RuntimeClient methods, as order
of updates sent and/or entities received from the device is important

Change-Id: I2e7964ce90f43d66680131b47ab52aca32ab55d2
2018-10-05 23:45:29 +00:00
Carmelo Cascone
50d195ffb3 Do not insert or delete default action entries in P4Runtime
Spec says:
the default entry for a table is always set. It can be set at
compile-time by the P4 programmer - or defaults to NoAction (which is a
no-op) otherwise - and assuming it is not declared as const, can be
modified by the P4Runtime client. Because the default entry is always
set, we do not allow INSERT and DELETE updates on the default entry and
the P4Runtime server must return an INVALID_ARGUMENT error code if the
client attempts one.

With this patch we convert insert or delete operations into modify ones
(unless specified by a driver property, to support non-compliant devices).
For delete, we use the interpreter to suggest a default action that is
the same as the one when the pipeline was originally deployed.

Also, we introduce the capability of synchronizing the device mirror
with the device state.

Change-Id: I3758fc11780eb0f1cf4ed5a295bd98b54b182e29
2018-10-05 23:45:18 +00:00
Carmelo Cascone
dca52babbe Increase gRPC inbound msg size for P4Runtime client
Change-Id: I51bb790a7b16c6e34066978e7044d51971f1b9d4
(cherry picked from commit b3e821d417eddc0c0345d7848a5e62ddd47ff5c3)
2018-10-05 23:39:38 +00:00
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