188 Commits

Author SHA1 Message Date
Charles Chan
68aaad547e Determines route IP by checking the interface config directly
Previously, SR checked the subnet data structure which contains
multiple subnets now in order to support generic routing.

A missing part of gerrit #11842.

Change-Id: Ia778c8ba5a42927d259c70bbb7538869270a7a1f
2016-12-12 23:24:48 +00:00
Saurav Das
d2fded0301 CORD-637 Fixing intermittent filtering objective failures by repeatedly trying
till results are consistent. Also fixed some typos and made some logs clearer.

Change-Id: If829b02ac6dc2f8ada455b5290c718d29a6d7988
2016-12-06 17:20:18 +00:00
Ray Milkey
72bcefefce Starting snapshot 1.9.0-SNAPSHOT
Change-Id: Iae30168353c72c4e2d5e395298ceca5dd7554984
2016-12-02 16:22:53 -08:00
Ray Milkey
bc3c6ba539 Starting snapshot 1.8.0-SNAPSHOT 2016-12-02 15:59:38 -08:00
Ray Milkey
a222d05a18 Tagging 1.8.0-rc4 2016-12-02 15:49:32 -08:00
Ray Milkey
b547e06157 Starting snapshot 1.8.0-SNAPSHOT 2016-11-30 15:10:18 -08:00
Ray Milkey
4f6d428dc7 Tagging 1.8.0-rc3 2016-11-30 14:52:32 -08:00
Saurav Das
4e3224fb5a CORD-641 Bug fix for handling reconnected leaf switch
Also changed some ECMP graph node variables to consistenly use
'root' and 'target' instead of the generic 'dst' and 'src' terms.

Change-Id: I1965e6d4a13f3cd42ec5cce08b0b0c321625e554
2016-11-30 21:26:08 +00:00
Charles Chan
458b826288 Fix NPE when revoking routes
Change-Id: Ie086fb2ea947fd909c2c1416c3da9cac22014dd1
2016-11-30 20:12:28 +00:00
Saurav Das
1a129a029f CORD-81 Support for editing buckets of ALL groups, both L2Flood and
L3Multicast in the OF-DPA driver. Additionally changed SR app to
react to edge ports going up/down by sending flood group edit calls.

Change-Id: I6d7749f579d3d1d800e6ca8ce2316bd0e3f6136b
2016-11-30 19:43:49 +00:00
Pier Ventre
9816178949 [CORD-578] MPLS ECMP configurable
Changes:
- Adds MPLS-ECMP option to SR configuration;
- Updates the json examples;
- Implements unit tests to verify the expected behaviors;

Change-Id: I6a7f5d34161be7c85ecb76c9a09288d960aad3cb
2016-11-30 18:58:44 +00:00
Ray Milkey
58c6af2321 Starting snapshot 1.8.0-SNAPSHOT 2016-11-22 17:26:52 -08:00
Ray Milkey
8b8b30ce29 Tagging 1.8.0-rc1 2016-11-22 17:08:32 -08:00
Ray Milkey
85267006aa checkstyle rule to check copyrights
Change-Id: Ia9bab40b5fe64fca539058a4316371f7acc0f387
2016-11-18 18:40:44 +00:00
Charles Chan
2c15acae9f Determines the subnet of given port by checking the interface config
directly

Previously, SR checked the subnet data structure which contains
multiple subnets now in order to support generic routing

Change-Id: Ib6e4b107583d9fd1bca248b31a6c437236560199
2016-11-17 19:29:11 +00:00
Charles Chan
505dfd8e24 Fix NPE when a port is not configured
Change-Id: Id55cdbb7560bd11734c1923fdd6c9397aec0b071
2016-11-08 16:32:13 -08:00
Charles Chan
1cdecffa2b Improve populate/revoke IpRuleForHost to support generic route population
- Supports not only a single host but also entire prefix
- Also rename it to populateRoute/revokeRoute

Change-Id: Id8463c03dabb1e9f94da709685d8325c66a36a0e
2016-11-07 17:09:01 +00:00
Saurav Das
1ce0a7b8b5 CORD-414 Editing hash groups buckets in the OF-DPA driver instead of
creating new groups.
Also in this commit - fix for NPE in groups cli, and removal of unnecessary
cpqd-ofdpa3 driver.

Change-Id: I2a5dd183cb38ed901caa5a806791b77e9d92d93c
2016-10-25 12:47:23 +00:00
Charles Chan
c81c45bbde CLI command that shows all subnets configured in Segment Routing
Change-Id: Ib03ec2039b763f3796548923883fc89913a1ceac
2016-10-21 17:36:57 +00:00
Charles Chan
d2edd47030 CORD-378 Validate ARP SPA in segment routing ARP handler
Check if the source protocol address of an ARP packet belongs to the
same subnet configured on the port it is seen.

Additional changes:
- Improve human-readability of ARP.toString()

Change-Id: Ie21c1edb43aa0ec636e9a927ca164a46ab2256fc
2016-10-19 01:21:38 +00:00
Pier Ventre
2c51531ab7 [CORD-438] Fix Segment Routing application
Changes:
- Discards Link events if one of the switch is down;
- Triggers the paths optimization after device-down event;

Change-Id: I4114f2450401e0d1ff5658d592daf319d977f20e
2016-09-20 14:33:34 -07:00
Brian O'Connor
bfc02ecd22 Bumping snapshot version to 1.8.0-SNAPSHOT
Change-Id: I4ca57b277d8ac814b8a10b107d995cb1cc4d499d
2016-09-16 17:41:55 +00:00
Brian O'Connor
b19fc86f82 Bumping version back to 1.7.0-SNAPSHOT
Change-Id: I1df9d0f12cd7ec7597499d41cacebdbe75899556
2016-09-16 00:12:21 -07:00
Brian O'Connor
338bc0cf19 Bumping pom versions to 1.7.0-rc2 and fixing some maven issues
Change-Id: I6169420328333d0916452aa92efbfa961d72e9c4
2016-09-16 00:11:45 -07:00
Brian O'Connor
0a4e6742b8 Copyright update
Change-Id: I534d938da3820f6fb814aed3bb4a0855fa41ddd5
2016-09-16 06:48:34 +00:00
Yuta HIGUCHI
0de4ba9401 Remove duplicate version specifications
Change-Id: I0fe6027e66815ab2e7db5e090dd5aea39b3c36e1
2016-08-18 15:59:50 +00:00
Yuta HIGUCHI
1624df1f30 Assigning names to various threads
- specify nearby logger when possible

Change-Id: Ia8925ab1459c4d1da922becd0e201388d44d4294
2016-07-22 22:56:26 +00:00
Charles Chan
c4d797f7c5 Make log message clearer
Change-Id: I5e27fc1d242ca03a4ed93dd67fbbf6d477cbd808
(cherry picked from commit 1ba1549f3637cd3f1def72ec6f04656b3fe2d5a6)
2016-07-07 20:11:04 +00:00
Charles Chan
1588e7bda9 Bugfix for multicast in multiple instances environment
Only the master of the source device do path calculations

Change-Id: I29f6d49f039d61014f0ff8ddce73db2ad18eb6e4
(cherry picked from commit a7da388b2f8d1601e71d915618509b03478a4a9b)
2016-07-01 18:19:42 +00:00
Jon Hall
68e4e8757d Update cord-config dependency to b1 version
Change-Id: I9d38433c4e4110b3c3ad0141cc1a3dbccf4ee701
2016-06-29 17:33:21 -07:00
Charles Chan
a061fb3f42 Bugfix: store entry is not removed properly after device disconnected
Change-Id: I4c967a1d98208b5d3eee0e7b00dfd4ed2fddde01
2016-06-18 00:27:35 +00:00
Brian O'Connor
1b2aea88c0 Removing gratuitous relativePath from pom.xmls
The default value for relativePath is: ../pom.xml

Change-Id: I1f5e5e6bfa1e91fcddae4f8cb8ab0c00c276e6b0
2016-06-16 07:05:31 +00:00
Charles Chan
35fd1a7305 CORD-77 Dynamic Access Agent Config
This commit depends on https://gerrit.opencord.org/#/c/56/

Change-Id: I6084621c36046ae8b6262cab52c49825d3e0d0d1
2016-06-15 22:26:51 +00:00
Charles Chan
fc5c780fa1 CORD-61 Dynamic XConnect support
- Add new XConnectConfig with unit test
- Gather XConnect features into XConnectHandler
- Introduce ObjectiveError.Type.GROUPREMOVALFAILED
- Rename
    - NetworkConfigEventHandler -> AppConfigHandler
    - XConnectNextObjectiveStoreKey -> XConnectStoreKey
    - Test json file
- Refactor

Change-Id: I8ca3176ed976c71ce9e28b7f3722ce80d49c816f
2016-06-14 15:06:11 -07:00
Saurav Das
b5c236e2eb In this commit:
Bug fix when optimized SR re-routing fails, do full re-route
   Bug fix filtering objectives should be called for new device even if there is an existing grouphandler
   Bug fix NPE in ofdpa driver due to null check on the wrong variable
   New cli command for debugging flow-objectives for pending next-objectives
   Flow objective cli commands now start with "obj-"

Change-Id: I819f82d1d67769cb9fbbde60f099d29b8e7f7c9e
2016-06-14 21:08:22 +00:00
Saurav Das
251908110a In this commit:
Bug fix where filtering objectives are not installed due to available ports becoming enabled later.
   Bug fix where flow objective store had no listener for notifications from drivers across multiple instances of the controller.
   NPE fix in ofdpa driver for non-existing groups.
   Preventing ofdpa driver from sending spurious pass notification to app.
   Incrementing retry filter timer from 1 to 5 secs in default routing handler.
   Made several debug messages clearer.

Change-Id: I828671ee4c8bcfe03c946d051e1d1aac9d8f68dd
2016-06-08 17:01:12 +00:00
Thomas Vachuska
c08a5db364 Fixing pom.xml duplicate dependencies and tying in lib into the root pom.
Change-Id: I00a13c0e0acc0c4a99fde1cd1d4fe06dbf3fb2f9
2016-06-06 11:18:24 -07:00
Charles Chan
b3007e1442 CORD-180 Changed the way how learnt hosts are suppressed in gerrit 9195
Change-Id: I086ba82147ef716c076cb6140b03da2886515c32
2016-05-24 15:24:46 -07:00
Brian O'Connor
e642f7cf7b Bumping version to 1.7.0-SNAPSHOT
Change-Id: Id105bf08ecbdac6d4e214ae035b4220aea90f29f
2016-05-23 18:35:29 -07:00
Charles Chan
eefdedfb50 Remove redundent byte[].class registration
Also added names to some serializer for debugging purpose

Change-Id: I0997b61a5d08df84c85ca28f6a5ed23417fb8c22
2016-05-24 00:09:42 +00:00
Charles Chan
8d44986c3b CORD-135 Support Multicast Source on a Configured Port
Missing part of gerrit #9230
Forwarding objective need to check the existing VLAN as well

Change-Id: I8e9cadc57c332a20567eaeaa2030901fc2dbf5b8
2016-05-22 22:45:15 -07:00
Charles Chan
6ea94fc6b5 CORD-73 Change the way we configure host learning in segment routing
hostLearning config
    - true: enable host learning
    - false or not provided: disable host learning
suppressHost config
    - all connect points listed here will be ignored
    - no effect if hostLearning is false
    - accept all hosts if this config is not provided

Change-Id: Id4a60bd47cac1f226ab8ba5391931ad2fb798529
2016-05-17 21:47:23 +00:00
Charles Chan
f0994cc539 CORD-135 Support Multicast Source on a Configured Port
Change-Id: I71965dbb649a798cd1991bcb4d921919a30420d5
2016-05-13 17:03:57 +00:00
Charles Chan
93e71ba993 CORD-60 Support dynamic vSG creation/deletion
We no longer need to configure /32 IP in interfaces.
SR will push a per-host route when discovering a host
with IP address(es) that does not belong to configured subnet.

Also includes:
- HostHandler refactoring

Change-Id: Ic1ad42d1ccdfee32be85f49e6fc94d9026000ffc
2016-05-11 13:19:08 -07:00
Jian Li
c2a542bcab Explicitly return NO CONTENT type response for http DELETE request
Change-Id: I920084b92197bb1687e7d978ad350b2e1290ecbc
2016-05-10 22:24:39 +00:00
Charles Chan
2199c30c6e CORD-348 Fabric multicast support - error handling
Automatically failover to backup spine if
- ingress - transit link down
- transit - egress link down
- transit device down

Can recover from fatal error with human involved
- ingress switch down
- egress switch down
- all links to spine down

Scan through McastRouteStore when
- SR activate
- link up

Also include following features
- Use flow objective context in McastHandler
- Update Mcast VLAN config sample

Change-Id: I75007d9efd7646e7c4e57fa6d3fc6943543153cf
2016-05-03 19:09:52 +00:00
Saurav Das
59232cf8f8 Changes include:
bug fix for host IP and MAC flows not being generated sometimes in multi-controller scenarios
      bug fix for filtering objectives not being sent sometimes when ports become available later
      npe fixes in ofdpa driver for cases where selectors or treatments may not be available
      new cli command to manually trigger routing and rule population
      portstats option on cli to display only those ports with non-zero stats
      group cli command tab completion displays choices in lower case (similar to flows)
      segment routing cli commands now start with sr-

Change-Id: Idcd641882d180acbd304e5560ed3483b5a943f96
2016-05-03 00:52:58 +00:00
Charles Chan
216e3c856b Refactoring SegmentRouting, OFDPA driver and Group Store
- Replace SRNextObjectiveContext with DefaultObjectiveContext
- Move several log messages to lower log level

Change-Id: Ice2fb598b8e4502cb4acee1a95235551ec7c8db7
2016-04-26 16:57:23 +00:00
Charles Chan
d299036a4d Segment Routing refactoring
- Change name: McastEventHandler -> McastHandler
- Separate HostHandler from SRManager
- Move storekeys to a dedicated package
- Replace SRObjevtiveContext and BridgeTableObjectiveContext with DefaultObjectiveContext

Change-Id: Iab25529487004759105e5ba60c1d2a3852ac45e6
2016-04-23 22:25:26 +00:00
Charles Chan
d55e84de33 CORD-348 multicast support in SegmentRouting and vRouter
In this submission:
* Setup/teardown multicast route according to SinkAdded/SinkRemoved event
    - ingressVlan and egressVlan is configurable through network config
* Change behavior of OFDPA VLAN assignment
    - Always use the VLAN in metadata if present
* Bugfix of writing immutable object

NOT in this submission (coming soon):
* Error handling (e.g. link/device failure recovery)

Change-Id: I9be11af04eb2d6456b865c7e59e96cc02370f846
2016-04-18 20:06:57 +00:00