31 Commits

Author SHA1 Message Date
Carmelo Cascone
65aa829cd1 Various improvements to P4 tutorial
- Added steps to exercise 2 to use wireshark to capture MyTunnel packets
- Various formatting fix/improvements
- Fixed markdown link to use relative paths
- Fixed bm-cli command not to use sudo (not needed)

Change-Id: I514da99a6cfadd048294c610ba201503c0339e89
(cherry picked from commit 19ea89f8540eef0e41fdf7b4fd9a2a1950f2ade9)
2018-11-09 18:52:40 +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
Ray Milkey
d542568b21 Merge branch 'master' into dev-karaf-4.2.1
Change-Id: Iec1b8947c898b0bf10db8caece0c3a064d1c63ae
2018-10-23 10:50:43 -07: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
d84f89ba3d [WIP] Upgrade ONOS to karaf version 4.2.1
Change-Id: I7cd40c995bdf1c80f94b1895fb3344e32404c7fa
2018-09-28 11:20:57 -07:00
Ray Milkey
05d609aa02 buildifier reformatting of bazel files
Change-Id: I1645613ec9dc57e659e7036634fcf3f3992b05a7
2018-08-15 17:55:00 +00:00
Carmelo Cascone
4164436785 More p4runtime-related bazel build files
Change-Id: Icdd02a06d7905e4cd0a6c61d282fd522c7b75fe7
2018-08-10 18:42:44 +00:00
Carmelo Cascone
158b8c4f6b More improvements and bugfixes in P4Runtime subsystem
Most notably, we fix a bug in which some nodes were not able to find
pipeconf-specific behaviors for a given device. The problem is not
completelly solved but it's mitigated.

There's a race condition caused by the fact that the GDP updates the cfg
with the merged driver name before advertising the device to the core.
Some nodes might receive the cfg update after the device has been
advertised. We mitigate the problem by performing the pipeline deploy
(slow operation) after the cfg update, giving more time for nodes
to catch up. Perhaps we should listen for cfg update events before
advertising the device to the core?

Also:
- NPE when getting P4Runtime client
- Detect if a base driver is already merged in pipeconf manager
- Longer timeouts in P4Runtime driver and protocol (for slow networks)
- Configurable timeout in P4Runtime driver and GDP
- NPE when adding/removing device agent listeners in P4Rtunime handshaker
- Various exceptions due to race conditions in GDP when disconnecting
devices (by serializing disconnect tasks per device)
- NPE when cancelling polling tasks in GDP
- Refactored PipeconfService to distinguish between driver merge,
pipeconf map update, and cfg update (now performed in the GDP)
- Fixed PipeconfManagerTest, not testing driver behaviours
- Use Guava striped locks when possible (more memory-efficient than maps,
and with strict atomicity guarantees w.r.t. to caches).

Change-Id: I30f3887541ba0fd44439a86885e9821ac565b64c
2018-07-06 08:13:44 +00:00
Thomas Vachuska
ca0b5dfb38 Cleaning up application categories.
Change-Id: Id3c937323123b6089cedf7b31cd01151f6aca8e1
2018-06-23 04:18:30 +00:00
Carmelo Cascone
4bf427f58a Recompiled P4 tutorial pipeconf to work with new P4 tools revisions
Change-Id: I2f1e5f49233f095148990eddee098bfd406a5cf6
2018-06-19 21:47:16 +00:00
Arturo F de Velasco
60af96a74e answer to questions for self-checking
Change-Id: I9fab290e7ff3417e6523596d3df00dd757132ded
2018-06-13 13:01:07 +00:00
Jianwei Mao
fd9f74417e [ONOS-7685]Improve failure inspection template for P4 Runtime developer
If P4InfoParser fail to parse p4info file, the parser will pass exact exception message to Apps by Cause of P4InfoParserException.

So, developer must use P4InfoParserException.getCause().getMessage() to gain exact failure cause.

This is hard to be reminded, especially when it is packed into IllegalStateException or other Exception class.

Change-Id: Ica9cd24521a9eb8700cd1cbfce573631c30cbff2
2018-06-11 22:01:35 +00:00
Carmelo Cascone
bca9a0ae33 Corrections to P4 tutorial exercises
Change-Id: I010fdff09695c96e0a2953bc442ee7df604a90bc
2018-05-22 17:30:25 +00:00
Carmelo Cascone
d54861fa85 Updated P4 tutorial instructions after bm-* commands refactoring
Change-Id: Ie4478137b5bafd1428ba3ab9f68292cb39410601
2018-05-15 17:40:33 +00:00
Carmelo Cascone
d9af042fb1 Minor fix P4 tutorial exercise 2
Change-Id: Ia97c3c2fd79ab34906e5beb34d0549d72d1216af
2018-05-02 07:04:10 +00:00
Carmelo Cascone
12c972846e P4 tutorial exercise 2
Change-Id: I91f8a9287cdfd57a4a9c03b91fdc0de57b8d4f2c
2018-04-24 04:51:09 +00:00
Carmelo Cascone
0bd3b18df2 MyTunnel exercise with solution for P4 tutorial
Change-Id: Ifddfa27d6df6545bbd529239ca400967fb623a29
2018-04-18 23:33:14 +00:00
Carmelo Cascone
422f8c4c96 Tutorial VM pointers and corrections for ONOS-P4 tutorial exercise 1
Change-Id: Ia8872a1d5b8c2962a63dbfa7825ed0d6994b8a4e
2018-04-18 15:26:58 +09:00
Carmelo Cascone
9bc6a14a2e Initial P4 tutorial instructions plus minor fix
Change-Id: I3eeceb09f34a55b901f8f01f5f3058c2d0fcca07
2018-04-18 05:36:10 +00:00
Carmelo Cascone
700648c993 MyTunnel P4 tutorial app and pipeconf
Change-Id: I0549276fc7f6c8d0d244d6c52b1b9e85b9c3e13c
2018-04-12 01:13:33 +00:00
Carmelo Cascone
255125d9fc No need to map table counters in PI pipeline interpreter
This is related to ONOS-7595. In a recent P4Runtime update, it has been
made explicit that tables can support at most 1 direct counter. Hence,
the pipeline interpreter no longer needs to provide a mapping between a
table and one of potentially many counters. If needed, such mapping can
be derived from the pipeline model (i.e. the p4info)

Change-Id: Ibdece52f35a4d187ab9dbeb90f5527b6285e9788
2018-04-11 21:24:48 +00:00
Carmelo Cascone
8a571af574 Support for bitwise AND/OR/XOR in ImmutableByteSequence
Also, minor refactoring of the fit() method to improve code readability

Change-Id: I826650c3fc45573c723d9d2dd8692da174d9ae08
2018-04-09 16:56:49 +00:00
Ray Milkey
986a47aa7c SONAR suggestion - generic exceptions
Replace uses of generic RuntimeException
with more appropriate unchecked exceptions

Change-Id: If283743c2cf7252b8d280bdb788708ebbe57da9d
2018-02-01 18:36:33 +00:00
natetang
6168994ad6 fix 'unable to translate flow rule' in p4-tutorial icmpdropper
Change-Id: I6dbcc19f33d0db56cfce1d81c992e5592e82cf8a
2017-11-22 23:44:00 +00:00
Carmelo Cascone
39c28ca503 Moved service PI classes/interfaces to appropriate package
Change-Id: I44a4aba848fd758a78a28eb484b7f579e3f22d08
2017-11-16 18:57:38 +00:00
Kevin Chuang
d79bfd060f Fix PiMatchFieldId unmatch in p4tutorial pipeline interpreter
Change-Id: Iec655d350d525024f579f54e8a1beb7030164be1
2017-11-14 20:28:54 +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
f0c47617e8 Remove deprecated deserialize() mthods from packet classes
Change-Id: I4e52ab368390d30f5f5f24d443a5021916d0c6a3
2017-10-03 18:03:33 +00:00
Carmelo Cascone
770507f808 ONOS-7000 P4 tutorial application and P4 program
Change-Id: Ia0a6befa6374a1950485c1fba0cfacb5ff4ce52c
2017-09-16 14:48:34 +00:00