454 Commits

Author SHA1 Message Date
Charles Chan
9bd0e5a1e2 Send probes when host moves
Majorly for the 2nd step of [1A/x, 1B/x] -> [1A/x, 1B/y] -> [1A/y, 1B/y]
But will also cover [1A/x] -> [1A/y] -> [1A/y, 1B/y]

When receiving probe for 1A/y in [1A/x, 1B/y] state, simply replace 1A/x with 1A/y instead of creating a transient 3rd locaiton

Change-Id: I058a265bbe5019d4305aa09d70e095fec0d7e429
2018-05-02 20:00:44 +00:00
Charles Chan
94549653ae Host pointing to the pair port after its pair device is brought down and up
Host-related programming should be done in the same thread to guarantee the order

Change-Id: I07f6e60f4d9ea4392295a7f7ec21b3e2c96aca45
2018-05-02 20:00:44 +00:00
Saurav Das
9a55429ae1 Adding a component config to take down single homed host ports when all uplinks are lost.
In addition:
   - handle port updates that may be lost if mastership changes at same time
   - fix javadoc in DeviceService

Change-Id: I032909e8ab9564cf9c978b1d66abd3ab32c814d7
2018-05-01 15:49:55 -07:00
Charles Chan
971d7ba29e Move some functions from segment routing manager to interface service/manager
Change-Id: I7185cf70f7e5d723a63ac35296b8916558560c35
2018-05-01 15:41:49 -07:00
Jonghwan Hyun
5efd768b57 Bug fix in SegmentRouting
- Correctly program filtering objective for spine-facing ports in leaf switches.

Change-Id: I07ad3980b2e66cecf4c2dd5cfbf70243c7ad4f39
2018-05-01 05:56:09 +00:00
Jonghwan Hyun
800d9d0770 [ONOS-7624] Implement egress pipeline programming
- Implemented logic to handle double-tagged host in segmentrouting application.
- Added 'DummyVlanId' to segmentrouting application to keep track of dummy vlan for L3L2Unfiltered group chain and egress tables.
- Implemented L2Unfiltered group and Egress pipeline programming support in OFDPA pipeline.
- Added EGRESS flag to the forwardingObjective to program Egress tables.
- Fixed bugs when handling double-tagged ARP request, to get correct vlan id and reply with double-tagged packet.
- Fixed bugs in BasicHostConfig, to set the value of 'outerTpid' to 0x8100 if it is not specified.
- Fixed build(ARP/ICMP/ICMP6)reply to build double-tagged reply if corresponding request is double-tagged.

Change-Id: I1fdc30b55827c3f73fad9e854bcaa5fb23f7bcd0
2018-04-26 15:32:17 +00:00
Saurav Das
c6ff8f0d2e Bug fixes for route-path programming
- Leaves should avoid going through other leaves to reach destination
 - dsNextObjective store should only be purged by new master before a full reroute
 - move full reroute for master change to a different threadpool from retry filters

Change-Id: I33be83bfb90d5848cfe94ed0fcdc17f2cca6d73f
2018-04-24 13:07:35 -07:00
Saurav Das
201762d377 Handling mastership changes during route-path programming
Change-Id: I2467d68c29d03cdd96044f23fcf14b6b53c9f9be
2018-04-23 14:29:12 -07:00
Pier
477e0066c3 Improve Mcast termination
Change-Id: I2855d28b374af821667e08bb3baec01f5cfd8100
(cherry picked from commit 173204690b035f1b9be36022c9dfd64f1f264123)
2018-04-23 09:10:01 +00:00
Charles Chan
10b2fee6ea Minor improvements
- Fix typo
- Remove unnecessary warnings
    - Ignore dhcp config register/unregister event
    - Ignore interface IP update when there is no host discovered on that interface

Change-Id: I530fe36eb063ac8b3397c86e888c0a6c2ab8984b
2018-04-21 16:36:19 -07:00
Andrea Campanella
6468e1f700 Fix for routingHandler NPE.
Adding initial delay in handing network config to buffer event and handle async behaviours.

Change-Id: Id6f296f79b74d0386ea4dcb50e7701a672ef51d6
(cherry picked from commit 15fcbba61dbf79836c7f3088bfd257347d0dd2de)
2018-04-20 09:10:49 +00:00
Charles Chan
6577f61496 Fix a thread leak
Change-Id: I6a39abd634c2be684cf567c1f2b2e43d17f46fc3
2018-04-19 22:55:16 +00:00
Charles Chan
8bc75ee52b Implement sr-should-program command
Change-Id: Ie7da6c83b1f432c5f84a13712d0a1be106733c6a
2018-04-19 22:31:33 +00:00
Charles Chan
50bb6efb2f Performance improvement when handling host move events
- Avoid querying shouldProgram every time
- Override flows directly instead of remove and add
- Remove unnecessary event handling delay since we have in-order execution now
- Avoid re-initiation of shouldProgram
- Make sure executors are shut down during SR deactivation

Change-Id: I28e383ed2dcb66d503da25934456008e83683b78
2018-04-19 21:53:04 +00:00
Pier
06d0a77f3b Fix npe when adding a null element in a collection
Change-Id: I946e0c911e100ffcbf123eb6bef44c26c31a46cc
(cherry picked from commit 4bcc32231a6ad94d6f3ea43180b0b5d1e92dbd4e)
2018-04-19 14:57:22 +00:00
Pier
b1fe738936 [CORD-2903] Improve SR/Multicast APIs
Change-Id: Id44af87569e0a83129c96504b21c69e1d455f785
(cherry picked from commit a2858a34a26e02e9d2dd66dc562d0f6fb2c4bdd1)
2018-04-19 06:41:40 +00:00
Pier
96f63cb638 [CORD-2937] Improve work partition on Multicast
Change-Id: Ia8761245e7f199721c1228bfd500e0392a20de05
(cherry picked from commit 901851ef9f2a53d6fdd08d0cc1232b125f1e35bf)
2018-04-19 06:37:00 +00:00
Charles Chan
2690face00 Correctly initialize routes with multiple next hops
- Solve an issue where next hops are available on both leaf switch but one still pointing to its pair through the spines
- Improve unit tests

Change-Id: I94fe79bd9289efe544d82b858928d65201a0b0b2
2018-04-18 19:59:56 +00:00
Pier
3bb1f3f22b Optimize Multicast sinks processing
Change-Id: I5e4c48076edbadc38943d9ee05359341ef55aaca
(cherry picked from commit a17ad9e3f8fe1d2925e6d9fd84d3d96ef79cc78d)
2018-04-18 16:59:03 +00:00
Ray Milkey
bca9049101 Starting snapshot 1.14.0-SNAPSHOT
Change-Id: I97bab4e31d2b701f015289eae29d0c58a4937685
2018-04-13 12:47:31 -07:00
Ray Milkey
6fc64c1e0c Sonar fixes
Change-Id: Id9209ef62897df0f70f0409053ed3ef90e5f18df
2018-04-12 18:07:31 +00:00
Charles Chan
e7c7d0586f Ignore more than two next hops
Change-Id: Ie42365a3a8b9e7f763c21e3f9be9e9abfc35dbf7
(cherry picked from commit e800860179913ce9c37bb378ff27ecb1c68d81dd)
2018-04-11 17:55:20 +00:00
Charles Chan
4e49df8c7d Remove event handling delay
Change-Id: I890ac8643c6b331f6d1f660ef634801c305be55a
2018-04-08 01:03:14 +00:00
Saurav Das
2f2c9d035a Enhancing GroupChecker for faster processing of group updates
Change-Id: I9344ccf0ffbc9cff206318a627f5d97df1091677
2018-04-08 01:00:15 +00:00
Saurav Das
5a35604349 Fixes for CORD-2910, 2920, 2915
- When dealing with possible fake links which tend to be unidirectional, do not
   update internal stores until bidirectionality is verified
 - When figuring out ECMPspg, do not use LinkService to figure out bidi egress
   links. Instead use linkHandlers seen-links
 - Prevent NPE in updatedEcmpSpg
 - Improve logic for bringing up downed dual-home host ports: any active uplink,
   not just the first one should re-enable ports

Change-Id: I4412578e72a6d441cacfa2e023870ceb7c7eab04
2018-04-07 12:58:59 -07:00
Charles Chan
9b7217c560 Handle host, route and mcast events in separate executors
Change-Id: Ic9c4964533354e965691e6db5fa323df91cb4124
2018-04-07 00:05:03 +00:00
Charles Chan
2ff1bac305 Routing/bridging rules on the same leaf pair should always be programmed by the same ONOS instance
Main change:
- Implement new logic for shouldHandleRouting, along with corresponding unit tests. Also rename it to shouldProgram

Side changes:
- Refactor revokeSubnet such that it is only invoked on the instance that should handle routing change
- Move the following methods to RoutingRulePopulator and follow the same design pattern as populate/revoke subnet/route
    - populateBridging, revokeBridging, updateBridging
    - updateFwdObj
- Make sure the following methods in RoutingRulePopulator are always invoked by DefaultRoutingHandler with shouldProgram check
    - populateRoute, revokeRoute
    - populateSubnet, revokeSubnet
    - populateBridging, revokeBridging, updateBridging
    - updateFwdObj

Change-Id: I903129271ede91c45ebf0d973e06faeae46c157a
2018-04-06 23:24:36 +00:00
Andreas Pantelopoulos
0616c56fa9 Use SRLinkWeigher in path computation.
This patch uses the SRLinkWeigher to compute paths in
order to avoid l-s-l-s paths and also paired leafs
paths.

Change-Id: Id532d66e9543e3c898d2e18ca53be4599e206935
2018-04-06 02:47:55 +00:00
Pier
2016288d8c Fix missing "s" in the master pom file
Change-Id: If872a1d65a6c9000ab504bd87f36664dd1bb2b22
2018-04-05 23:18:30 +00:00
Pier
b0328e4478 [CORD-2834] Handling of dual-homed sinks
Includes also McastUtils to move some code out of the McastHandler

Change-Id: I101637ee600c9d524f17e9f3fc29d63256844956
2018-04-05 11:44:03 +02:00
Pier
3ee2455530 [CORD-2838][CORD-2833] Revisit McastHandler and handle shortest paths with pair links
Includes also a refactoring of the path computation

Change-Id: Iff63780a3bb3e895e55c52211290c19d993e1905
2018-04-05 11:24:33 +02:00
Charles Chan
ba6c5751f7 Remove duplicated getPairDevice implementation
Change-Id: I10847d8909070ad75e0ccbcf432b80f460a4fed1
2018-04-04 22:49:37 +00:00
Saurav Das
604ab3a562 Improvements in route-path installation using bidirectional links.
Change-Id: I69875ba0dced1b0b7ec032edbe02a8cf380fadc2
2018-04-04 22:49:37 +00:00
Andreas Pantelopoulos
daf02c8c03 Fixed sonar suggestion in l2handler
Change-Id: Ia16e6197c36b3bebed4610c40624fa180a4b9385
2018-04-04 21:51:57 +00:00
Laszlo Papp
c5e85bbfd9 Use apache commons Pair instead of javafx
It looks like javafx does not have Pair when using OpenJDK.

Change-Id: I3379dc87e0515185714b28ca0832a36b76b0772f
2018-04-04 16:58:06 +00:00
Charles Chan
f433f95e1b Duplicated flow obj requests are sent in occasion of ROUTE_REMOVED event
Change-Id: I7ad9aa8f27203684921356689805b4092f138d78
2018-04-04 16:32:52 +00:00
Andreas Pantelopoulos
935d59d367 Moved validity checks inside l2TunnelHandler.
Moved every validity check for pseudowires inside the handler
itself, this simplified the usage of handler methods from within
the SegmentRoutingManager. Further, improved the api for removing
pseudowires of the l2tunnel handler.

Change-Id: Idb2607aa546b0734add29d446cbedfd3b23c46bb
2018-04-04 00:16:14 +00:00
Andreas Pantelopoulos
ffe69743e0 Better error handling in pseudowire implementation.
I refactored the pw handler to return meaningful very specific
errors for failures. As a result, I modified also the cli and rest
api implementations to use these fine grain errors accordingly.

Change-Id: I2429532f747c4560378c40be325b039ca0f5c925
2018-04-04 00:16:14 +00:00
Andreas Pantelopoulos
6692fdd828 Better validity checks for paths chosen for pws.
As per Saurav's suggestion, checking the size of the path
could lead to unwanted scenarions. From now on, we check the
devices on the path, if they are edge or not, and according
to the type of pseudowire we validate the path.

Change-Id: I2e3a76524a12244199e0a8f409dd95fc1a3c2b2e
2018-04-04 00:16:14 +00:00
Ray Milkey
86ee5e8711 Upgrade fasterXML libraries for OS-9
Upgrade fasterXML to version 2.9.5 to address security vulnerability
Wrap calls to treeRead(InputStream) to handle new behavior of null streams

Change-Id: Id199cfacd0cf9e5371dc33de9f1e058c2e72eaa5
2018-04-03 16:49:03 +00:00
Charles Chan
e5e0c9ae38 Better error handling
Change-Id: Iac5934a89b177f4e0207a6ecc2e2f0731aca115e
2018-04-02 01:09:01 +00:00
Pier
37db369c64 [CORD-2828] Multicast support for H-AGG
Change-Id: I637465bcff6454f414c349a0ab054d66e3d17a05
(cherry picked from commit 4e9a7ce2f70a21a71f828335a6041101f2bf833e)
2018-03-23 20:00:28 +00:00
Charles Chan
7a888e878e Move all event handler to a different executor
Change-Id: I8e9f84b8f4cab5a5b1746f5279b462a5a2322ac5
2018-03-22 14:42:18 -07:00
Charles Chan
9c44ec7e9d Avoid ConcurrentModificationException
Change-Id: I0cadfb3a49a67e3d21d6749c923af55d36589d5c
2018-03-22 14:40:27 -07:00
Andreas Pantelopoulos
811bbaef85 Pseudowire enhancements :
- Fix bug for transporting l-s-s pws tagged.
  - Refactored and cleaned code.
  - Refactored cli commands.
  - Fixed bug in bulk rest api when the same pseudowires were tried
    to be added.

Change-Id: I28ded776266a08110922b93a8b330d0b343d470d
2018-03-15 20:02:52 -07:00
Charles Chan
b39777cfc5 Fix NPE caused by RoutingRulePopulator not initiated before linkHandler.init()
Change-Id: If21a2628c9d4e7687c26fda467240093dbc723c8
2018-03-14 23:49:22 -07:00
Ray Milkey
b994f8d06e Sonar wants switch cases to end with a break statement
Change-Id: I6d21404114460b19177d3865f9e3b0eba016bc6d
2018-03-14 09:55:13 -07:00
Andreas Pantelopoulos
ff691b7f63 Implemented the following PW features and fixes:
- PW support for H-AGG topologies. Support for leaf-spine-spine
     leaf-spine-spine-leaf pseudowires.
   - Renamed pw commands with sr-pw-* pattern and also removed redundant output
    from them.
   - Enabled bulk addition / removal of pws from the rest api.
   - Modified diagnostics tool with the updated command name.

Change-Id: I708db9281d0082b160cbd713910b420ef7df9da3
2018-03-14 00:55:56 +00:00
Pier
e5bff48f20 [CORD-2811] Fix VLAN cases in Mcast
Change-Id: I0b051a4502e48b4278723a1b782f49e0d6a2dffa
(cherry picked from commit 3cc7e66059ac9be3cdfbd266563690ec53badc9b)
2018-03-13 19:37:55 +00:00
Charles Chan
c9e92242dd CORD-2803 Correctly reply to ICMPv6 echo request that targets link-local address of the switch interface
Change-Id: Id17f07bff6097b3bceb13b3cabcec15f446829bd
2018-03-07 21:35:55 +00:00