50 Commits

Author SHA1 Message Date
Ekber Aziz
123ad5d560 P4Runtime unit tests for api, ctl, model modules
Change-Id: Iac1b1ef6e274c355ce3a26cffbd8adcb39694f69
2017-12-17 08:09:22 -08:00
Carmelo Cascone
b1936bd93f Bumped version of gRPC to 1.3.1
Change-Id: I7798476bd443a796e0e6a6e149ab8f66435ba4fa
2017-12-13 03:24:50 +00:00
Andrea Campanella
8bcd5863ff [ONOS-7311] and [ONOS-7197] Update ONOS to support most recent version of BMv2 and PI
Change-Id: Ie69cfe1946f3c9241dc7f59a64bd40005a063931
2017-12-12 14:03:36 -08:00
ONOS Jenkins User
61881df1ee Starting snapshot 1.13.0-SNAPSHOT 2017-12-12 21:19:45 +00:00
ONOS Jenkins User
d22dccc27f Tagging 1.13.0-b7 2017-12-12 21:18:01 +00:00
ONOS Jenkins User
4bf9e3a520 Starting snapshot 1.13.0-SNAPSHOT 2017-12-12 18:46:22 +00:00
ONOS Jenkins User
168ac92b8d Tagging 1.13.0-b6 2017-12-12 18:44:15 +00:00
ONOS Jenkins User
0e78e27f0c Starting snapshot 1.13.0-SNAPSHOT 2017-12-12 03:27:00 +00:00
ONOS Jenkins User
2a7d833cab Tagging 1.13.0-b5 2017-12-12 03:25:23 +00:00
ONOS Jenkins User
c53a15f933 Starting snapshot 1.13.0-SNAPSHOT 2017-12-11 20:43:30 +00:00
ONOS Jenkins User
d06da9e33c Tagging 1.13.0-b3 2017-12-11 20:41:44 +00:00
ONOS Jenkins User
716484c58c Starting snapshot 1.13.0-SNAPSHOT 2017-12-09 03:41:19 +00:00
ONOS Jenkins User
6a6ac1d5a0 Tagging 1.13.0-b1 2017-12-09 03:39:39 +00:00
ONOS Jenkins User
a57a814230 Starting snapshot 1.13.0-SNAPSHOT 2017-12-09 00:57:30 +00:00
ONOS Jenkins User
8977cedde7 Tagging 1.13.0-b0 2017-12-09 00:55:39 +00:00
Ray Milkey
a09f87f02b Starting snapshot 1.13.0-SNAPSHOT
Change-Id: Ib3360118c42aa760632ff80537d585865813060f
2017-11-21 09:38:31 -08:00
Carmelo Cascone
39c28ca503 Moved service PI classes/interfaces to appropriate package
Change-Id: I44a4aba848fd758a78a28eb484b7f579e3f22d08
2017-11-16 18:57:38 +00:00
Carmelo Cascone
87892e25d1 ONOS-7066 ONOS-7067 PI abstractions refactoring and P4Info model parser
Includes changes previously reviewed in #15607, #15877, and #15955.

Change-Id: Ie2ff62e415f2099832ebfe05961a879b7b188fc3
2017-11-13 16:15:17 -08:00
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
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
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
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
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
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