16 Commits

Author SHA1 Message Date
pierventre
26ac1517c4 [SDFAB-542] Meters cleanup and leftovers v2
- Code clean up (unused code, unuseful comments)
- Remove deprecated internal APIs
- Prevent the ejection of the meter pollers
- Prevent the ejection of the mf pollers
- Fix unproper filter of device events
- Fix delete on store which updated existing meters with dummy value
- Fix NPE in TofinoMeterProgrammable caused by default config
- Update unit tests

Change-Id: Ib2767e3ab3cf146693e61b7e1890419c9743d521
(cherry picked from commit a770879a950d1cc985db1a659da701551700e886)
2021-09-16 16:13:33 +00:00
pierventre
852081866f [SDFAB-502] Improve P4RuntimeMeterProgrammable reconciliation
This is achieved by implementing device specific methods to verify if
ONOS store meters and values read from the devices are similar

Change-Id: I95b6a2c728536f08b47ce9d0d30d1b8888a353d7
2021-09-10 12:57:53 +02:00
pierventre
d37181d7d1 Enable read counters with table entries for stratum-tofino driver
Change-Id: I8715c9480b13b78f0f15dff4982e78fd2ba13547
(cherry picked from commit e4d1294c3006079f37bc493258df60a51698e338)
2021-03-31 06:52:38 +00:00
Yi Tseng
40e0a0c90d [AETHER-239] Add RAW_DEVICE_CONFIG extension
Change-Id: I0acc1039800c7e69b87e3195f4f7ee732df241c0
2020-06-09 02:28:24 +00:00
Daniele Moro
3218306052 Support default table entry on stratum-tofino
Change-Id: I78d6caeea859a47ef189edb689d731fcf5dada21
(cherry picked from commit 581b3ef20a672337225d189c9d49ce8f9a760a92)
2020-01-27 18:05:29 +00:00
Carmelo Cascone
c32976e7d5 Various fixes in preparation of Stratum demo at ONS 2019
- Do not read counters with table entries for Barefoot drivers
- If driver behavior setup fails, log which operation we are aborting
- Remove unnecessary setup steps in Stratum-related drivers
- Always get clients by their key in gRPC-based drivers
- Log when P4Runtime group operation fails because of missing group in
store
- Fix polling of table entry counters for P4Runtime driver

Change-Id: Ic9bf19b76d8cb5a191aec24852af4410fea8b998
2019-04-08 23:00:54 +00:00
Carmelo Cascone
1ae25061fb Add stratum-tofino driver
This patch also introduces a new driver property flag to indicate
whether a P4Runtime target supports default table entries or not.
Stratum targets built against the current version of p4lang/PI do not.

Change-Id: I1fbb57521516bee99057319ed1695cb05b68ee7c
2019-03-08 06:15:07 +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
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
Carmelo Cascone
d519b55447 Renamed tofino driver to barefoot
For consistency with other drivers.

Also fixed ClassDefNotFoundException when loading driver.

Change-Id: If000d9b9fdae659aa32e0a5898885b52bc5ca89b
2018-01-31 14:48:16 -08:00
Carmelo Cascone
b1936bd93f Bumped version of gRPC to 1.3.1
Change-Id: I7798476bd443a796e0e6a6e149ab8f66435ba4fa
2017-12-13 03:24:50 +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
Carmelo Cascone
d61fdb3b89 Added P4Runtime-based Barefoot Tofino driver
Change-Id: I09ba8dd4468fa5a792ca481921e8a51dad49702e
2017-10-31 05:41:30 +00:00