170 Commits

Author SHA1 Message Date
Jonathan Hart
9e51ba5c37 SDN-IP: restrict egress port from ingress port list of MP2SP intent.
The MP2SP intent doesn't support having the egress port in the in ingress
port list.

Change-Id: I84471b9fce9c1dc072f3dce3d907ba86ba65a575
2016-08-19 21:26:15 +00:00
Sho SHIMIZU
891162b99f Remove API deprecated in Falcon
Change-Id: I80a8afbcd577a9cce174d3fc1e511b711d3c68d4
2016-06-16 07:46:02 +00:00
Luca Prete
d814e2172a Rename SDN-IP test file
Change-Id: I11eb979ab4bf003741e318e475a899f141f63027
2016-05-23 10:13:13 -07:00
Luca Prete
e9511515d1 ONOS-4534 Improve VLAN support in SDN-IP
Change-Id: Ib9cf64d8f896462ec18260c4371859f447e7c4de
2016-05-23 16:13:24 +00:00
Luca Prete
2705d66e80 ONOS-4403 Remove intents using appId when apps get deactivated.
Change-Id: Ieaea8aeff2f2c29287a3e2eea33654fa22d38c09
2016-05-06 16:28:00 -07:00
Jonathan Hart
de6e203207 Remove old config classes from routing bundle.
Change-Id: Ifc8ff03674c1cfb9e3cde86b9994b8362744840d
2016-04-20 22:06:11 +00:00
Jonathan Hart
a2eb9ffdde Adapt FIBs to new route interface
Change-Id: I8ac19ad578aac4607fd8319186b6568a21edc1fd
2016-04-18 17:21:36 +00:00
Brian O'Connor
5ab426f9ff Updating copyrights
New format: 'Copyright .year-present Open Networking Laboratory'

Change-Id: I1a9e58b355b775e75245ad875a2d7a4df3f03098
2016-04-09 01:20:21 -07:00
Luca Prete
8f2a3ce293 Adding VLAN to PeerConnectivityManager
Change-Id: I695087c108dc4d9d2da61992019d8fa3d08c61c1
2016-03-31 17:07:50 +00:00
Jonathan Hart
b14221c357 Add support for reconfiguring interfaces in SDN-IP.
Change-Id: I2ea85d85432e661c3cbdca5e5a8b16678a242369
2016-03-24 21:01:31 +00:00
Jonathan Hart
00cdddaa60 Send PIM Join/Prune messages based on events from the McastService.
Also change Interface to return a list of addresses rather than a set
to allow applications to rely on the order of configuration

Change-Id: Ie7f62fee507639325ee0a77b8db4088dae34597e
2016-02-19 18:53:12 +00:00
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