581 Commits

Author SHA1 Message Date
Charles Chan
a40ecbbee1 Fix an NPE in modified when calling hostHandler
Change-Id: Ifa8799875f8de8c5b322e773748b5f8caee8f97a
2020-02-27 20:16:56 +00:00
Carmelo Cascone
83d9e7826f Fix log error about non-volatile reference in SegmentRoutingManager
OSGi requires attributes such as xconnectService to be declared volatile
to handle a dynamic reference.

Since xconnectService is now declared volatile and Karaf runtime is able
to set/unset its value, there's no longer need to use event-based
binding/unbinding with dedicated methods.

Change-Id: I5ab64fbf2bd5a76f5a14c6845127246eb7352a8f
2020-02-20 05:22:06 +00:00
William Davies
07870723b4 Adding port validations for Xconnect service creation
Change-Id: I6afd9ad86802783fc7875bf8d348eb75280f9578
2020-02-14 15:55:51 -08:00
pier
41d389a465 Introduces seen before routes in DefaultRoutingHandler
- to remember the routes that have been visited before

Change-Id: I96470ad5eb0837f7b734ba634c7c3d26e25d03ed
2020-02-10 17:27:56 +01:00
pier
e60697e11d Avoids disabling access ports when the dev is not paired
Change-Id: Ice14b6986b58c9abc47bdede54d1f6cac6895791
2020-02-10 14:27:39 +01:00
Charles Chan
d7e62148df Use effectiveLocations rather than locations while processing host events
Change-Id: I5918c2ba6297939453dfbecd46a0d49f23c4d2a9
2020-01-09 23:34:56 +00:00
pier
cb49e7d17b Adds coordination during host movements
This fix assures that only the king will perform the update of the L3UC chain

Change-Id: I38b91beaa56b46b7dcd22b3316815dbb17b255fa
2019-12-02 09:25:23 +01:00
pier
cc5a18b690 Fix noMorePorts logic which did not consider PW_VLAN
Change-Id: Iadacf753c8e202f1327113eb795e998dccf1390b
2019-11-27 21:30:33 +01:00
pier
52517ffad7 Improves link up handling
- trying rehash of the routes for each link up
- redoing reroute only for the routes where rehash fails

Change-Id: I7495277af73d8948300f170fa92cbbfecc338d89
2019-11-08 09:15:14 +01:00
pier
e08595d638 Improves rules population
- offloading redoRoutingEdgePairs to predictable callables
- offloading redoRoutingIndDests to predictable callables

Change-Id: Ia08e2cdbd03c513ec15900fd5117cc055cd95d4e
2019-11-08 08:12:58 +00:00
pier
b84e91977d Improves host programming introducing a pool of worker threads
Change-Id: I979693aa220e2666c13c4015435c66173624ea64
2019-11-07 17:03:38 +00:00
Daniele Moro
000e465710 Trigger the removal of double tagged rules
Trigger the driver to remove the double tagged rules (fwd classifier) when removing the flow objective and no other host is connected to the same port

Change-Id: I83d50f9b3404f2eaa733cc0c75f76bfe3562b5e8
(cherry picked from commit 7c4534ce5133538e2a6f0c95b4ecc7ea1f250e47)
2019-11-01 19:41:21 +00:00
stevenchiu30801
ea5ea0128f Fix Xconnect example on web docs
Change-Id: I6f7b4f78b4dc6a1bc9daa1c7d60e37f46e758253
2019-10-14 07:21:50 +00:00
pier
75651b0f3f Improves ping responder
Patch contains several bugfixes and improvements:
- Fixes sid retrieval when the destination leaf is down
- Fixes sid retrieval when ping goes through the spine
- Fixes MPLS deserializer
- Improves Ethernet toString
- Fixes ping to looback for dh host when bond sends to wrong leaf

Change-Id: I05963e74b2976e526826ffd377cadeb462ba0a8d
2019-10-11 14:08:35 +02:00
Vignesh Ethiraj
aeecd041f6 [SEBA-636] Modify Segmentrouting to not program multicast tree on unconfigured devices (OLT)
Change-Id: I0a2e46545c9e3d6bc3d3a2b1335af8a39f2cae87
(cherry picked from commit ece19c7d517fb9eae47b4a836455ddec3f0b1484)
2019-08-26 10:32:49 -07:00
Charles Chan
b7aa764302 Remove dummy VLAN from double tagged pipeline
NOTE: This patch will break double tag termination support on OF-DPA.
      The pipelier needs to be re-implemented to understand the new objectives.

Before:
  NextObj: ETH_DST, ETH_SRC, OUTPUT, VLAN_ID (dummy)
  FwdObj.EGRESS: OUTPUT, VLAN_ID (c-tag), PUSH_VLAN, VLAN_ID (s-tag)

After:
  NextObj: ETH_DST, ETH_SRC, OUTPUT, VLAN_ID (c-tag), PUSH_VLAN, VLAN_ID (s-tag)
  No FwdObj.EGRESS

Also remove NextObj when the host is removed

Change-Id: I4ccdfa1d20701d9b2451ea0f3b4e761006746120
2019-08-22 22:47:53 +00:00
Esin Karaman
dd26b21c09 SEBA-801 McastHandler of SegmentRouting app. does not install multicast
filtering objectives to a device that lacks mac configuration.
However, according to Opdpa2Pipeline, device mac is not mandatory to
create proper multicast filtering flows.

It seems device mac configuration should also not be mandated by
SR for multicast filtering flows.

Change-Id: I73c381a61bedaaf99cf0951d1e939048065843d2
(cherry picked from commit 92920611c0c6cac0eb64587ee0a4bc17c253a120)
2019-07-26 08:35:31 +00:00
Charles Chan
77cfb1604b Fixed REST API bug in Xconnect
In addition,
- Deprecated old XConnectHandler
- Fixed equals() of XconnectDesc and XconnectKey
- Implemented unit tests for XconnectCodec

Change-Id: I1b5f2c1f389523e3b65a3d9acaf75bc06e39fdda
2019-07-22 23:59:19 +00: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
Andreas Pantelopoulos
2fef31193f Fixed removal of doubletagged hosts
Change-Id: I3e5fa5da4745f15ab6c84c899f80e7e622ce3583
2019-07-12 22:36:06 +00:00
psneha
d5b9016346 Do not pop VLAN for traffic that goes to the pair port
Note: popVlan is effective to L2 interface group that gets created while creating L2 multicast group. 
The popVlan has nothing to do with L2 multicast group itself.

Change-Id: I63baf88bfd626b19dcfdf654e4e184e48886f7fc
2019-07-08 15:09:11 -07:00
Daniele Moro
ce7e72a0f4 Direct host when populating IP rules for double-tagged next hop
Change-Id: I237c55666e73be124f225bcc10dc7898e7e47089
2019-07-08 21:44:04 +00:00
Shekhar Aryan
c87503f511 SEBA 637 change in McastHandler.java
Change-Id: I211b1509f105eff62616b1dd6aa56a18a6faf562
2019-06-24 17:30:47 +00:00
Esin Karaman
d222b5cd3d ONOS-7944 McastHandler of SegmentRouting considers only dual-homed sinks,
not the sinks that are not tied with any host.

However, one of addSinks method of MulticastRouteService of mcast
application allows adding connect points each of which is a standalone
sink. In a scenario where all connect points are used as different sinks,
processSinksToBeAdded method in McastHandler service does not return
a true list of sinks to be added;

In overall,all connect points which are associated with HostId.NONE must
be added as different sinks. In the current situation, just one of them
is selected and added.

Change-Id: I3d4eb1ff865aca4f2fe85011a6a390374028a081
2019-06-19 12:24:39 +00:00
Ruchi Sahota
c8aa9f3c41 Optimized group updating during host move
In addition,
- Added a fix for host remove issue
- Added a fix for single homed (loc1) to dual homed (loc2).

Change-Id: I1a7344bd77f73d6bed8955dcdbf407b5354d0eee
2019-06-07 11:39:06 -07:00
Charles Chan
72ff3d9c17 Refactor the code so the populateSubnet is only called once per nexthop movement
Also make sure FPM and STATIC get processed first in this case

Change-Id: I9235b1c47452dc639ccef488442739bee302adbe
2019-06-06 17:19:03 -07:00
Charles Chan
411beb2a5d Prioritize certain type of routes among others
FPM, STATIC and configured subnets go to high priority batch, while others (e.g. DHCP) go to low priority batch

Change-Id: I8dcef67945c31bd0eab869510bea0f1f278b2925
2019-06-06 17:19:02 -07:00
Sudhir Kumar Maurya
6f2d2b1006 Xconnect Recurring log fix
log trace added for Unhandled host event
Change-Id: Iba11e03e73c646874b4d15e55e2b516175adc02d
2019-05-23 12:09:28 +02:00
pier
604e231a43 Clean properly populationStatus when an exception is thrown
Change-Id: Ibcb54e6cfe5031ef2854e96d9933bb522241e998
2019-05-23 08:18:56 +02: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
Ruchi Sahota
ef0761c211 Route reprogamming using group substitution during next hop movement
Change-Id: Idf8362dac522722ca67747e245bfd836e6ee6292
2019-04-10 14:53:49 -07:00
Charles Chan
73742fa55f Restore segment routing REST API
Change-Id: Ic013b6a49547a34f569cb1cc71d9937d17363c57
2019-04-08 13:54:53 -07:00
pier
ba2471aff7 Fix java doc
Change-Id: I7bab03fa968523a772e91f4cd3a098a6ec912e01
2019-04-08 15:45:21 +00:00
Charles Chan
61eb99edda Only iterates configured subnets to determine if a packet is destined for the switch
We should not check subnets learnt from route service. It is not only expensive but also incorrect.
This patch should significantly reduce the CPU usage when controller needs to reply ping to the gateway IP.

Change-Id: Ic245f5f136cf547cb50cabff4927da00e7f03666
2019-04-07 15:33:19 -07:00
psneha
1c0d5f81cf Route Simplification programming
Change-Id: If3d8aaa3fe2dad5538b10ddc54b97f504d0f1a35
2019-04-06 13:52:44 +00:00
pier
024f44c902 Remove listeners before shutting down the executors
Change-Id: I1496ec06a839bb893e35a2e6d322d9eed33f45f2
2019-04-03 18:46:50 +00:00
Charles Chan
f7b1b4b363 Rename L2 load balancer to port load balancer
CLI commands are also renamed to plbs, plb-add and plb-remove

Change-Id: I4c26b390acc5a961594a1dca92a76bee2148c090
2019-04-02 13:05:32 -07:00
Charles Chan
16631de5bc Address comments in gerrit 20328
Create a new class XconnecEndpoint to cover both physical port and load balancer
Also change the CLI load balancer identifier to "LB:"

Change-Id: I0b4cd6e474d8b21468d87fcadd9280fdf7d6aafa
2019-03-31 17:08:26 -07:00
Charles Chan
7e6d51747d Address comments in gerrit 20327
Change-Id: Icadd58a401d32362a826b5ac33bdffec15ca8169
2019-03-31 17:08:26 -07:00
pier
cc6ca77d9d Extends XConnectManager
- Listens for L2LbEvent
- Leverages a cache to wait l2lb nextid

Includes a small change in the L2LbService interface

Change-Id: Id545e2228dde013620b4b415d1d2619027ef15d2
2019-03-31 17:08:26 -07:00
Charles Chan
5f48a74b63 Implement L2 load balancer support in XConnectManager
Change-Id: Ib310a1dde72db38abb60273ce66b5f72768bf4ca
2019-03-31 17:08:26 -07:00
Charles Chan
0f7897f917 Route is not populated correctly when next hop moves
When the next hop moves from [1A,1B] to [1A],
there should be a route on 1B pointing to 1A via spines

Change-Id: I817414fb4e9edf29357fdb5e55675537ff5f0cac
(cherry picked from commit 53eae194a8b66287855483359309597e8df2efa9)
2019-03-15 22:28:09 +00:00
Charles Chan
64a1c8e76e Offload packet processing to another thread
Also update unit tests

Change-Id: Ib94c796083e2d75912f77667d3cfe4ed794694e9
2019-03-12 08:15:22 +00:00
Charles Chan
8bdb2255fe Update xconnectService when the service is bound/unbound
Change-Id: Ic5a6cfc1db2437a410a27c0ec66e664f88cabb2d
2019-02-28 21:43:06 +00:00
Charles Chan
5145de2348 Eliminate redundant flow programming when host moves
When a host moves from [1A/1, 1B/1] to [1A/2, 1B/1], there is no need to program the pair link flow first.
Also update unit tests to verify this behavior.

Change-Id: I97c7ee5f0db891226c7ed477f5f05af5d6c1faa8
2019-02-06 00:02:19 +00:00
Ray Milkey
4972416f9d Remove deprecated APIs from packet classes
Change-Id: Id02d759077e19e84ed290994ca53b2a0593de223
2019-01-28 09:11:35 -08:00
pier
46d557f868 Provides a separate executor to handle map events.
Includes also several code optimizations

Change-Id: I7c4916b0f746379213f239766e912ad696e2f56f
2018-12-07 21:20:07 +00:00
kezhiyong
c97849c19b If link list if null or empty, the following code links.get(0) will get an error.
Change-Id: I51c1cdc374f1b550e942826fb65acb40161f7d86
2018-12-06 01:54:36 +00:00
Ray Milkey
ec9e4de63b Prevent NPE if an event comes in during start up
Change-Id: I00c3a8c587c382c551d2b7212cf3d689c872fe1d
2018-11-19 16:51:59 +00:00
Thomas Vachuska
52f2cd1520 Detangling incubator: virtual nets, tunnels, resource labels, oh my
- virtual networking moved to /apps/virtual; with CLI & REST API
- tunnels and labels moved to /apps/tunnel; with CLI & REST API; UI disabled for now
- protobuf/models moved to /core/protobuf/models
- defunct grpc/rpc registry stuff left under /graveyard
- compile dependencies on /incubator moved to respective modules for compilation
- run-time dependencies will need to be re-tested for dependent apps

- /graveyard will be removed in not-too-distant future

Change-Id: I0a0b995c635487edcf95a352f50dd162186b0b39
2018-11-13 22:14:50 +00:00