139 Commits

Author SHA1 Message Date
Ray Milkey
cc6ec60fb2 Starting snapshot 1.12.0-SNAPSHOT 2017-11-10 16:22:59 -08:00
Ray Milkey
9f9a752bdc Tagging 1.12.0-b2 2017-11-10 16:21:23 -08:00
Sean Condon
bf7d39bd75 Adding pom files for P4Runtime and GRPC
Change-Id: I9e205fc054875813200fe83a0bca4a9152ec66ae
2017-11-09 13:35:22 -08:00
Ray Milkey
1d46cb795f Parent pom name was wrong
Change-Id: I974a1ea536fc702ee51d76cd3ab5d07587dfc956
2017-11-06 13:30:41 -08:00
Ray Milkey
e27bb9023b Fix maven build
Change-Id: I71374cf697c79fe6809c687ca353e709fd087ae2
2017-11-06 12:55:17 -08:00
Yi Tseng
3e7f145b90 [ONOS-7143] Add arbitration update support by P4RuntimeClient
Change-Id: I671275576018d50447f969166a7b42a28dd93b1d
2017-11-03 23:13:29 +00:00
Carmelo Cascone
d61fdb3b89 Added P4Runtime-based Barefoot Tofino driver
Change-Id: I09ba8dd4468fa5a792ca481921e8a51dad49702e
2017-10-31 05:41:30 +00:00
Carmelo Cascone
ca94bcf5ea ONOS-7058 Refactored default pipeconfs in new pipelines directory
- Minimal refactoring of P4 programs
- Removed symlinks to BMv2 JSON/P4Info
- Bumped p4c commit (which fixes known parser bug)
- Renamed "default" pipeconf to "basic" (ONOS-6818)

Change-Id: I319f8b142ab22dba9b15457e28cd62d17f78a423
2017-10-30 16:53:37 +00:00
Carmelo Cascone
cb0a49c993 ONOS-7078 Fixed inconsistencies when encoding/decoding P4Runtime msgs
Now P4InfoBrowser permits looking up entities by name only, not alias.
Applications should use names as defined in the P4Info when
creating PI IDs (e.g. PiCounterId). However, to avoid breaking support
with BMv2-based pipeline models, when referring to header fields in
tables, i.e. match fields, application should drop any scope identifier
from field names, e.g. "hdr.ethernet.src_addr" should be referred by
applications as "ethernet.src_addr". Such inconsistency will be fixed
with ONOS-7066.

Change-Id: I4d6dceadd233a293b845dba84e62a49680ac930b
2017-10-03 16:40:27 +02:00
Carmelo Cascone
87b9b398fa Various improvements to PI group handling
- Moved group translation logic to core service
- Removed dependency on KRYO
- Fixed bug where tratments with PI instructions where not supported if
	an interpreter was present
- Fixed bug where action profile name was not found during protobuf
	encoding (always perform P4Info lookup by name and alias)
- Improved reading of members by issuing one big request for all
	groups

Change-Id: Ifcf8380b09293e70be15cf4999bd2845caf5d01e
2017-10-03 12:41:46 +00:00
Yi Tseng
82512da397 [ONOS-6935] ActionProfile supports in P4RuntimeClient
Change-Id: I9f0ac307985c03b7ed93e14e41ba468c481a4e4f
2017-09-28 01:45:23 +08:00
Carmelo Cascone
7f75be413e ONOS-7001 Support for direct counters
Currently Bmv2 returns UNKNOWN error when reading direct counters.

Change-Id: I834d7b5a8627181c6888500545e1bdbfe9af8dc1
2017-09-13 08:28:38 +00:00
Carmelo Cascone
99474f140e P4 tools version bump
Change-Id: I39bfba21fb90334ca4cae05ce06c34ddeafd02ab
2017-09-06 21:16:30 +00:00
Carmelo Cascone
b045ddce4a Implemented support for P4Runtime counter read
And PortStatisticsDiscovery behaviour for default.p4 that uses it

Change-Id: Iadf40eb322987ef74239120e01acb4bece712aef
2017-09-01 15:11:50 +00:00
Carmelo Cascone
f423bec0b3 Fixed internal device ID in P4Runtime
Data type for the P4Runtime server-specific device ID is uint_64.
We were using int to store it in ONOS.

Change-Id: Ia4624cfc453ccf6b00a690eb9e4e4ad14a7881ec
2017-08-30 08:17:11 +00:00
Carmelo Cascone
28f3778f5a Bumped P4 tools version
Change-Id: I25ac46916292fcb384dd507ef69326cb83eda84e
2017-08-29 19:03:28 +00:00
Carmelo Cascone
2308e52d63 Workaround for the duplicate flow rule apply problem for P4Runtime
Change-Id: I0373facddd0e610e2a3b9ab0afe0e6ca64cf33aa
2017-08-29 15:09:24 +00:00
Frank Wang
d8ab0961cc Fixs some misspellings
Change-Id: I03d23d8acca8789b430f74fdac80d287f0fa59df
2017-08-25 16:34:57 +08:00
Carmelo Cascone
9f007703fd Bumped P4Runtime version of generated gRPC stubs
Now is the same as onos-setup-p4-dev.
Also reduced logging in P4Runtime client.

Change-Id: I77134aa5562327a711e223f12da94c712349544c
2017-08-24 13:31:35 +02:00
Andrea Campanella
0288c87839 Creating a p4runtime default driver to avoid code duplication between bmv2 and barefoot drivers
Change-Id: Id7f16a284c65278ec1a9ec682da01ddf020343c8
2017-08-22 09:42:14 +00:00
Ray Milkey
446f446a4f Refactor buck external dependencies
Change-Id: Ia4b99493407eb7d4e893804cba6b944f758f085e
2017-08-21 17:41:36 +00:00
Yi Tseng
088f4ce0f8 [ONOS-6916] Fix bmv2 flow programmable and PiCriterionTranslator
ONOS can't add flows to the bmv2 switch

Change-Id: I66ec90d0e1ed097afeffd0498e65c239b628efa4
2017-08-20 23:14:10 +00:00
Brian O'Connor
a09fe5b0b7 Updating Copyright line to Open Networking Foundation
Change-Id: Icba96d7f39a065b53f34a6aeb71afd1f7d51f774
2017-08-03 21:12:30 -07:00
Carmelo Cascone
2cad9efec5 Various fixes to get a P4Runtime demo that works
Change-Id: Icab512fceeb6ec0faf1b402c1e325e055cdb2caf
2017-08-03 16:17:58 +02:00
Carmelo Cascone
a966c34402 Catch exceptions when processing messages on P4Runtime stream channel
Also, packet I/O test in P4RuntimeTest.

Change-Id: Ib11d7356eef43cd962cf47f8a6fba8fc23ed69be
2017-08-01 07:59:12 +00:00
Carmelo Cascone
0e896a0285 Implemented class for PI match key
Used as table entry ID in P4Runtime devices

Change-Id: I9f35503f118fa6e6a23b59aa6b716273a24ece0a
2017-08-01 07:54:35 +00:00
Thomas Vachuska
1251e63216 Cleaning up app categories and default app origin to be "ONOS Community"
Change-Id: Ia01dffcbd2c4dcf615dd3af5e2f941a5d4beff42
2017-07-31 22:49:49 +00:00
Andrea Campanella
288b273cf3 Implement support for packetIn through p4Runtime
Change-Id: I92cc1a2bd7edde8916aad61c20d7411f93368612
2017-07-28 19:21:08 +02:00
Carmelo Cascone
b2e3dbaef0 Pi classes to support P4Runtime action profiles
+ modified default.p4 with ECMP capabilities (via action profiles)
+ sketched translation logic of ONOS groups (in Bmv2GroupProgrammable)
+ replaced existing instances of default.json/p4info with symlinks to
	p4src build directory (to avoid inconsistencies)

Change-Id: If82f0b8ce296c9b616415d99864d216b77645a87
2017-07-28 16:01:31 +00:00
Carmelo Cascone
c8e8498893 P4runtime test utility app
Used for quick testing of P4Runtime with real devices.
To be removed before release.

Change-Id: Ieca17493e4b012ef748709014b62ebe54ba76dce
2017-07-27 14:09:00 +00:00
Carmelo Cascone
dda88d02c8 Declaring P4Runtime and gRPC protocol subsystems as apps
The advantage is that we don't have to carry over the driver all
required gRPC and P4Runtime bundles. Each module is now responsible for
bringing in its own runtime dependencies.

Change-Id: Icb1365e68d486f12fb1e25dc5d3937f42e3e1c62
2017-07-21 15:44:45 +00:00
Andrea Campanella
fc1d34ca16 [ONOS-6809] Implementation for packet out in p4Runtime
Change-Id: I873a1fd18529fe9fd41aa33f862298892ece7d1c
2017-07-20 20:24:17 +00:00
Carmelo Cascone
04d0939378 Fixed deps and bundles for BMv2 drivers, P4Runtime and gRPC protocols
Change-Id: I96ad0e1e1021897544e41d02304a9f8240c1eb15
2017-07-19 21:07:32 +00:00
Carmelo Cascone
8d99b17b8e Handling of table entry messages in P4Runtime
+ synchonized method execution in P4RuntimeClient
+ support for cancellable contexts (for client shutdown)
+ logging of sent/received messages in GrpcControllerImpl
+ minor refactorings

Change-Id: I43f0fcc263579e01957a02ef3392105aed476f33
2017-07-19 16:36:50 -04:00
Andrea Campanella
432f718de7 [ONOS-6809] Support for Packets and packet Metadata
Change-Id: I53910cd8e2ce5845e301dc68bcbf3ae8f34a197b
2017-07-18 13:51:54 +00:00
Carmelo Cascone
fb76b04736 Fixed P4 tools build script for Ubuntu 14
+ bumped version of p4runtime and BMv2
+ minor update to bmv2.py

Change-Id: I7784b075b2e6015bb3eef1286011968303b66129
2017-07-18 13:41:32 +00:00
Carmelo Cascone
98dfdb756a Implemented P4Info browser
Change-Id: Iebff15ac60cf1121b29afce7f67b4c31c5a60f0e
2017-07-17 14:52:21 +00:00
Carmelo Cascone
59f57decd1 ONOS-6561 BMv2 handshaker via P4Runtime
+ support fort device-specific default pipeconf
+ improvements to P4runtime and gRPC protocol stuff

Change-Id: I8986fce3959df564454ea3d31859860f61eabcae
2017-07-13 17:24:25 +00:00
Carmelo Cascone
f7aa3f947f ONOS-6559 P4Runtime protocol library
Change-Id: I7070b69507dcf2ca47ee1c446bcc2505ca868fb1
2017-07-12 16:44:04 +00:00