420 Commits

Author SHA1 Message Date
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
Andrea Campanella
106a9bb8d3 [VOL-3836] Extract the OLT pipeliners from ONOS
Change-Id: I1a11000b1e92148b5d5230c311202ba4abbb2ca8
2021-02-23 16:37:58 +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
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
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
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
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
Andrea Campanella
ae6284cf3f [VOL-3327] Avoid logging of non-error in OLT Pipeliner
Change-Id: Ie56ee6cb206019a113c49253235aebffe40dab91
2020-07-10 11:59:44 +02: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
Shibu Vijayakumar
9ed929a653 Fix bugs for dynamic interface configuration
- portNextObjStore is not updated when adding or removing portNextObjective
- Group keys for L2IG in flowObjectiveStore are deleted while modifying L2IG, which in turn causes an exception
- L3UG pointing to L2IG, which is already removed, is not removed
- Empty L2FG, with VLAN ID removed from the configuration, is not removed
- Bridging and unicast routing rules for hosts are not updated when changing port VLAN from untagged to tagged and vice versa

Change-Id: I9454fe553ae53e0fc8839a4ad629c0b5b9039a36
2020-03-31 09:53:16 +00:00
pier
a6b1199028 Improves VERIFY operations
Changes:
- Avoids to sends duplicate next when there are multiple sources
- Introduces a backpressure mechanism to not flood the pipeliners
- Guarantees there are at least 30s between each mcast corrector
execution
- Introduce a pool of 4 verifiers in FlowObjectiveManager to
separate the thread used for the installation/removal of the
FlowObjectives
- Improves logging in verifyGroup

Change-Id: I45aac0f80c9eb6afd763f21977d62df4a98f686e
2020-03-25 22:38:56 +01:00
pier
9ada4193f6 Fixes a regression introduced by 23223.
Additionally adds a cleanUp method for the pipeliners
to reset the internal states between different executions.
This was another regression introduced by 23223.

Fixes also a memory leak caused by re-init of the grouphandler
without terminating its internal references

Change-Id: I06e9e005110c5237cb3bdf893cc71975fb94281e
2020-03-25 19:16:57 +00:00
Esin Karaman
2786122009 VOL-2734 Double-tagged multicast flow support by OltPipeline.
The full path of the task:
https://jira.opencord.org/browse/VOL-2734

Change-Id: I2c3a09485e86dc50ab20b7b32dccbd019330b150
2020-03-19 10:38:17 +00:00
pier
6341ff8002 Fixes an NPE in OFDPA pipeliners
- Introduced a new method to indicate whether the pipeliner is ready to receive objectives or not
- Ensure init() in OfDpa2Pipeline and OvsOfdpaPipeline can only be invoked once
  This is to avoid processing duplicated DEVICE_ADDED events introduced by gerrit 18899

Change-Id: Icb08935cb1f2761d7c98b5086fc27b6a0d8bc0cf
2020-03-18 17:57:50 +00:00
Andrea Campanella
bee52b9520 [VOL-2516] Changes to OLT pipeliner to support vlan ANY for DT workflow
Change-Id: I7748b2c669e0c42170029c9157d3e81958183d40
(cherry picked from commit 6edac3202826a5d3d7bc261ef59ad91f072c8f04)
2020-03-13 11:35:54 +00:00
pier
0c9ace1e74 Postpones the installation of the table miss flow rule.
This will happen after the installation  of the group
that punts the packets to the controller (0xc0000000).

Prevents hosts being learned with the assigned vlan.

Change-Id: I46d880309c75430ebbb76f289b371955dd68af2d
2020-03-02 13:14:45 +00:00
pier
776ce25b3c Modify log to DEBUG level for TMAC Mcast generation
Change-Id: Idae3ade1217693d4e4a46c6ba630efb2b959d130
2020-02-04 10:35:25 +01:00
pier
9a1a79768e Fix VERIFY timeout
Verify fails without firing the callback:
- objective is not removed from the queue till is expiration
- InOrderFlowObjectiveManger can remain in stalled state

Change-Id: I9922c8498100a5af3e0d7ce2f39e080ba4c90b14
2020-01-17 12:26:42 +01:00
Gamze Abaka
61269f836a SEBA-816 Multi-tcont support by OltPipeline
Change-Id: I9df0df7c2c6f41bbb35effc6feef640698d19e08
(cherry picked from commit fe93448daca9013a77fbc1cb3b38b42d8d433437)
2020-01-07 20:58:42 +00:00
Sacheth Hegde
deccfba4ac Add support for nested NiciraLoad actions
In OVS, for example, the following conntrack action is possible:

ct(commit,zone=44,exec(load:0x5->NXM_NX_CT_MARK[])

The Nicira 'load' action here is nested inside the NiciraCt action.

Change-Id: Ia1e681d2a43d9696ce9f1e8c05eae90322961dbb
2020-01-07 17:33:13 +00:00
pier
5e8b2bc52f Remove TMac mcast flows when there are no more enabled ports
Change-Id: I6ad6b224ed82ea9b74b3f2c5228d4657f87cfb8b
2019-11-28 13:28:38 +00:00
Charles Chan
0ab4c27ee2 Added table miss flow for ovs-ofdpa punt table
Make sure packet in still happens even when filtering obj is absent.
VLAN assignment won't happen in this case,
meaning that whatever VLAN a packet carries is the original VLAN and therefore should be persisted.

Change-Id: Ia005abe6354ad4008f88e7378ba4c06bc6b80c81
2019-11-01 23:14:02 +00:00
Harshada Chaundkar
77958a5941 Adding ACL flow for Table 60 for Ipv6
Change-Id: Iab5a510ab77e2f50a9d8f28fe22edf053efc1884
2019-09-16 16:50:42 -07:00
Daniele Moro
fa382c248a Double tagged filtering objective with inner vlan criteria
- when double tagged filtering objective an inner vlan criteria is submitted
- update to ofdpa and ovsofdpa drivers to evaluate the inner vlan criteria correctly

Change-Id: I33170c9b83482a5f26f13f7098a9b24a92da9544
2019-07-19 00:36:54 +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
abakagamze
124d6a121b Adding metadata match criterion to solve the conflict-flow issue.
(SEBA-668)

Change-Id: I1a4b6512445489ecfc605100ca4bcaf4828aebad
2019-07-12 22:36:06 +00:00
Gamze Abaka
a34469f29e Fixing the meter timeout issue and support transparent flows.
The related tasks:

* https://jira.opencord.org/browse/VOL-1545
* https://jira.opencord.org/browse/VOL-1571

Change-Id: I390f39a7edbd92582584747f489f198af3e9e514
2019-07-12 22:36:06 +00:00
Andreas Pantelopoulos
2fef31193f Fixed removal of doubletagged hosts
Change-Id: I3e5fa5da4745f15ab6c84c899f80e7e622ce3583
2019-07-12 22:36:06 +00:00
pier
7afc75259f Do not accumulate VERSATILE fwd objectives
Change-Id: I2af35112b145ef46212f74a15528e22a8bb6307c
2019-07-10 23:01:29 +02:00
pier
6aef5b70cc Fix filtering order during the removal
Change-Id: If8b7e60d8f5a145bd470cbd9e66e6905ad0c711a
2019-06-11 10:37:32 +02:00
Ravi Dewangan
f59ca9ed4c topGroup checking with NULL
Change-Id: Ieea51cb6080690f814fd6230c5ea3ed1036cf9da
2019-06-07 12:25:48 -07:00
pier
9469f3e47e Adds OfdpaPipelineUtility
Change-Id: I96086e408dd9d7265325414dace512b64a048e9a
2019-05-22 18:48:02 +02:00
Matteo Scandolo
9f4f0072c4 Adding DHCP IpV6 support in VOLTHA Driver
Change-Id: I587bcb6c549a0596f9a64784e5b5e102333675a1
2019-04-22 17:36:32 -07:00
Gamze Abaka
7c070c8fda DHCP and IGMP trap flows must include write metadata (tech profile id) and meter instructions
Change-Id: Idfd3d28730be6cab414ab5eb099e9ec9f5555d86
2019-04-22 17:34:58 -07:00
Gamze Abaka
6c8a71b086 In order to complete https://jira.opencord.org/browse/VOL-1093 and https://jira.opencord.org/browse/VOL-1401, OltPipeline must support meter and write metadata instructions for authentication trap flows. Additionally, all flows must include write metadata instruction instead of transition. This change will be done for 1.13 branch.
Change-Id: I98d0bde9dc854bd3bf55a9df3b1dea9442bcfa19
2019-04-22 17:33:51 -07: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
Gamze Abaka
65f27f1aae ONOS-7733 Meter Creation Fails :
When we want to create a meter, MeterManager & DefaultMeter.Builder gives the following error:
java.lang.IllegalArgumentException: Must specify a cell id.
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:134)
at org.onosproject.net.meter.DefaultMeter$Builder.build(DefaultMeter.java:241)
at org.onosproject.net.meter.DefaultMeter$Builder.build(DefaultMeter.java:184)
at org.onosproject.net.meter.impl.MeterManager.submit(MeterManager.java:204)

It seems that MeterManager still uses meter id instead of meter cell id. It must be changed with the proper value.

Change-Id: I623746b38af1148ca7f33efe5e48d6590a11051a
Note: Cord OLT application must create meters for the technology profile implementation and it uses 1.13.1 version.
2019-04-22 16:45:40 -07:00
pier
8b3aef446d Implements accumulation of the fwdobjectives in ofdpa pipelines
Change-Id: I95cbdd9b3fb8d439003a103111a01dc3aee2072b
2019-04-17 15:26:58 +00:00
Ruchi Sahota
ef0761c211 Route reprogamming using group substitution during next hop movement
Change-Id: Idf8362dac522722ca67747e245bfd836e6ee6292
2019-04-10 14:53:49 -07:00
pier
0023ca98b3 Fixes npe during l2 flood creation
Includes an initial implementation of fobj context handling

Change-Id: Ic6e17ba2dc8a6ac97b4b0fda91470355d2216ef3
2019-03-31 17:08:26 -07:00
pier
cd2a3ef178 Implements buckets editing for l2 hash groups
Change-Id: I7247d59fcf230ecea5746e530dd2fc6bfeec08e5
2019-03-31 17:08:26 -07:00
Charles Chan
367c1c1e89 Implement L2 load balancing group in OFDPA driver
Also fix confusing comments and variable names
Note: suppress line number checkstyle for Ofdpa2GroupHandler

Change-Id: I00e56b679da1247a7c0ffba838c9df329ab54f11
2019-03-31 17:08:26 -07: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
Jian Li
68925b1dc6 Add NiciraNAT serializer for NiciraCt to serialize/deserialize
Change-Id: I618cafa6cf2a71aa218879556ba51b2f21aa944f
2019-03-04 18:12:06 +00:00
Charles Chan
4a288d97da Revert "Make sure group is added before pushing punt table flow" due to the reason described in CORD-3241
This reverts commit f438bb68840b66dcee4aa4b0cc9c0056b4a544a8.

Change-Id: I710cbce0ccf76ac7c12de0a2ff1847052094bd58
2019-02-19 18:58:14 +00:00
HelloONOS
cf21d99719 Modified so that all Pica8 OS can be used
Change-Id: I36ae80c3ab4b9da0f5b5093ce7af40e3e6f19a54
2019-02-14 13:30:13 +00:00
Charles Chan
f438bb6884 Make sure group is added before pushing punt table flow
Change-Id: I5de426f0c3242e73e1da019a3a655668ed36d503
2019-02-06 00:02:14 +00:00
Charles Chan
ab591601af Deprecate CpqD pipeliners
In addition,
  - Update processVersatile to handle more selectors in ovs-ofdpa
    This also fixes the issue of XConnect ACL flow not being programmed correctly
  - Refactor the code a bit to reduce duplication

Change-Id: I190aad904d3e6625ff9f089c74e3b98077bbe4a3
2019-02-06 00:02:14 +00:00