927 Commits

Author SHA1 Message Date
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
Ray Milkey
472d839809 Start bazel support for protobuf models and p4runtime build
Change-Id: Ib3beb70c1b401854444b106b4af3723cd40635e4
2018-05-29 21:26:37 +00:00
Laszlo Papp
d17154d0fb ONOS-5554 Remove the BTI driver
Change-Id: I631fd8a84941b5d364d4120e17fbd2e0ac10d47b
2018-05-24 09:10:37 -07:00
Sean Condon
e4042d3486 Modifying allowed Mime Types for RESTCONF
Change-Id: Idf96164a23aeaf81dedb55b1de198b2a06f33c15
2018-05-24 14:31:55 +00:00
Ray Milkey
0bcdfd1e59 reformat bazel files to use Google coding standards
Change-Id: I320f0ca7ccb1b2247ccdd9fa58fefca7dad8a16f
2018-05-23 14:07:19 -07:00
Ray Milkey
7dac7dadf5 Initial builds using bazel
Change-Id: I38123b396a2ffda5f36cdca43f3ad1fa67a7ab52
2018-05-23 20:38:54 +00:00
Yi Tseng
8d355132da [ONOS-7605] Unable to modify groups on BMV2
Change-Id: I797366ac152dccac75f8ed82b62abe6e5da6dd3e
2018-05-22 18:57:19 +00:00
Andrea Campanella
a74bdba108 Bug Fixes and improvements to P4Runtime subsystem
Change-Id: Ib18b08e5e4b4d552949b119d7b1201dd4ca616f6
2018-05-16 17:05:41 +00:00
Yuta HIGUCHI
cf03a0fafd Fix call passing arrays to hash
- http://errorprone.info/bugpattern/ArrayHashCode

Change-Id: Ic2ffb201de6ba2973f41868b4ed99c86ba78c359
2018-05-16 15:56:57 +00:00
Brian O'Connor
1bd4a9f12f Adding netcfg listener to disconnect switches when certificate is
updated or removed.

Change-Id: I04b170aec328b4c91a6d699ff128347d9a148736
2018-05-15 23:04:21 +00:00
Brian O'Connor
f7215b8ec7 Updating Openflow controller properties
- Moving TLS related config to separate config object
- Added support for adding/removing OF ports without restarting channel group

Change-Id: I79552334519434780d9174a1a9ff4eebc0d17194
2018-05-15 20:16:28 +00:00
kdarapu
fce5abbc5d [ONOS-7667] Code clean-up in compliance with Java8
Change-Id: Ieb17110357d8fa13705ebe9c86559b0863e77751
2018-05-15 16:06:04 +00:00
Yuta HIGUCHI
f733373baf Bug fixes
- Netconf get family should return from <data
- adapt ODTN driver to that behavior

Change-Id: I25508518354914fdd239beab3a9951eff3586e41
2018-05-15 00:01:53 +00:00
Brian O'Connor
f69e3e3409 Fix for CVE-2018-1000155
Denial of Service, Improper Authentication and Authorization,
and Covert Channel in the OpenFlow 1.0+ handshake

Change-Id: Ifd285208266a1f331f3b802cb656349aad1782a9
2018-05-10 20:52:35 -07:00
Thomas Vachuska
164ecf6019 Adding mechanism for device subsystem & providers to trigger device
reconnect in support of ONOS-7645 (device driver change)

- added device listener to OpenFlowDeviceProvider to properly disconnect switch
- removed device listener from OpenFlowControllerImpl
- augmented DriverManager to consult NetworkConfigService as a primary source

Change-Id: I1aa8e9cc7e81ff3af7a72145f4e51f3e32022806
2018-05-09 17:51:20 +00:00
Jian Li
eaf3103e7e Configure OVSDB to either run as hybrid mode or client mode
With current implementation, OVSDB is always running as hybrid
mode which is running both server and client.
In case, ONOS and OVS run in the same machine, we encounter
port conflict issues. To resolve this issue, we would like to
add a configurable parameter to enforce ONOS only runs as OVSDB
client without listening port 6640. Note that, by default ONOS
will be still running as hybrid mode.

Change-Id: I8c1d310335c0a0a661e9011905c00456baec309f
2018-05-04 21:12:38 +00:00
Yuta HIGUCHI
7847227140 Fix artifactId
- bgp, bgpcep, general provider
- onos-app- => onos-apps-

Change-Id: I49fd905a0765d21f7cc329a7f7a5593c78dd3d28
2018-05-04 16:23:00 +00:00
Yuta HIGUCHI
5233decc2a Remove deprecated NetconfSessionImpl
Change-Id: I92d9407ff4bc0c25ca7b998cc4f387c3f40f9ace
2018-05-03 16:01:08 +00:00
Ray Milkey
0225791756 Fix maven build - ONOS artifact version numbers were wrong
Change-Id: Iafbcb86067336e8dae94eec9220ccee57aeedd5e
2018-04-26 12:58:37 -07:00
Tomek Osiński
7a1db1814b Initial implementation of XMPP Publish/Subscribe
Change-Id: I9930056b83004fa7a085f72f63ba973f9ec2d95b
2018-04-26 08:22:38 +00:00
tanbangcheng
62cd4490ad Remove unnecessary code of DefaultOvsdbClient.
Change-Id: Icad49d7b7a352b6cf29d97ec217c2cc9e85ce5b2
2018-04-19 21:37:07 +00:00
tanbangcheng
e8d0439f6a Fix OvsdbControllerImpl memory leak. Fix dispatch NodeRemoved Event twice.
Change-Id: I3ddf48858549195e43f91fa23322d6b264349e6b
2018-04-18 19:11:48 +00:00
FrankWang
9ea7276ed9 minor fix for P4Runtime meter
Change-Id: Ieaf843f0fb86e9ea42c906940d4733c8733f399a
2018-04-17 15:36:49 +08:00
Ray Milkey
bca9049101 Starting snapshot 1.14.0-SNAPSHOT
Change-Id: I97bab4e31d2b701f015289eae29d0c58a4937685
2018-04-13 12:47:31 -07:00
Carmelo Cascone
384a93aada Updated pom.xml for P4Runtime proto build
Change-Id: I07a7c84c7b39be0c3777293cb3fd307e9f2f634e
2018-04-12 17:52:38 +00:00
Carmelo Cascone
81929aa0cf Bumped supported commit of P4Runtime and BMv2
Includes fixes for:
- ONOS-7593: Support for indirect resource Index type
- ONOS-7595: Removed ID from direct resources
- P4Runtime requires unset bits to be 0 in ternary field matches
- Incorrect parsing of flow rule byte counters
- Full entity names in P4Info with top-level control block (fixed only
	for basic.p4, other programs need to be re-compiled and PI IDs in
	respective pipeconf changed)

Change-Id: Ia19aa949c02e363a550e692915c6d6516a2d13d7
2018-04-11 19:04:45 +00:00