297 Commits

Author SHA1 Message Date
Pier Luigi
b72201bcda [CORD-2607] Mcast buckets correction
Change-Id: Ib47b2d8e40babdbb2ccdba61b48365a141752016
2018-02-16 11:57:09 -08:00
Pier Luigi
ec6ac42337 [CORD-2634] Fix verify operation in OFDPA pipeliner.
Current code does not detect properly a mismatch
between nextobj and flowobjstore. In particular
it is able to detect only missing chains and
duplicated chains, while falls if allactivekeys
has more chains with respect to the next we want
to verify. I think flapping links or subsequent
events (for example several mcast-join follow by
mcast-delete) can create easily this problem.

Imagine we send a next with two treatments
Next(x,y) where x and y are the output ports.
AllActiveKeys has three chains AllActiveKeys(x,y,z)
where x, y and z are the output ports.
existingPortAndLabel is not able to detect the
extraneous chain related to the port z

Change-Id: I41fa47347a8c1d4188d990d96f48a898a4df59e1
2018-02-16 11:57:09 -08:00
Pier Luigi
21fffd29a4 [CORD-2483] Mcast does not forward traffic to all the sinks
Rationale: if we add more than one sink a number
of sink add events are generated. For each event
we create a mcast path, right now we do not support
Mcast group editing. This means that a new nextobjective
will be created for each sink.

In particular, this patch enables the mcast group editing
to solve the following issue:

Sink1 arrives -> fwdObj A -> Next B (this has one output)
Sink2 arrives -> fwdObj A -> Next C (this has two outputs)

Next B and Next C shares a part of the chain. Reordering happens
during the creation of the Nexts:

Next C created -> flow A -> Group C
Next B created -> flow A -> Group B

Failure, traffic does not reach all the sinks. Other side effect is the
disalignment between SR app and flow/group because McastHandler believes
mcast group is associated to the Next C

It includes minor refactoring of the group handler

Change-Id: Ib59ba6b63ff411ed46ca8216677046a78cc92ac6
2018-02-09 14:37:06 -08:00
Andreas Pantelopoulos
25db42ffcb Bug fix for Ofdpa2 group handler.
When introducing the mplsSwap groups, we affected the pseudowire instantiation.
This is now fixed with this patch.

Change-Id: I6f98c49b954017bb0ea899d5ecc15c5a1b8ba340
2018-02-08 21:17:07 +00:00
Saurav Das
c568c34e0c Implemented CORD-1843 to avoid race condition when updating ECMPspgs.
In this commit:
 - a new mechanism in DefaultRoutingHandler to update route-path maps in all instances,
   for the entire topology, after every route event has been processesed.
 - fixed a race condition in LinkHandler
 - avoids retrying flows in the ofdpa3 driver as this issue has been fixed in the switch
 - a new CLI command to check internal link state

Change-Id: I307d0a96cc46569294d15d042b3bcb1fde735f1b
2018-02-08 20:50:12 +00:00
Charles Chan
77a9405d41 Support latest OFDPA premium image
Change-Id: I560241d1e2a586dc17814690327e860d3b5fefb3
2018-02-08 00:38:03 +00:00
Ray Milkey
d6a67c3909 SONAR suggestion - explicit break in switch statements
Change-Id: Ib648192fe84f37947936592c4635397706b14377
2018-02-05 17:52:53 +00:00
Ray Milkey
3717e604d5 SONAR suggestions - prevent truncation of arithmetic expressions
Change-Id: I4694c0c3183b991a4f0db793f584bc77a5fb7d60
2018-02-02 23:06:44 +00:00
Andreas Pantelopoulos
7a8488c482 Support for MPLS Swap Group creation.
Modified the processSimpleNextObjective method to be able to create the
Group chain MPLS Swap - MPLS Interface - L2 Interface , when the MPLS Label
is set to the Treatment.

Change-Id: I72d502ba2f0da811d14d28c170d2e119c3dc8221
2018-02-01 18:04:24 +00:00
Pier Luigi
075f101359 Fix SONAR warnings in OFDPA2 pipeline
Change-Id: I2162d316398dc5946997d9913a6a509345d06879
2018-02-01 16:15:01 +01:00
Yuta HIGUCHI
fbd9ae9cdf Various small fixes
Change-Id: I83802169d0d968f7b88d4be2cedba74b15fdd7da
2018-01-25 22:17:25 +00:00
Andreas Pantelopoulos
ab8d861792 Workaround for GroupProvider to work with ofdpa3
Change-Id: I3d62e1ea8482ff50018daf3d639975fa2123fdc4
2018-01-25 00:51:40 +00:00
Ray Milkey
fe0e085ed2 SONAR suggestions - boolean expressions that are known to be 'true' or 'false'
Change-Id: I4e089cb606ecf43444b4d567ad63d622f37506ce
2018-01-19 08:59:46 -08:00
Ray Milkey
74e5913ec3 Sonar suggestions - fixes to potential null pointer dereferences
Change-Id: I4e350a9d72a9322971d5d4f831f1bdf167986b87
2018-01-18 19:01:54 +00:00
Pier Luigi
d008dbeb7f [CORD-2533] UnsupportedOperationException in OFDPA pipeliner
Rationale: appkryo returns immutable lists serializable
which do not support removeIf and addAll methods

Change-Id: I25f7f818677d78cad65122f476702f9e194fd620
2018-01-17 13:57:18 +01:00
Pier Luigi
07532abd36 [CORD-2531] Missing flows and multicast groups
The rationale for this change is: unhandled exceptions
prevent Runnable to be scheduled in future.
We need to protect the body of runnable.

Related to [CORD-2532] and [CORD-2533].

In the pipeliner we use checkers and groups listener
to get notification about groups. The error scenario:
unhandled exception in the context of a group checker
will kill the checker. We create a multicast group, which
requires firstly a l2interfacegroup. The latter has been
already created in the past. No notification from groups
and no checker -> failure. Multicast group is not created
and forwarding objective in pending (forever).

Potentially, it can fix other errors scenario.

Change-Id: I6ea0548c112002b9ce415103891dc01431bc1dc8
2018-01-17 13:19:51 +01:00
Ray Milkey
9c9cde4d4d SONAR Suggestion - protected members in final classes are pointless
Change-Id: Ie34d86aecf181e73867a14864d75e0db8a8f48f3
2018-01-17 00:18:50 +00:00
Charles Chan
09bf269562 Resume the use of ICMP type/code in OFDPA driver
Change-Id: Iecbeae69046deeec760cba5f12181ae84d86b1d0
2018-01-12 00:02:54 +00:00
ONOS Jenkins User
45d340c839 Starting snapshot 1.13.0-SNAPSHOT 2018-01-09 01:56:13 +00:00
ONOS Jenkins User
32ebb5add8 Tagging 1.13.0-b8 2018-01-09 01:54:28 +00:00
Andreas Pantelopoulos
20474e05bd Pseudowire support for leaf-spine
- Added pw support for pseudowires containing leaf and spine switches as endpoints.
- Inject empty pw config if it is not found for the first time
- Minor refactoring such as more log messages and fixing missing javadoc

Change-Id: Ib57d39cfa36fcd48c01b5781c7445a3f1ffcfbda
2018-01-07 01:56:03 +00:00
Pier Luigi
bdcd967260 Implements policer-meter-mapping [ONOS-5867]
Changes
- Adds Policer config behavior and its implementation
- Implements id mapping
- Adds tests for OpenFlowPolicerConfig
- Adds free id api to MeterService and MeterStore
- Improves test for MeterStore

Change-Id: Ibb47375430e253131d9d9c8a60e61023ee6c8225
2018-01-05 23:12:28 +00:00
Alex Yashchuk
4caa8e82d3 Xpliant ONOS driver support added
Change-Id: I3691a1d6035a8f7d8727b8bded70339e3df0dd94
2017-12-21 02:57:07 +00:00
Charles Chan
c550f2e335 Only remove TMAC flow when it is the last port within the same VLAN if TMAC doesn't support in_port matching
Change-Id: Iafb72153eddd126c5598960a46130c50ddfe3cbd
2017-12-20 11:26:11 -08:00
Jonathan Hart
19e428b42f Add automatic driver resolution for voltha devices
Change-Id: Iebc244d3ac09d40c1f6d8314921b9a56e69888dc
2017-12-19 19:20:43 +00:00
Yuta HIGUCHI
f83c8cfdf6 Maintain OFPortDesc up-to-date
- OFPortDesc cache managed by AbstractOpenFlowSwitch was not always maintained properly.
  reorganized data structure to maintain per OFPortDesc, last known instance

Change-Id: I1b26d7ca284e44bf9744c30374394c581653d78f
2017-12-18 14:58:22 -08:00
ONOS Jenkins User
61881df1ee Starting snapshot 1.13.0-SNAPSHOT 2017-12-12 21:19:45 +00:00
ONOS Jenkins User
d22dccc27f Tagging 1.13.0-b7 2017-12-12 21:18:01 +00:00
ONOS Jenkins User
4bf9e3a520 Starting snapshot 1.13.0-SNAPSHOT 2017-12-12 18:46:22 +00:00
ONOS Jenkins User
168ac92b8d Tagging 1.13.0-b6 2017-12-12 18:44:15 +00:00
ONOS Jenkins User
0e78e27f0c Starting snapshot 1.13.0-SNAPSHOT 2017-12-12 03:27:00 +00:00
ONOS Jenkins User
2a7d833cab Tagging 1.13.0-b5 2017-12-12 03:25:23 +00:00
ONOS Jenkins User
c53a15f933 Starting snapshot 1.13.0-SNAPSHOT 2017-12-11 20:43:30 +00:00
ONOS Jenkins User
d06da9e33c Tagging 1.13.0-b3 2017-12-11 20:41:44 +00:00
ONOS Jenkins User
716484c58c Starting snapshot 1.13.0-SNAPSHOT 2017-12-09 03:41:19 +00:00
ONOS Jenkins User
6a6ac1d5a0 Tagging 1.13.0-b1 2017-12-09 03:39:39 +00:00
ONOS Jenkins User
a57a814230 Starting snapshot 1.13.0-SNAPSHOT 2017-12-09 00:57:30 +00:00
ONOS Jenkins User
8977cedde7 Tagging 1.13.0-b0 2017-12-09 00:55:39 +00:00
Saurav Das
f14d9ef158 Fix for empty flooding groups due to bucket add/remove commands being reordered, and
triggered by port up/down events very close to each other.

Change-Id: Ibbd7cc6eb6df35396175619d95439acd6da904b8
2017-12-05 18:35:20 -08:00
Charles Chan
572618c8b5 Add driver support for OFDPA premium versions
Change-Id: I879beebea8389eef1172e5ecc5b4af68a054b3af
2017-11-21 11:27:54 -08:00
Ray Milkey
a09f87f02b Starting snapshot 1.13.0-SNAPSHOT
Change-Id: Ib3360118c42aa760632ff80537d585865813060f
2017-11-21 09:38:31 -08:00
Andreas Pantelopoulos
27532cd2f9 Added basic pseudowire support for Trellis.
- Configurable pseudowires supporting untagged-untagged, single-single, double-double tagged traffic.
- Commands for listing, adding and removing pseudowires.
- Initial support for link failures.
- Pseudowires also configurable by network configuration.
- Tested with ofdpa_3.0.5.

Known limitations that I plan to fix soon :
	- Adding pseudowires from configuration is inconvenient because we need to ammend new pws to the
	  existing configuration. We should create a REST API for adding/removing/listing pws and abandond the
	  network configuration.
	- Spine fabric switches have rules matching a special mpls tag used for pw traffic for a specific leaf.
	  However, this rules redirect to an "indirect" group for forwarding traffic. If the resulting port there
	  is no mechanism as of now to handle this. We should use the MPLS ECMP Groups of ofdpa, however they are
	  not functional. Thus, we need to inject logic into the application to handle this case.

Change-Id: Ia85cf4514ebab627fc6ed5a19ad9f6cdc67dc24c
2017-11-17 19:49:12 +00:00
Charles Chan
fcf75f5188 [CORD-2224] Drop L4 port matching on QMX
Change-Id: I762dece2ed3b77035fc70e6a1f4321202c2902df
2017-11-15 23:31:44 +00:00
Ray Milkey
cc6ec60fb2 Starting snapshot 1.12.0-SNAPSHOT 2017-11-10 16:22:59 -08:00
Ray Milkey
9f9a752bdc Tagging 1.12.0-b2 2017-11-10 16:21:23 -08:00
Charles Chan
b4879a558c Match VLAN_VID in TMAC table for mcast flows
Matching VLAN_VID in TMAC table is mandatory on QMX switches
XGS switches support optional VLAN_VID matching so this patch is effective for both platforms

In addition,
- Take native vlan into account when assigning VLAN for untagged multicast traffic
- Fix a bug that puts wrong eth_type in TMAC table

Change-Id: I19caf2d6d69096a96b75cb528b6ed37b28d7d988
2017-10-31 00:09:59 +00:00
Thomas Vachuska
2272438680 Added basic driver configuration for various HP product families.
Change-Id: Ifab3b5dba544e8f4117190a40dd062ccc5a1f19e
2017-10-25 17:04:38 +00:00
Charles Chan
d9e47c680f Replace L4 dst port matching on QMX switches
Change-Id: I51c299bec8de3851a0f44cd4a8904013134f2da4
2017-10-06 23:29:46 +00:00
Kalhee Kim
3d26bf0e5e [CORD-1984] Multicast flows get into wrong table in hardware switches
Change-Id: I06ec1d75fdef5bfdf28f1cc70f002f70a943ba4f
2017-10-04 15:15:14 +00:00
Ray Milkey
dc48fb2c3b Starting snapshot 1.12.0-SNAPSHOT 2017-09-26 14:42:24 -07:00