2531 Commits

Author SHA1 Message Date
Carmelo Cascone
da15af8ce3 Drop using BNG attachment IDs in favor or dynamically allocated line IDs
The current implementation of BngProgrammable for fabric.p4 uses
attachment IDs as line IDs, thus forcing apps such as bngc to be aware
of such implementation detail and to manage the allocation of such IDs.
Unfortunately, allocation of IDs is dependent on the device (P4 program)
implementation (e.g., line counter size), and so it should not be left
to apps.

This patch removes the need for attachment IDs at all and instead relies
on a driver-level service to dynamically allocate line IDs based on the
attachment attributes (currently s-tag, c-tag, mac address).

The current implementation of the allocation logic is a trivial one,
i.e. non-distributed and non-optimized.

Change-Id: Ie960936ee750cf565b8de41370085ecf9d49e931
(cherry picked from commit 6aa2a6ea743e8104ee3c62acb7d26acbd1452614)
2020-01-07 17:50:07 +00:00
HelloONOS
acd863601e add bridge configuration at Arista Switch driver
For Arista switch, the following code is required
because the port to be used as OpenFlow bridge should be added.

Change-Id: Id73560b9c9592838ba91329ef652742fb1beb65b
2020-01-07 17:26:36 +00:00
Rohit Singh
35fd94cfaf BER Driver Implementation
Change-Id: Ie215228ae4081ab0b984aafd757601a982ec84d2
2019-12-04 16:29:45 +00:00
Daniele Moro
893988e6be Update to BngProgrammable API
Setup of an attachment won't trigger counters clean up

Change-Id: I6be72bdedb71bbc6152e8192ec4614a2f812b014
(cherry picked from commit e12d0ea7f3a7590a30c282294e83f7978bda914b)
2019-12-02 23:41:13 +00:00
Andrea Campanella
f468858e91 Avoid propagating a null chassisID
Change-Id: I028008e45d1c78d149ef654047b9c1572eb05476
2019-11-28 14:31:02 +01:00
Charles Chan
a132689743 Support auxiliary location in Host
Change-Id: If65ee733f03aa098a1db2b4ab663b1591495b061
2019-11-27 00:54:45 +00:00
Daniele Moro
464e5ed61e First implementation of BngProgrammable API
- BngProgrammable interface moved to ONOS core
- BngProgrammable implementation in fabric pipeliner

Change-Id: Ia020d19f305d8819eef7f70453b14cb00fd31af8
(cherry picked from commit 8fd75e7352d12c9ad90b8461a9550d8f7e1b263d)
2019-11-01 23:18:29 +00:00
Andrea Campanella
dadf640230 Moving Power values to Double
Change-Id: I3529dffe017784487df31b56430e7b9fb9db0454
2019-08-09 13:27:56 +01:00
Rohit Singh
16d4df99b6 cassini Modulation Driver Impl | ONOS-7979
Change-Id: Iba45f3e41fc39e63c7dc96acf5d2da248dc6bf68
2019-08-01 10:03:25 +00:00
Harshada Chaundkar
5a198b0359 REST API for obj-nextids
Change-Id: Ibad03de0a6ffa8a478037120c84edfe6722f4d9b
(cherry picked from commit 0acb326963dda08a5eef16134eca5cba84b8e75d)
2019-07-26 09:39:04 +02:00
Carmelo Cascone
37f31ad685 Add stratum-fpm driver for fixed-pipeline Broadcom targets
Change-Id: I934428331feb35ed312a98db97c270168047af1f
2019-07-16 18:46:56 +00:00
Gamze Abaka
f57ef606fc Adding purgeOnDisconnect support to the meter subsystem and adding vlanId match
criteria to EAPOL trap flows.

* Adding purgeOnDisconnect property to MeterManager
* DeviceListener implementation on MeterManager
* Adding purgeMeter(DeviceId deviceId) method to MeterStore
* Calling the above method when DEVICE_AVAILABILITY_CHANGE is received
* Adding vlanId match criteria to EAPOL trap flows (OltPipeline change)

Change-Id: Ibb254302efe94edf1fd596f74a6eef6587410475
(cherry picked from commit 91b38543d822a0d9d092f9b3ff7760b1a206226a)
2019-07-15 16:30:54 -07:00
hwchiu
effadedbe9 Correct javadoc
Change-Id: Idf2b88f697f7077a57f7162e0a790c4a4872ae21
2019-07-12 22:42:59 +00:00
Arnav Jain
efb57e5f99 Full Fix to getRegisteredApps
Change-Id: I63efb375af941cebcbd858b9b8f03524a72f0562
2019-07-09 14:24:10 -07:00
Carmelo Cascone
5bb59f28e5 Revert "Corrections to getRegisteredApplications and CLI implementation"
ApplicationService is not available. For example, when using the ONOS CLI:

onos> apps -s -a
Service org.onosproject.app.ApplicationService not found

The issue seems to be a circular dependency, as ApplicationManager depends on CoreService, but CoreManager depends on ApplicationService.

Reverting for now.

This reverts commit 35ef3d3000f8b19608531dfd06f8e78482c45b32.

Change-Id: I298c3c7844df7f2395e092fbb89a8e9264883094
2019-07-09 01:30:06 +00:00
Arnav Jain
35ef3d3000 Corrections to getRegisteredApplications and CLI implementation
Change-Id: Ia24997b9fcb5d658592f11f710c0b4e8eb40309a
2019-07-08 20:01:09 +00:00
Arnav Jain
6cbacf1223 Added method getRegisteredApplications
Change-Id: Ic741dfcca84fd72fd2ab236bef97cfeadc890d16
2019-06-19 01:10:10 +00:00
Kieran McPeake
e1b418f08b Clean up logging in (or relevant to) Juniper NETCONF provider
Also fix missing chassisId in DefaultDeviceDescription.toString()

Change-Id: I944baf0b3a4eb9960c0cbcec2ad585701d9a2989
2019-06-05 10:09:33 +01:00
Sean Condon
13f42b7a86 Updated the GUI2 archetype with real gui code
Change-Id: If0fb2a6cb38bff69a978a7a23dd2e3a6212d67f3
2019-06-03 16:07:35 +01:00
Boyuan Yan
7bee2483f2 [ONOS-7947] implement PowerConfig methods in Cassini equipment.
This patch is based on patch#21952, which shows optical details in ONOS GUI.
The emulator could be pulled via "docker pull onosproject/oc-cassini:latest".
Currently, there are still some questions unresolved:
1. The power values defined in PowerConfig.java are long, but the values defined in yang should be float.
2. In PowerConfig.java, I need to rename method **currentPower** to **currentOutputPower**.
3. In PowerConfig.java, the **default** in method definition is used to avoid the effect on all implemented class.
   This condition should be changed finally.

Change-Id: If5a3ec77d9a906718b80531afa67bc67388bca4f
2019-05-29 07:24:17 +00:00
alessio
d4a2b84c2a [ONOS-7948] Netconf driver for Lumentum ROADM-20.
Added support for flowrules coming from the compilation of an OpticalConnectivityIntent.
FlowRules coming from ROADM app are still supported.
Minor updates to DeviceDiscovery and PowerConfig.

Patch 2: Driver and OpticalPathIntent support for partner-ports.
Now bidirectional intents can be configured also in presence of unidirectional links.
ROADM app visualizes devices of type TERMINAL_DEVICE and partner port details.
Checkstyle.

Patch 3: [ONOS-7974] [ONOS-79076] partner-port renamed to reverse-port. Bug fix.
Addressed comments by Ramon Casellas and Andrea Campanella. Checkstyles.

Patch 4: documentation.

Patch 5: addressed comments by Andrea Campanella.

Patch 6: checkstyle.

Change-Id: Ie5ca41eee6cb6f8f87f076f2af19c99cadd6d851
2019-05-24 14:21:54 +00:00
jobin
d19b7143c5 Introduced HostMoveTracker to suspend hosts that moves too frequently
Change-Id: I3037c626657790ce6817feddba7dbbfac203b188
2019-05-22 12:36:00 +00:00
Carmelo Cascone
75a9a8958e Trigger pipeconf deploy right after registration
Without waiting for the next pipeconf watchdog periodic probe.
To support this, this patch extends the PiPipeconfService to advertise
pipeconf registration events.

Change-Id: Ib44f1813bd37083c666a5e7980de320ce469c2d2
2019-04-23 19:39:56 +00:00
Gamze Abaka
dadae72079 In order to implement VOLTHA VOL-949 task (https://jira.opencord.org/browse/VOL-949) , OltPipeline (pmc-olt driver) must support meter, transition and also QinQ vlan push instructions.
Change-Id: Ie027469fa190a78b0c8366da55431ebc62e699ef
2019-04-22 17:11:38 -07:00
Carmelo Cascone
3b4baa07e4 Improve fingerprint computation for pipeconf
Do not read extensions in memory and consider pipeline model.

Change-Id: I3e077fbcd9ed0a2dba78b4e1c87e95ecb7287be6
2019-04-18 05:57:49 +00:00
Carmelo Cascone
33f36a0ec7 Clean up PipelineInterpreter API by removing ambiguous methods
Such as mapping from PiMatchFieldId to Criterion.Type. This should not
be required since the only translation happening is from north
(Criterion.Type) to south (PiMatchFieldId).

Change-Id: I204e0bd66b3996fd60bc11d4241e8a0408e11582
2019-04-18 05:55:06 +00:00
Carmelo Cascone
9db4d5c644 Add support for P4Runtime clone sessions via Group API
Clone sessions can now be created by defining groups with new type CLONE

The PI framework has been refactored to abstract commonality between
multicast groups and clone sessions as both are managed as part of the
P4Runtime packet replication engine (PRE).

Change-Id: I2f23c629b7de1931d5cab96ec76aef26130ce418
2019-04-17 21:55:13 +00:00
Carmelo Cascone
5079a7f4ac Define new type of group CLONE
Used to distinguish between multicast groups and clone sessions in
P4Runtime.

Change-Id: I21a2411c759a1d9524b4a69354c8b343100f8f05
2019-04-17 21:55:02 +00:00
pier
8b3aef446d Implements accumulation of the fwdobjectives in ofdpa pipelines
Change-Id: I95cbdd9b3fb8d439003a103111a01dc3aee2072b
2019-04-17 15:26:58 +00:00
Charles Chan
8b488de794 Allowed apps to specify whether the existing component config value should be overridden
Change-Id: Ic0992adb49cbcce17e17a71af954fbeeafde97d3
2019-04-12 22:28:23 +00:00
Carmelo Cascone
c2be50a804 Allow sharing the same gRPC channel between clients
This change introduces a refactoring of the gRPC protocol subsystem that
allows the creation of a gRPC chanel independently of the client, while
allowing multiple clients to share the same channel (e.g. as in Stratum
where we use 3 clients).

Moreover, we refactor the P4RuntimeClient API to support multiple
P4Runtime-internal device ID using the same client. While before the
client was associated to one of such ID.

Finally, we provide an abstract implementation for gRPC-based driver
behaviors, reducing code duplication in P4Runtime, gNMI and gNOI drivers.

Change-Id: I1a46352bbbef1e0d24042f169ae8ba580202944f
2019-04-11 23:14:41 +00:00
Sean Condon
a3ce00ba00 GUI2 Add links to GUI2 when created dynamically
Change-Id: Ibfa7ae0fa9b02fd6e1b40b9f201ff002c19591a9
2019-04-10 11:44:01 +01:00
Harshada Chaundkar
dcd1b14987 Packet throttle support
Change-Id: I6f2da5ed25f794561349013bfcbf9afa85d5e190
2019-03-28 18:36:17 +00:00
debmaiti
9553ed76ef Port Annotation bug fix
1. Handled the case when InternalNetworkConfigListener in DeviceManager recieves an event associated with PortAnotationConfig class.
2. Added CONFIG_REMOVED event type in InternalNetworkConfigListener in DeviceManager.
3. Changed comine function in PortAnnotationOperator to take care of removing old annotations from PortDescription which are not in current
PortAnnotationConfig.

Tested using 'annotate-ports' command and 'ports' command

Change-Id: Ie4d2b529c2f559a40a296d916193318e0ccc7b93
2019-03-28 16:44:21 +05:30
oleksandr.yashchuk@plvision.eu
3dbcaafa0c Initial gNOI implementation added. Introduced system Time and Reboot RPC
Change-Id: I8accdcc6c1ff247408ce54490ceff3972fdf850f
2019-03-26 21:35:33 +00:00
Sean Condon
28884334ee GUI2 added in the layout topo overlay
Change-Id: I9960f95ae726a5af9950771ed67bcfc9d172e267
2019-03-26 14:36:47 +00:00
Carmelo Cascone
a7e60c65c8 Various fixes for P4Runtime group handling
- Workaround for PI bug that ignores max_group_size
- Use max_group_size and not buckets size when translating groups

Change-Id: Id12a12311b20ca8fb4e785e1c5a4f0f4215d1bbf
2019-03-23 01:04:10 +00:00
Carmelo Cascone
975a3430c7 Fix NPE when processing host events in UI
Change-Id: I2fb56911b38d36dafc12ee22c8e6ae250c7e6b35
2019-03-22 15:24:00 +00:00
HelloONOS
0854c0427e Add bridge Config at Arista Driver
Change-Id: Iaea2a0641c8d05bfa1d2caca66dc81698650d995
2019-03-12 20:23:17 +00:00
Sean Condon
ee54576967 GUI2 Handle node additions and removals in Topology view
Change-Id: Ic16fc1325fe338e2136f1cc70febc621342be4f2
2019-03-11 09:44:10 +00:00
Jordan Halterman
b81fdc1168 Optimize filtering flow rule counts by state
Change-Id: I1e1d80b8e618743ee449162a081cf42e71c99abf
2019-03-06 17:59:20 -08:00
Carmelo Cascone
6146946e16 Fix inconsistent update type during concurrent P4Runtime writes
This is achieved by optimistically updating the P4Runtime mirror using
the write request (instead of waiting for a response) and by serializing
building write requests for the same device.

This change requires updating the P4Runtime protocol classes to expose
the content of the write request.

It also includes:
- force member weight to 1 when reading groups (some server
implementation still fails to be compliant to the spec)
- remove unused operation timeout handling in GDP (now all RPCz have a
timeout)

Change-Id: Ib4f99a6085c1283f46a2797e0c883d96954e02e9
2019-03-06 19:28:42 +00:00
Carmelo Cascone
3977ea4d9e Refactor channel and mastership handling in P4Runtime
This (big) change aims at solving the issue observed with mastership flapping
and device connection/disconnection with P4Runtime.

Channel handling is now based on the underlying gRPC channel state. Before,
channel events (open/close/error) were generated as a consequence of P4Runtime
StreamChannel events, making device availability dependent on mastership. Now
Stream Channel events only affect mastership (MASTER/STANDBY or NONE when the
SteamChannel RPC is not active).

Mastership handling has been refactored to generate P4Runtime election IDs that
are compatible with the mastership preference decided by the MastershipService.

GeneralDeviceProvider has been re-implemented to support in-order
device event processing and to reduce implementation complexity. Stats polling
has been moved to a separate component, and netcfg handling updated to only
depend on BasicDeviceConfig, augmented with a pipeconf field, and re-using the
managementAddress field to set the gRPC server endpoints (e.g.
grpc://myswitch.local:50051). Before it was depending on 3 different config
classes, making hard to detect changes.

Finally, this change affects some core interfaces:
- Adds a method to DeviceProvider and DeviceHandshaker to check for device
availability, making the meaning of availability device-specific. This is needed
in cases where the device manager needs to change the availability state of a
device (as in change #20842)
- Support device providers not capable of reconciling mastership role responses
with requests (like P4Runtime).
- Clarify the meaning of "connection" in the DeviceConnect behavior.
- Allows driver-based providers to check devices for reachability and
availability without probing the device via the network.

Change-Id: I7ff30d29f5d02ad938e3171536e54ae2916629a2
2019-03-06 19:28:42 +00:00
Andrea Campanella
b65d99dc84 Reverting change to print for OCHSignal
Change-Id: Ia3c5bc20d0b139837323e9b37010bc803e9fad2f
2019-03-05 20:09:52 +00:00
Jordan Halterman
2ef1cf725e Support DNS storage discovery via cluster metadata
Change-Id: I62499cb8d6bff57d780e7aaaf07eaa84ec332192
2019-03-05 00:08:10 +00:00
Thiago Santos
a4a17cb0b0 OutboundPacket: add inPort method
Allows to provide a different input port to be considered when emitting
the packet. It is useful on OpenFlow devices so one can use ALL or FLOOD
actions as output and not have the packet sent back on the input port.

Default is controller port, as it was before.

The required changes were also implemented in OpenFlowPacketProvider

Change-Id: I0a050b983b5de9935254599e8093dc59ad7a4ccf
2019-03-04 18:37:00 +00:00
Jian Li
de6eb18505 Support Nicira load extension, add L4 mod builder for group buckets
Change-Id: Ic16b4d853daed38792aeb199be732aa868c26bad
2019-03-04 18:12:06 +00:00
Thiago Santos
4a69ef82e2 TrafficTreatment: add support for IP DSCP modifications
Allow modifying IP DSCP field in the headers.

Change-Id: Idd765f40f1baec810273536adcd56bf0e480217f
2019-03-04 18:00:15 +00:00
Ray Milkey
17801b4fca remove deprecated removeRulesById() method
Change-Id: I9aef85eb8a9146e11e800cb3e524fb2b4e19d4f9
2019-02-26 21:26:02 +00:00
Ray Milkey
4f7e3631d2 Removal of deprecated APIs
- OchSignal constructor
- unfiltered connect point methods in single point to multi point intents
- useBackup() method from disjoint paths
- ChannelAdapter class
- getLastUpdatedInstant() method from cluster store
- switchWorkingPath() method from protection config behaviour
- getVersion() method from partition
- getFlowRulesById() method from flow rule service

Change-Id: I5c6c2f31725f7e7e44ac2abb18ce3fb96b09d93e
2019-02-22 18:01:45 +00:00