159 Commits

Author SHA1 Message Date
Jonathan Hart
33b81f2967 Move TestIntentServiceHelper to routing-api bundle
Change-Id: I4c476cb89400e2eb14e0fc5f3db96c2886708244
2016-02-06 00:54:15 +00:00
Jonathan Hart
ce3b28e9fa Moved sdnip.json config example to the reactive-routing app.
It's no longer relevant for SDN-IP and is misleading.

Change-Id: I29595af935b9618157b4ff24bad1fa060e98e268
2016-01-12 11:06:13 -08:00
Jonathan Hart
2bac2f2337 Move BGP speaker/peer commands to routing bundle
Change-Id: If19e2eaa9d23a0d27bd0e5d76b82d5bbd76e95c6
2016-01-07 07:44:14 -08:00
Jonathan Hart
6af92be680 Move IntentSynchronizer to routing bundle.
This allows it to be used separately from SDNIP.

Change-Id: I45358666aa32763cb4bcac8f1c0a4025c6b76863
2016-01-07 15:42:41 +00:00
Jonathan Hart
c22e847967 [Falcon] More flexible component choice for routing apps
Change-Id: I0b01f633332fa7f099d4b3ffe58d86141f3a040b
2016-01-05 19:10:42 -08:00
Jonathan Hart
365335e2de [Falcon] Componentize IntentSynchronizer and SdnIpFib.
Change-Id: Ic384ce00572ae1e4bbf94b4de814cea3499d3828
2015-12-17 22:13:33 +00:00
Ray Milkey
4fd3ceb3df [Falcon] fixes for Sonar Critical bugs
Change-Id: I0a63578727693a2517f3002bd4f4c391b6f44aea
2015-12-17 17:39:44 +00:00
Luca Prete
86ac7d158d Moving IntentUtils to intent package
Change-Id: I258c1d988e4bea4b79bdb0c2235e02fe5404ea52
2015-12-03 18:56:40 +00:00
Pingping Lin
92ca4915ba [ONOS-3410] Let sdn-ip support default route
Default route is an important and frequntly used feature in BGP.
For example, network operators want to reduce the size of the route table.

The current sdn-ip does not support this feature. So this patch is to
let sdn-ip support this feature.

Change-Id: Ibb5afe3711522468e4902da2e090370db71b29da
2015-11-25 13:33:49 -08:00
Luca Prete
3401a3fe14 Making the IntentSynchronizer constructor public, so that an executor service can be passed from outside.
Change-Id: If96bd4dfa90222db36061d3f493338217d82c2de
2015-11-19 11:43:37 -08:00
Brian O'Connor
e1fb43b0fc Changing equals in IntentUtils to return false if
intents are different classes.

This replaces the behavior where we throw a runtime exception.

Change-Id: I063621b683af186611b18f87c24e852e80c31977
2015-11-19 19:00:21 +00:00
Luca Prete
6a4b39d514 Adding support to compare mp2p intents in intentUtils.
Change-Id: I7e8404f093e105379de0b55076a03723ba678fe9
2015-11-18 17:05:22 -08:00
Pingping Lin
c07781f50f when deactivate sdn-ip, also delete all relative intents
Change-Id: I7a6bd64b5a9525dc49ca2b9353fcc45dc9a16288
2015-11-13 19:03:05 +00:00
Pier Luigi Ventre
b38243fa41 - Fix the SDNIP IPv6 flows installation in the switches
Change-Id: Ida3653a06e6f452c7a185fd3ead92d036abc32d8
2015-11-13 18:44:25 +00:00
papazois
7d39a74a13 [GEANT] Add/remove-bgp-speaker/peer commands.
Change-Id: Iad8001095cc81be0c34c976adfa32ef9c7eff685
2015-11-12 02:22:43 +00:00
Luca Prete
00043dbbf3 Making IntentSynchronizer more generic to be used with other classes. Deleting SDN-IP nomenclature.
Change-Id: I779a8dab82fea00fb0d261d63b598d863693e332
2015-11-04 15:55:16 +00:00
Jonathan Hart
08105be3e6 PeerConnectivityManager: recalculate peering intents on configuration change
Change-Id: I05944f995342b2351115a613e02ad3e2ed830eb4
2015-10-27 18:49:41 +00:00
Jonathan Hart
9a426f8ade Generalize IntentSynchronizer and separate reactive routing code
* IntentSynchronizer can now handle any intent rather than having use
   case specific APIs
 * IntentSynchronizer does not generate or store intents anymore, it only
   perform synchronization
 * SdnIpFib generates and manages the procative route-based intents
 * ReactiveRoutingFib generates and manages the reactive intents
 * Unit tests have been tightned up to only test single components, rather
   than multiple components together
 * PeerConnectivityManager uses meaningful keys when creating intents

Change-Id: I4bb036ec8d056f43ece46f7dfc71d5e5a136b77d
2015-10-05 16:06:56 +00:00
Sho SHIMIZU
6cfc02d953 Use dianmond operator
Change-Id: I551dd9443b10ef17832f74a554486b7605e9866a
2015-09-11 18:53:17 +00:00
Ray Milkey
9b36d81ce3 Javadoc fixes
Change-Id: Id23ed2d576b2222194153be9d043ca5acafe67ae
2015-09-09 23:54:01 +00:00
Jonathan Hart
a86254889a Add optional 'name' field in BGP speaker config
Change-Id: If6f4567cd1a7c29b0424cc84bef050efe392544c
2015-09-08 23:55:25 +00:00
Jonathan Hart
4cb3988138 Moved ProxyArp, SDN-IP and BgpRouter to use new config format.
The new config format is based on the new network configuration subsystem.

Includes a few config fixes to NetworkConfigLoader and InterfaceManager.

Change-Id: Id7f766736decb7afb6b63c2731d3baba9fc7c764
2015-08-28 21:23:22 +00:00
Hyunsun Moon
cf732fb688 ONOS-2711 Replaced short to TpPort for tcp/udp ports
Change-Id: Ibf0474b5369d11d377fd33cf5ab48083cbca3308
2015-08-25 16:10:35 +00:00
Jonathan Hart
96c5a4ab2f ONOS-2513 Fix entire MP2SP intent failing on partial connectivity loss
* Added PartialFailureContraint to MP2SP intent to allow partial connectivity.
   This means the intent remains installed as long as at least one ingress point
   can reach the egress point.
 * Intents with this constraint are recompiled on ObjectiveTracker triggers
   even if not in FAILED state
 * MP2SP intent compiler can compute a partial tree if constraint is set
 * ObjectiveTracker recompiles intents on any link event
 * SDN-IP MP2SP intents now use PartialFailureConstraint

Ported from onos-1.2 branch.

Change-Id: I32eaa198fae1dfba021d9251c8f855573f0e1d7d
2015-08-13 17:38:55 +00:00
Jonathan Hart
e30fcda4cf Fix for SDN-IP installing wrong point-to-point intents.
Fixes ONOS-2514.

Ported from onos-1.2 branch.

Change-Id: I0d3d6012daa8dd2a45707a58cf6e745314f6dc24
(cherry picked from commit 0c763e9b064eac86d866b8fdfea25baec104324e)
2015-08-11 17:48:16 +00:00
Jonathan Hart
2a9ea49521 Fix bug where SDN-IP installs more intents than needed
Ported from onos-1.2 branch.

Change-Id: Ic085d5033105e0c688369a71de077c7541d26dbf
(cherry picked from commit 1258f86b564be76771c5cd6e1f807c4bc529168a)
2015-07-30 23:29:37 +00:00
Sho SHIMIZU
fe89d3ac3a Simplify the statement
Change-Id: Ie9b46c6c3f04322751109adc5896bb51c848a18a
2015-07-01 02:16:43 +00:00
Pingping Lin
8a524718cb paths should from bgp peer connect points for Internet-to-local traffic
Change-Id: I04c7f5b8efc9279ee3e15fb27435a2201cccb5f1
2015-06-25 20:32:46 +00:00
Jonathan Hart
75c470a9f4 Fix for logic error in SDN-IP.
Change-Id: Idf1f8713a3d61972f5585dcf307db44a6677aa46
2015-05-22 17:55:27 +00:00
Jonathan Hart
3cc2330018 Fix for NPE in SDNIP
Change-Id: I368db30e40b2081e92901e413f8c87e9db98e086
2015-05-14 23:24:32 +00:00
Sho SHIMIZU
3310a34163 Remove "public" to follow our convention
Change-Id: Ic5fa8744cbcb4c704780c8467ae0f31fce3327ce
2015-05-13 23:44:57 +00:00
Sho SHIMIZU
fbc80e5348 Pull out inner-classes from Criteria to be independent classes
Make constructors of sub-types of Criterion package private for
limiting instantiation only from static factory methods in Criteria

Change-Id: I1fb1e9d003288a778a49e758549a92b66bf3cfdf
2015-04-29 00:44:59 +00:00
Ray Milkey
34c959066d ONOS-533 Fix copyrights
- Any files created in 2014 and modified in 2015 got a copyright of
  2014-2015
- Used canonical form of 2014-2015 to be inclusive of extra years.
  Some files had 2014,2015

Change-Id: If9a133618873e4000b8f10299bde7c870eb1fbd5
2015-04-15 17:41:07 +00:00
Pingping Lin
c9e16bfa1d add a virtual gateway for reactive routing
There is no physical gateway in SDN network.
  However a host needs a gateway when it tries to communicate with a remote host.
  So we designed a virtual gateway for SDN network.
  The virtual gateway can have multiple IP addresses.
  Each IP address is used as the default gateway address of an IP prefix.
  We only configure one MAC address to the virtual gateway.
  You can choose any MAC address from the BGP speakers as the virtual gateway MAC address.
  We configure this MAC address staticly in the sdnip.json configuration file.

Change-Id: I2a72bef797fc55d25bb5473e8fca624ad659e1d1
2015-04-15 16:31:14 +00:00
Pingping Lin
e28ae4c801 sdn-ip reactive routing
This module can handle 3 cases:
   (1) one host wants to talk to another host, both two hosts are in SDN network.
   (2) one host in SDN network wants to talk to another host in Internet.
   (3) one host from Internet wants to talk to another host in SDN network.
   In all cases, we use MultiPointToSinglePointIntent.

Change-Id: I80dd954bd608e52b45b993f3c27e67636a7105d9
2015-04-07 12:31:07 -07:00
Ray Milkey
ebc5d22159 Refactor connectivity intent creation to use builders
- Each connectivity intent now has only one constructor
- Intent constructors are now private for leaf classes and
  protected for classes that can be derived from
- Each intent class has a Builder class that accumulates
  parameters for intent creation
- Each intent class has a public static builder() method
  to create a builder
- Each Builder class has a build() method to create the
  intent from the accumulated parameters
- Added keys to a few intent types that were missing them
- Tightened up usage of checkNotNull(), taking advantage of
  the return value to save some lines of code
- Modified callers to use the builders instead of directly
  calling the constructors

Change-Id: I713185d5ecbadbf51f87ef7f68fec41102106c78
2015-03-23 21:12:14 +00:00
Ray Milkey
3e3ec5f786 [Cardinal] Add builders for Intents and remove extra constructors.
Starting with PointToPoint intent to see how it looks

Change-Id: I5366a05d657ceaad18c03b95cd71f5d1107200e2
2015-03-18 22:17:54 +00:00
Pavlin Radoslavov
2aa1f32c84 Fixes related to SDN-IP intents:
* Use intent priority when installing multipoint-to-singlepoint intents:
   the loinger the routing prefix match, the higher the intent priority.
   This is needed to perform correctly the equivalent of longest prefix
   match in the switch.
 * Use intent priority for the point-to-point intents: the priority for
   this BGP-related control traffic is higher than the
   multipoint-to-singlepoint intents.

 * Use the appropriate Key when installing multipoint-to-singlepoint intents.
   The key is the network (destination routing) prefix address represented
   as a string.

Change-Id: Ic489a1e5f31adceb4c9d1dcea52293a2b3db0b79
2015-03-11 17:59:44 -07:00
Brian O'Connor
6b5281356b Adding emptyTreatment() and emptySelector()
Note: There was a change that adds a DROP action to
a traffic treatment if there are no other actions present.
To get a traffic treatment without the drop rule, use
emptyTreatment()

Change-Id: I1f23ed5e1fa7519eb94fcafa85facbad815d5e9c
2015-03-10 16:48:45 -07:00
Pavlin Radoslavov
87dd930f2e Use a cleaner mechanism to test whether an IP address or prefix
is IPv4 or IPv6.

Change-Id: Ia88f76be87a30573a50eeeedb78d98713ac1ae27
2015-03-10 13:53:24 -07:00
Pavlin Radoslavov
a853709a6b Fix IPv6-related bug in SDN-IP.
- Use the correct API to set an IPv6 prefix in the matching condition

Change-Id: I7911a7e886024bff5442821816e4481570ec8172
2015-02-23 20:06:24 +00:00
Jonathan Hart
2da1e603a9 Renamed routing packages to foo & foo.impl pattern.
Plus added some package-info.java files.

Change-Id: I0b68a7f4cea7a5f089b37b1a1c016d1c3b7a8702
2015-02-18 19:10:19 -08:00
Jonathan Hart
90a02c2539 Moved routing/bgp config into common routing bundle.
This allows the configuration to be used from multiple applications.

 * The class that reads the configuration file is now a service so that
   config can be consumed by components in other bundles.
 * Name of config reader classes has been generalized to RoutingConfigService
 * All config has been added to RoutingConfigService, instead of having
   two service interfaces like we did previously

Change-Id: Iaec9daf0f5b72abe2d6709fb75188d6d81947478
2015-02-18 18:52:35 +00:00
Jonathan Hart
cb726fc789 Fixed SDN-IP tests after ONOS-874 merge.
Change-Id: Ie14f64ecf7f9bc72120f837ef9cd2b8904cc4bd2
2015-02-17 11:01:33 -08:00
Brian O'Connor
532d91ccaf fixing import in IntentSyncTest
Change-Id: I7e7a87f9e012c96b1b64c02f6ec2fe1ec6c0215c
2015-02-13 14:23:56 -08:00
Jonathan Hart
b3b8a0aa7d Make SDN-IP submit route intents.
Change-Id: If0c7be8472fed46e48bfd22f9de4b15b8a8cf2ce
2015-02-13 14:16:21 -08:00
Ray Milkey
5ad3966707 Fix bug where the values of keys could change
Change-Id: I34993c413c3f928690701a055ec38c1e7029b473
2015-02-13 14:13:19 -08:00
Jonathan Hart
4fd4ebb9d0 Continue updating GossipIntentStore to new API.
Includes changes to ECMap to support generating timestamps based on values.

Change-Id: Ide55979aaa4f7757e67a6b3efed6e51d45ee318c
2015-02-13 14:12:30 -08:00
Ray Milkey
f9af43c2ea Refactoring of IntentId based APIs
- getIntent
- getIntentState
- getInstallableIntents

Change-Id: I6d2073dfa165e0e5adcef46fe5908b563b481a43
2015-02-13 14:10:55 -08:00
Sho SHIMIZU
4931ee5dc6 Delete unnecessary semicolon
Change-Id: I2eaa4d900342a665f6dc4731a298b30a9ec40696
2015-02-13 14:10:41 -08:00