144 Commits

Author SHA1 Message Date
Thomas Vachuska
41e8c18f22 Simplified app packaging to use just project.version rather than short.version.
Change-Id: I58c30b663810de42890b75bbcef5c7dc5a4a87ba
2015-04-21 21:23:11 +00:00
Thomas Vachuska
586afd8e2b Removing need for boilerplate app.xml; Instead defining onos.app.name and onos.app.origin (optional) is sufficient to trigger generation of boilerplate app.xml and features.xml files.
Change-Id: Ied8f3f8bf8774fae85e11c79a733b34dd5868949
2015-04-20 14:36:02 +00:00
Thomas Vachuska
a7a0f560a2 Converting builtin applications to be delivered in a self-contained manner via OAR files.
Change-Id: I5b7c6939aacc263248868fac2e0f69124c5f3609
2015-04-16 14:04:35 -07: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
Thomas Vachuska
0fa583c493 GUI -- Added applications view.
Fixed table.js column width computation.
Fixed app.xml files to leave out ONOS from description.

Change-Id: Icfe323e63c7965dd8c3a268421ea58065c5c8236
2015-03-30 23:46:18 -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
Thomas Vachuska
ee4f9377c2 Adding more app.xml files.
Upgrading app.xml versions.
Cleaned-up features.xml.

Change-Id: I7c5a85480568ffe35281286aefc9aa4e1b3b2afd
2015-03-18 22:14:50 -07: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
Brian O'Connor
6ea48a22fe Starting snapshot 1.2.0-SNAPSHOT
Change-Id: Iffa1055c22448849353ede6581c277f4d3de78d8
2015-03-17 20:07:20 -07:00
Brian O'Connor
91d9019b24 Tagging ONOS Blackbird release: 1.1.0
Change-Id: Iee1accb8f83e03a1c4b2250d36d48aefd6383c97
2015-03-17 19:45:58 -07: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
1545b1ef08 Starting snapshot 1.1.0-SNAPSHOT
Change-Id: I8caca4df60027426c18b51c1b35c313fe9ac1c10
2015-03-11 16:38:23 -07:00
Brian O'Connor
20fa3a45f9 Tagging 1.1.0-rc2
Change-Id: I1fa0feb1b790f79baa465fd82965433e109b34b2
2015-03-11 16:23:07 -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
Brian O'Connor
266ac66643 Starting snapshot 1.1.0-SNAPSHOT
Change-Id: I2abf73c248c04f0559f97b313be034b48761695a
2015-03-01 07:36:09 +00:00
Brian O'Connor
352236e289 Tagging 1.1.0-rc1
Change-Id: I9c95f8309e1c98bc1a25eeaad1962b4d28257261
2015-03-01 07:36:08 +00:00
Saurav Das
c25c52285d Adding a dependency to sdnip's pom file so eclipse doesn't complain
Change-Id: Ic79fbc3ed6208472df43355f8c5a73f30511e438
2015-02-25 01:44:05 +00: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
e6f8400f83 Cleaned up dependencies after routing code shuffle.
Change-Id: I1388749f77ef9b3b327df2ee745fdb7cec510708
2015-02-20 19:08:00 +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
Thomas Vachuska
62ad95f3f1 Added ability to upload apps as both app.xml or app.zip.
Added a number of app.xml files for built-in apps.
Added ability to install & activate in one command.

Change-Id: I3fa5fa487ef76d9fe3da4d6dce8045d538cba423
2015-02-18 21:33:52 +00: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
Brian O'Connor
03406a4702 IntentStore interface changes
Change-Id: Ifa8728fb4c7edcc6d58a5e071f7252493ab2a578
2015-02-13 14:07:52 -08:00
Jonathan Hart
d24fafbc7c Move BGP listen port configuration to BgpSessionManager component
Change-Id: I445bff180740fededacaa59441fc53332cc3d482
2015-02-11 18:48:47 -08:00
Jonathan Hart
41349e9b46 Moved BGP code and Router code into their own bundle.
The main goal of this is to allow routing code to be used by multiple
applications.

Changes include:
 * Created an onos-app-routing bundle and moved BGP code and routing code
   into it.
 * Created an onos-app-routing-api bundle as a common API bundle between
   onos-app-routing and onos-app-sdnip, to prevent circular dependencies.
 * Moved API classes into onos-app-routing-api bundle.
 * Made Router and BgpSessionManager into OSGi components. This is not quite
   clean, because there is still a chain of start() method calls from SdnIp
   through to BgpSessionManager to preserve startup order. This should be
   revisted so components can be started using activate()
 * Created BgpService and RoutingService APIs to glue different components
   together.
 * Many unit test changes. A lot of the previous unit tests spanned the
   Router and IntentSynchronizer classes, but this is not possible any more
   since these classes are in different bundles. I had to rewrite some of
   these tests so that each unit test class only tests one real class. A
   nice side-effect is that the tests are now simpler because each test
   tests less functionality.
 * Removed SdnIp test seeing as it doesn't run automatically, was already
   broken and has been largely superseded by other unit tests and the nightly
   functional tests.

Change-Id: I70ecf5391aa353e99e7cdcf7ed38a530c87571bb
2015-02-11 18:20:57 -08:00
Jonathan Hart
552e31f991 Create a formal interface between the RIB and FIB.
* IntentSynchronizer implements a more generalized FibListener interface
 * Updates to the FIB are signalled with FibUpdate to any FibListeners
 * generateRouteIntent logic has been pushed down into the IntentSynchronizer

Change-Id: I6f0ccfd52ee4e16ce9974af5ee549d4ede6c2d0e
2015-02-11 05:43:24 +00:00
Pavlin Radoslavov
f8a0f6c2e4 Fix for bug ONOS-959: BgpSessionManagerTest unit test failure
Previously, when checking the winning BGP routes, we expect-and-wait until
the size of the table with the winning routes has certain size, and
then we verify whether it contains a particular value.

This is error-prone and time-sensitive. For example, if we are testing
whether a particular route from one BGP peer is replaced with the
same route from another BGP peer, the test might fail because the
table size doesn't change.

Modified the unit test to expect-and-wait until the expected route
is received.

Also, fixed some of the paragraph tags in some of the Javadocs.

Change-Id: Ia96dc7c412e78bbc9279dd935dec6919096adeb3
2015-02-04 16:03:51 -08:00
Pavlin Radoslavov
4b5acae6c4 ONOS-734 Add unit tests for 4 Octets AS numbers in SDN-IP
* Fix a bug in the storing, handling and verification of the AS numbers
   with 4 octet AS capability is used.

 * Add an unit test to test the decoding and parsing of supported
   BGP Capabilities: Multiprotocol Extensions AFI/SAFI, and 4 octet AS.

 * Minor refactoring of the BGP unit test framework.

Change-Id: I474b356bc00369c307ac0c5c214b065c1cc0c52c
2015-01-29 17:29:37 +00:00
Pavlin Radoslavov
8a36ce35a6 ONOS-866: Refactor the storing and handling of BgpSession info.
Moved the local and remote BGP session info to a separate class BgpSessionInfo.
No functional changes.

Also, removed methods TestBgpPeerChannelHandler.prepareBgpKeepalive(),
prepareBgpNotification() and prepareBgpMessage() from the unit tests.
Instead, use the corresponding methods in the BGP implementation itself
to generate the BGP messages.

Change-Id: I7f4b6ad4f6995c242cd8a9848ea527b1fcac9c11
2015-01-29 17:26:27 +00:00
Thomas Vachuska
9ea3e6f477 ONOS-841 Renaming ONOS threads to simplify profiling.
Change-Id: I83a96bd875a0af9f3b78c06a9f9107c093b8e64e
2015-01-23 16:34:22 -08:00
Ray Milkey
f25d1353d3 Fix Javadoc warnings
Change-Id: I857d8bd7d9fc0862f3c0097d3e65cbedfb997b0f
2015-01-23 15:47:00 -08:00
Pavlin Radoslavov
492cc3ab10 Fix startup dependency between features onos-app-config and onos-app-sdnip:
* Expose NetworkConfigReader as a service - NetworkConfigService
 * Add reference within SdnIp to NetworkConfigService

This fixes bug ONOS-735

Change-Id: I85cdd0ce0a4f6293e8a5633bddd140a23ecddc10
2015-01-23 06:33:02 +00:00
Jonathan Hart
6cd2f3594b Implemented VLAN-to-VLAN routing support for SDN-IP.
SDN-IP can now support peering and routing between hosts that are connected
on VLANs.

Changes include:
 * Updated NetworkConfigReader app to read (optional) VLAN configuration
 * Updated VlanId to support the 'VLAN present' value - in a match this means
   that a VLAN tag must be present, but it can contain any value.
 * Updated SDN-IP to set destination VLAN tag values if appropriate
 * Updated FlowModBuilder and FlowEntryBuilder to support 'VLAN present' value
 * Slew of test updates.

Change-Id: Ief48cede5c1fd50e1efa851da5a97fb4a8edda29
2015-01-22 03:28:52 +00:00
Kunihiro Ishiguro
6e2ee15aa2 ONOS-783 Update PeerConnectivityManager to handle IPv6.
Change-Id: I0c8558cec2f7fa5f772cc126c6b74e5d4531676b
2015-01-21 18:02:48 +00:00
Jonathan Hart
43ae2933cb Updated SDN-IP config to support 64-bit port numbers.
Fixes ONOS-776.

Change-Id: I0629a140835cd3277eb362c1909b5b806c6fcec0
2015-01-20 11:08:20 -08:00
Charles M.C. Chan
bc0e84dadf Fix javadoc warnings
[WARNING] /Users/rascov/onos/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/SuppressionRulesStore.java:88: warning: no description for @throws
[WARNING] /Users/rascov/onos/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/SuppressionRulesStore.java:146: warning: no description for @throws
[WARNING] /Users/rascov/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java:706: warning: no @param for ctx
[WARNING] /Users/rascov/onos/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java:751: warning: no @param for ctx

Change-Id: Iae4d1826249e3612e1a16d1a9eeaebdc4c032f35
2015-01-13 23:59:06 +08:00
Pavlin Radoslavov
3a0a52e462 Added IPv6 routing support to SDN-IP, and integrated it with BGP:
* The routing entries as received from BGP can be either IPv4 or IPv6
 * The CLI prints the IPv4 and IPv6 routes
 * The BGP peering is still over IPv4, so configuration-wise the IPv6
   routes from the eBGP peers have to be configured to use the IPv4 peering.
 * The integration/testing with the IPv6 Network Discovery Protocol is not
   done yet.
 * The integration/testing with IPv6 intents is not done yet.

Also:
 * Moved nested class BgpSessionManager.BgpRouteSelector out of the
   BgpSessionManager class.
 * Code cleanup.

Change-Id: I9f2dbe4395a72d353bbf215a8a14b01b53c3423f
2015-01-07 19:12:26 +00:00
Pavlin Radoslavov
2020eac8aa Reorder some of the import statements (onlab/onosproject) so they
are listed alphabetically.

No functional changes.

Change-Id: I38cd0b8a506675a8d054860d2934aebf276a7a6a
2015-01-06 17:26:10 -08:00
Pavlin Radoslavov
c7648ee53d Work toward IPv6 support in BGP: implement decoding of the
BGP UPDATE attributes: MP_REACH_NLRI and MP_UNREACH_NLRI (RFC 4760).

Note: currently, the IPv6 NLRI is decoded, but it not used.

This work is in the context of ONOS-422.

Change-Id: Ia61b94dedfe0b1a7d7f563e805a3086f56d4da03
2015-01-07 01:02:20 +00:00
Kunihiro Ishiguro
923d9d8104 4 Octet AS Path Capability is sent to neighbor.
4 Octet AS in AS_PATH is parsed.
Now BGP can establish 4 Octet AS Path enabled peering with neighbor.

Change-Id: Ibb72e8037554928584ccafe6a14b82ffaca7e2cd
2014-12-30 05:01:32 +09:00