1278 Commits

Author SHA1 Message Date
pierventre
3ef744bf98 [SDFAB-1136] Remove meter mirror
There is no valid reason to have it in the p4rtmeterprogrammable:
- some devices cannot guarantee r/w symmetry
- meters can be only modified
- removal is a modify with default values

Change-Id: I6d859f2d65195f3e7068390fee5e3a943972cac5
2022-03-25 08:26:09 +00:00
pierventre
f1edda9de6 Filter out meters default config
There is no need to further process meters default
config in ONOS, there will not be any trace in the
ONOS stores. Filtering out in advance allows to save
memory and time.

Change-Id: I57f598aba3f2ba32923e8170f6c47f9efe27edd4
2022-03-05 04:15:42 +00:00
pierventre
eaf483b726 Fix availability checks in GDP
Checks if the expected pipeline is set and if the pipeline is READY

Change-Id: Ief210c91b44f500eca8d79ebeb4e79766c25fdfe
2022-02-26 01:20:47 +00:00
pierventre
1c18ee5c26 [SDFAB-1015] Use gNOI to probe reachability and increase short timeouts
p4runtime probe reachability is based on GetPipelineConfig gRPC that
can timeout if we are setting in parallel the pipeline: the two requests
concur for the same lock. For our purposes it is enough to check if the
device is still there; for this reason stratum handshaker now relies
on gNOI reachability which is based on getTime RPC.

Additionally increase short timeouts: we have consistenly measured a
time of 14s to push the pipeline on the new QS devices.

Change-Id: I8837540241d8a68f648e47ae165ea53a2d0a865c
2022-02-25 06:27:00 +00:00
pierventre
ee394c4f68 [SDFAB-1048] Fix wiring issue caused by readPortId
Leverage the dep already in place between gnmi driver and gnmi protocol
and expose readPortId as cfg property of GnmiControllerImpl

Change-Id: I34defd8928589129dc84cae45033f7f7c3c673bb
2022-02-18 04:17:46 +00:00
Yi Tseng
e48c599b0b Add sdk-port annotation with discover port from Stratum
Change-Id: I37f810767df9fb5adee815cd19e78c71a1aaa37c
(cherry picked from commit ca5cfe77821b2a750570a80418be30a90af25d9b)
2022-02-08 22:16:35 +00:00
pierventre
0f663b039f Introduce cfg property to enable/disable read port-id path
Change-Id: Ieaf08c730039cd44af0d60462a3b4b5885322c45
2022-02-03 20:27:20 +00:00
pierventre
da5ccab063 [SDFAB-944] Add support for id leaf in GNMI driver
The id is available through /interfaces/interface[name=*]/state/id,
if the device does not support `id` leaf uses as fall back ifindex

Change-Id: I22ff5e1df11485ba277644778f4309b1bd407849
2022-02-01 21:45:03 +00:00
alessio
7025291535 [ODTN] Lumentum driver update to properly support maximum number of 130 configurations for each module on the device.
Change-Id: I037752d97166b8121c2f1cfc93a1f92e16746454
2021-12-16 14:47:41 +01:00
alessio
a9bcacc979 [ODTN] Update of driver for Lumentum:ROADM with Twin 1X20 WSS
Tested on software versions:
- dcian_R3.1.2_057
- dcian_R2.1.4_136

* patch 2: checkstyle
* patch 3: comments

Change-Id: I436f22b2b0221527765eee9777df9d9ce4f0b146
2021-10-11 07:30:43 +00:00
pierventre
c8e8e45d46 [SDFAB-622] Protect phased recovery from wrong port config
ifacename is used as key when changing the admin state of
a port through GNMI. This patch guarantees that we use the
state contained in the device store to fill the gnmi blob.
This results to be necessary because the requests coming
from the north may be incomplete (without port name).
When this happens, PortNumber class fills the name with
the number which is wrong for the GNMI devices

Change-Id: I308538ae30cfe3fbf62d42c9a059114e8ff5b4b3
2021-09-29 20:25:38 +00:00
Michael Enrico
584eebdcf1 [ONOS-8143] Updates to Polatis optical switch NETCONF driver
- fixed long standing bug in DeviceDescription behaviour
 - added a form of LinkDiscovery behaviour
 - added PortAdmin and InternalConnectivity behaviours
 - added a CLI command 'get-output-ports' to exploit the InternalConnectivity behaviour
 - overloaded the loadXml method in drivers/utilities/XmlConfigParser class to allow suppression of comma delimitation within
   XML tags

Change-Id: I042e5559cf358d969686a63da99e91371a085d83
2021-09-21 21:37:43 +00:00
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
Wailok Shum
90b988a331 [SDFAB-557] Fix max meter in ONOS
Change-Id: I17f1b760fb4c16e3c0daa0ed0a4e54009b5e9aaf
2021-09-15 17:09:54 +08: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
c0914ec586 [SDFAB-500][SDFAB-527] Meters cleanup and leftovers
- Improve ONOS cli enabling CRUD of p4rt trtcm
- Improve ONOS rest enabling CRUD of p4rt trtcm
- Improve MeterService with scope defined reads and integrate in cli/rest
- Add support along the stack for BYTE_PER_SEC unit
- Add support along the stack for COMMITTED and PEAK bands
- Fix several bugs in ONOS cli/rest interfaces
- Improve REST codecs
- Fix NPE in MeterDriverProvider
- Improve PiMeterTransalation by enforcing trtcm config
- Implement explicit translation of the bands
- Fix ONOS reconciliation by removing from the mirror the wrong configs
- Remove unnecessary checks in MeterEntryCodec
- Update unit tests

It will follow a 2nd patch to complete SDFAB-527

Change-Id: I855235b17f60cb1d39f5b9a042c1015105a8a269
2021-09-10 10:22:18 +00:00
Wailok Shum
6d42cff6bc [SDFAB-354] Improve P4RTMeterProgrammable
Change-Id: I65a325f90a49853c6c4a1cfb8212a016a8ec2b2d
2021-08-24 01:33:04 +08:00
Daniele Moro
06aac70fd2 [SDFAB-359] Purge all objective for a given application ID
Change-Id: I51847b0be890deacec5caddc18d52bcd2993959a
(cherry picked from commit 607fd0b70e4553226d0937d36de9cde655f2eb62)
2021-08-06 15:01:17 +00:00
Wailok Shum
9664209358 [SDFAB-356] Extend P4RuntimeMeterProgrammable and Codecs to support reset scenario
Change-Id: Ifad0b296568d3f78b2aa792fa63f2f81fa80ebae
2021-08-06 17:28:50 +08:00
Wailok Shum
f013a7852b [SDFAB-352][SDFAB-353] Retrieve MeterFeatures from the P4RT southbound, Extend MeterProviderService and revisit MeterStore
Change-Id: If0dae53643988cb551ff5020abd792cb6d33ff6b
2021-08-05 00:32:55 +08:00
pierventre
121ea29ece [SDFAB-379] Optimize the resource usage of the L3 unicast groups
This is achieved by translating SIMPLE next objective into
INDIRECT groups. By default SELECT groups are always used
which has as side effect the creation of action profile groups
with the maxGroupSize derived from the action profile model.

Instead, PiGroupTranslator sets always to 1 the maxGroupSize
of action profile groups derived from a INDIRECT groups which
allows us to achieve a better scale for target devices pre-allocating
memory according to the maxGroupSize.

Change-Id: I7079a99ca9a7474eafae7f258da06770453b05f9
2021-08-04 09:03:36 +02:00
Daniele Moro
d900fe4a87 Add support for one shot action profile programming in PI
A P4 table annotated with @oneshot annotation can be programmed
only with the action profile action set. For these kind of tables
we don't issue read request for action profile groups and members.

Change-Id: I7b6a743f4f4df4190f17d958ebb4807aca5feda5
2021-07-01 17:34:35 +00:00
pierventre
50696a77f1 [SDFAB-199] Add the support for last-change
- Add parsing in OpenConfigGnmiDeviceDescriptionDiscovery and
  defaults to 0 for the devices not providing last-change
- Remove hack in OpenConfigGnmiPortStatisticsDiscovery and set
  the duration to 0 for the devices that do not support last-change
- Subscribe to the state changes of a given port and add parsing of
  last-change timestamp in GnmiDeviceStateSubscribe

Note that if the device does not aggregate updates into a single notification
two PORT_UPDATED events will be generated. The first as consequence of the
operational status change and the second caused by the reconciliation which
updates correctly last-change

Change-Id: I6b2cb3652b306358bd9e701780946864a1ed324b
2021-06-21 13:17:01 +00:00
Roberto Morro
ec2b3184c8 changed how ODTN OPENRoadm driver assigns ONOS port ids
Change-Id: I1094ca6c8854817f3157722c71704120480d490d
2021-04-06 16:54:25 +00: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
Andrea Campanella
106a9bb8d3 [VOL-3836] Extract the OLT pipeliners from ONOS
Change-Id: I1a11000b1e92148b5d5230c311202ba4abbb2ca8
2021-02-23 16:37:58 +01:00
pierventre
1e28f7729c [AETHER-1248] Reset default entries
A default entry according to the P4RT spec should be reset to its original value
and not removed. The client can send a specially crafted write request with action field
unset to reset default actions to the original value

Change-Id: I451a3be395b212e14ae8eaf060cc048500705091
2021-02-22 12:10:43 +01:00
Gustavo Silva
197fd40868 [VOL-3660] Adding support to VLAN and PCP treatment on PPPoED flows.
Signed-off-by: Gustavo Silva <gsilva@furukawalatam.com>
Change-Id: Ib62a2b3b9cca18e2dacab9851b16672a5eb73047
(cherry picked from commit 0433adade09c5abb7f834b5c1db42563b413c4c3)
2021-02-17 14:58:36 +01:00
Daniele Moro
46b27630d4 Add support for all tables wildcard read in P4Runtime
This is required for targets that are not P4RT-compliant
and do not support table-specific wildcard reads.
The all tables wildcard read are activated via
tableWildcardReads driver property.

Change-Id: I675e6f876648ad7634ea0a13ecf44aa366739d3f
2021-02-11 16:52:57 +00:00
Gustavo Silva
7055cce784 [VOL-3660] Add support for PPPoED message decoding and flow installation on OltPipeline.
Signed-off-by: Gustavo Silva <gsilva@furukawalatam.com>
Change-Id: I1a6f318d71b8c1f59fdf582edacd44e9c46cd061
(cherry picked from commit 2bcc805d09f59aa5389a921c8b442c93d805a2d0)
2021-01-28 14:35:58 +00:00
pierventre
43d52fdbf5 [AETHER-1077] Missing entries in default P4RT mirror store.
Default and Table mirrors were using the same name for their internal EC map.
This was leading to empty EC maps in the standby nodes.

Change-Id: I575dfbf5ba5339f8c94c4e5ed218887a11f14d36
2021-01-19 16:47:25 -08:00
Sean Condon
436c60a1f6 Upgraded to bazel 3.7.2 and rules_nodejs 2.3.2
Change-Id: If53686f2475c4f367909de577b4da95de8e16768
2021-01-04 15:42:57 +00:00
pierventre
5a936f5c8b [AETHER-599] Implement FabricPipelineTraceable
Core changes supporting fabric traceable implementation.
Includes minor fixes to the OFDPA traceable unit tests

Change-Id: I2f0d1172022a8fc725df9e96526092c59ddc0e0b
2020-12-30 19:20:32 +00:00
pierventre
1b9616fac9 [AETHER-780] Decouple Stratum from ODTN
- Introduces a new driver for stratum-odtn devices
- The new driver depends on stratum and not viceversa
- Removes the odtn dep from stratum
- Updates stratum and tost bazel profiles

Change-Id: I7118c54c865305a7ace28b7316e3731833ddf7b4
2020-11-19 23:20:15 +01:00
pierventre
308f4bec55 [ONOS-8125] Unable to load some ODTN related components
ONOS is unable to load ODTN service, some Ciena drivers and OpenROADM
due to the recent pruning commits which removed some deprecated/defunct code.

Change-Id: I09d3981a4439021c3559250ad240bdf1764f008d
2020-11-19 23:19:02 +01:00
alessio
0af65230b9 [ODTN] Interface of a new driver behavior for checking internal connectivity in a device.
This would be used mostly for optical devices which typically have many connectivity constraints.

The patch also includes a CLI command to using driver behavior and an empty driver implementation.

patch 1: first draft: behaviour, CLI, empty driver, xml.

patch 2,3,4,6: checkstyle.

patch 5: comments by Andrea.

Change-Id: Ia1573a9f14b49c39c96fa3351ccc37988f1526ec
2020-10-28 17:41:17 +00:00
pierventre
b58e9c9c02 [AETHER-38] Extract pipeline-dependent code from current T3 implementation
- Exposes some ofdpa specific tables and types
- Introduces a new driver behavior PipelineTraceable
- OfdpaPipelineTraceable is the first implementation of the
  new driver behavior
- New abstractions are introduced to encapsulate the input/output
  of the traceables processing
- Implements some basic unit tests for Ofdpa implementation

Change-Id: I89d3fdeda445983ec7ebfa9ebb78afb1c6d3fd8f
2020-10-16 08:21:14 +02:00
Thomas Vachuska
124e6a0e52 More publish-target-list pruning; including removal of Huawei drivers
Change-Id: Ice7c9a8141ea6d65fdbf45a706ba5d6918fa121d
2020-09-28 15:45:22 -07:00
Andrea Campanella
0956dba501 Not failing with BADPARAMS on IGMP to allow IGMP on NNI port for OLT
Change-Id: I4b0458f988970b4654ed8537eb7b6cf3f297b536
(cherry picked from commit 79bc506e6e3d5435517b5499f130af9a7092b112)
2020-09-22 07:14:58 +00:00
Andrea Campanella
befc2941b8 [VOL-3212] Modification to Trap flows:
- Inserting VLAN and PCP in the treatment of the IGMP trap flow. Uniforming it to VOD flow.
- Removing VLAN match and insertinbg VLAN push for EAPOL.
- Removing VLAN match if not required, pushing it or swapping it and setting the PCP in DHCP.

Change-Id: I40a6a75f81c582735f54186e165fab7c2d21b355
(cherry picked from commit a93905c0c4e866441fe15c0fff93c774c3e35166)
2020-09-21 10:51:14 +00:00
Thomas Vachuska
c6ea647501 Revert "Introduced SetPackage and SwitchControlProcessor RPC to gNOI implementation."
This reverts commit 992bf52f25d491afec8d8e54efb5c3a8125b77bb.

Reason for revert: Broke the master build.

Change-Id: If47508a8cff95bd6e9c57f7234baa517879a54cf
2020-07-30 23:24:24 +00:00
Serhii Boiko
992bf52f25 Introduced SetPackage and SwitchControlProcessor RPC to gNOI implementation.
Change-Id: Ib8df537459b50bb83fadfe217e6ea5cd2bf6da5f
2020-07-30 19:44:19 +00:00
Georgios Katsikas
d62d20e32c Safer get operations for the server driver
Also:
 * REST attributes according to Contansts
 * Additional action per rule
 * Alphabetical order of static variables

Change-Id: I887ad2fe828ded217b707e9f914e1624232c4979
Signed-off-by: Georgios Katsikas <katsikas.gp@gmail.com>
2020-07-28 16:10:06 +00:00
alessio
94975e7542 Bugfix. The connectionCache was not correctly delated when flow rules were removed.
Change-Id: I2ee179ae44bcbe788776f1aade0a31404ede5f4d
2020-07-17 12:15:28 +02:00
Andrea Campanella
ae6284cf3f [VOL-3327] Avoid logging of non-error in OLT Pipeliner
Change-Id: Ie56ee6cb206019a113c49253235aebffe40dab91
2020-07-10 11:59:44 +02:00
Yi Tseng
40e0a0c90d [AETHER-239] Add RAW_DEVICE_CONFIG extension
Change-Id: I0acc1039800c7e69b87e3195f4f7ee732df241c0
2020-06-09 02:28:24 +00:00
Andrea Campanella
63b17dc0ac [VOL-3016] OLTPipeline removes empty next group if the last group was removed because of empty buckets
Change-Id: Ife4973a1bdd4137fd43fa4d2a49b94a5f3280aeb
2020-05-22 15:52:04 +00:00
pier
561c8817f8 Removes workaround for duplicate device_added events
Change-Id: I2144b3a6f1c226664f8c30bbb79963a570c9b4b6
2020-05-21 14:49:38 +02:00
Georgios Katsikas
740d3281b0 Server device driver extensions
* Additional behaviours implemented
    * BasicSystemOperations
    * DeviceHandshaker
    * InterfaceConfig
    * PortAdmin
    * QueueConfig
    * TableStatisticsDiscovery
    * DeviceSystemStatisticsQuery
 * New device abstractions on CPU cache and main memory
 * Additional statistics (main memory)
 * New UI with Memory statistics (based on the old gui)
 * Constants decoupled from implementations
 * More builders used for interface implementations
 * Style fixes and refactoring

Change-Id: Ie54ed0fb4760456cfd6339c74b36486dd3c20f87
Signed-off-by: Georgios Katsikas <katsikas.gp@gmail.com>
2020-05-21 08:40:27 +00:00
Yi Tseng
b2c8d66714 Add stratum-fpm-odtn driver
Change-Id: I6a76081bb095ad82426aee44aa954f1ad0e6912f
2020-04-09 11:00:44 +00:00