345 Commits

Author SHA1 Message Date
Thomas Vachuska
0249b5377d Enhancing intent-perf logging
Fixing defect in distributed app mgmt
Reducing DB manager heartbeat aggressiveness

Change-Id: I9ba948a2b2166625c56566502143c0d27f9a2c44
2015-02-21 01:32:52 +00:00
Ray Milkey
144eec5207 Fix Javadoc warnings
Change-Id: I366f2b9f3c11645a3392e0689619bfbad7a9eedd
2015-02-20 20:54:26 +00:00
Dusan Pajin
0d1d48f474 Additional configuration parameters in onos-app-fwd
Additional configuration parameters that can be configured in the configuration file (org.onosproject.fwd.ReactiveForwarding.cfg),
that determine application behavior:
- packetOutOfppTable - application will use OFPP_TABLE port in PacketOut message, sending packet back to the OpenFlow pipeline, instead of using switch port
- flowTimeout - configuring reactively installed flow timeout
- flowPriority - configuring reactively installed flow priority
- matchDstMacOnly - reactively installed flows will match only destination MAC address - behavior as legacy L2 switches. This options overrides all other options below.
- matchVlanId - reactively installed flows will match default condition with additionally with VLAN ID field
- matchIpv4Address - reactively installed flows will match default conditions, plus IPv4 address and Protocol field
- matchIpv4Dscp - reactively installed flows will match default condition, IPv4 + with IPv4 DSCP and ECN fields (need matchIPv4Address enabled)
- matchIpv6Address - reactively installed flows will match default condition with IPv6 address and NextHeader field
- matchIpv6FlowLabel - reactively installed flows will match default condition with IPv6 address and IPv6 Flow Label (need matchIPv6Address enabled)
- matchTcpUdpPorts - reactively installed flows will match default condition with IPv4 or IPv6 address and TCP/UDP ports (need matchIPv4Address or matchIPv6Address enabled)
- matchIcmpFields - reactively installed flows will match default condition with IPv4 or IPv6 address and ICMP type and code fields (need matchIPv4Address or matchIPv6Address enabled)

Change-Id: Ieef67a1a12f6341d4de3b07e1226affec66d361a
2015-02-20 19:34:35 +00:00
Jonathan Hart
e6f8400f83 Cleaned up dependencies after routing code shuffle.
Change-Id: I1388749f77ef9b3b327df2ee745fdb7cec510708
2015-02-20 19:08:00 +00:00
Brian O'Connor
bcfeadb223 Improvements to IntentPerfInstaller
* adding total to log
* using local devices and keys
* added delay between cycles
* print time if cycle is delayed

Change-Id: I16a3c041dd2e920695ab782d22fe6db8abad7da8
2015-02-19 21:51:29 -08:00
Thomas Vachuska
718d399045 Fixing javadoc configuration and adding some package documentation.
Change-Id: Ibeb58b954b1d5ed1939a70afda3f5523807cee23
2015-02-19 19:08:12 +00:00
Brian O'Connor
6ccba96c49 Adding intent performance testing app
Change-Id: I1b3a8b6e5b9230066d31f8f520e212973b6f703e
2015-02-18 21:04:54 -08: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
alshabib
78baaf2af2 fix for flows stuck in pending add state
Problem is due to two packet requests from different services
for the same selector resulting in the same flow rule.
Since these rules where the same, only one ended up on the data plane,
but sadly only the first request made it into the flow service meaning
that in cases where what was in the flow service does not match what is
on the dataplane resulting in a PENDING_ADD situation.

Change-Id: I4c03e753be6e198e04f0b5263a2aa8cf2edc51e1
2015-02-19 03:05:17 +00:00
Jonathan Hart
f582920bb5 Initial skeleton of BgpRouter app.
Added BGP tunnelling and received routes.
Added pushing groups and can now ping through the router.

Change-Id: I21a265bd72e40fc430bd392201fadccbdd67be94
2015-02-18 14:31:46 -08:00
Thomas Vachuska
411f977819 Fixed typo in optical/app.xml
Change-Id: I348aa543aade347c73c75ae90eccf657934f23bc
2015-02-18 13:36:20 -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
alshabib
456e990c41 option to not remove flows in flow-tester.py
Change-Id: I6d0be801b628cd6cf3678d5c846fb99cabf41ca3
2015-02-18 19:35:39 +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
Hongtao Yin
36f79aa93b Updated calendar server code. Added intent for bi-dirctional path. Added latency as one more parameter in constraints.
Added exception catch for parsing parameters.

Fixed Jenkins checking errors.

Use intent key and 2way intent P2P setup.

Change-Id: Ib2bd25deb793b2a34179cbf8794ca5aa3e427f91
2015-02-18 06:29:22 +00:00
sangho
32a59323b2 Reflects the change of TrafficTreatment.Builder.setMpls() input paramter (int to MplsLabel)
Change-Id: Icc4345e60008c8d4f8c50cd8edab0622f7e0b6fc
2015-02-18 00:57:06 +00:00
Marc De Leenheer
b473b9dd2d Injecting topology through JSON ConfigProvider works for multi-instance (ONOS-490).
Change-Id: Ib977f4cf9a59ddec360072891fd803c6f9ee84f1

Injecting optical device annotations and ports works for multi-instance (ONOS-870).

Change-Id: Icdde16ef72fc4e47eec7213250b04902083f0537
2015-02-17 23:55:59 +00:00
Jonathan Hart
cb726fc789 Fixed SDN-IP tests after ONOS-874 merge.
Change-Id: Ie14f64ecf7f9bc72120f837ef9cd2b8904cc4bd2
2015-02-17 11:01:33 -08:00
Srikanth Vavilapalli
ed12ae5e81 ONOS-985: Sample integration test application for group subsystem
Change-Id: I68352f922e5c7a0800fcc4fa839955769bf925a6
2015-02-17 17:58:49 +00:00
Michele Santuari
4b6019e449 ONOS-631 #Initial MPLS intent implementation
Change-Id: I6f906b953f06f395cc67e612648802e333c0e581
2015-02-14 10:00:48 +00: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
Ray Milkey
2da272b94e Removed deprecated classes/interfaces
IntentBatchLeaderEvent
IntentBatchListener
IntentBatchService

Change-Id: I712f0eb0b26d9bfaa820a14022c1dd30943fab27
2015-02-13 14:10:45 -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
Ray Milkey
9d810f6bed Fix some JSON related deprecation and javadoc warnings
Change-Id: If39c0bbe578794c8308b24d9290e269bd14b9219
2015-02-13 20:28:06 +00:00
Kunihiro Ishiguro
9322445f11 Merge onos-app-proxyarp with onos-app-proxyndp.
Change-Id: I6e25c4575544e159ac9f7749fe07a742bfd6f748
2015-02-12 22:16:48 +00:00
Ray Milkey
7b3981b529 Fix Javadoc warnings
Change-Id: I2975b3d7bb581d5574969037e1f99401b94ef3dc
2015-02-12 09:15:44 -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
alshabib
3a0e9f550e Added test code to test the flow subsystem performance
Change-Id: I1a7c68492760a63b7d092c3ca71e4964123c8aa7
2015-02-11 21:29:18 +00: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
Kunihiro Ishiguro
f1bff5075a WIP: proxy NDP for IPv6.
ONOS-924

Need to implement test cases.

Change-Id: I86b0cb8c3c8d75f7276778e04c1a7166c9bb2f59
2015-02-05 08:58:39 +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
320e6c97f8 Implement some of the missing Selector and Match Conditions
Work toward ONOS-509

The following match conditions are added/implemented:
 - UDP_SRC, UDP_DST
 - SCTP_SRC, SCTP_DST
 - ICMPV4_TYPE, ICMPV4_CODE
 - IPV6_FLABEL
 - IPV6_ND_TARGET
 - IPV6_ND_SLL
 - IPV6_ND_TLL

Also:
 * Renamed method
     TrafficSelector.Builder.matchInport(PortNumber port)
   to
     TrafficSelector.Builder.matchInPort(PortNumber port)
   (for consistency with the corresponding method(s) elsewhere)
 * Reordered the code for some of the existing matching conditions
   to follow the order in the OpenFlow spec, so it is easier to
   cross-reference such code.
 * Added missing Javadoc
 * Added few more Criterion.Type values as per OpenFlow spec 1.5.0

Change-Id: I7fc1656f32d8a7280c67d7827e4aa84528b0eafc
2015-02-03 14:40:08 +00: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
Ayaka Koshibe
8851ed97c7 Trim whitespaces before and after .cfg file arguments.
Change-Id: Iaf165b4e289075376deab806d3c7c15169e3dca7
2015-01-23 17:47:04 +00: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
Jonathan Hart
3cfce8e3ac Moved default flows logic into the PacketManager.
This prevents us duplicating code in each of the apps and allows us to manage
packet requests better in the future.

Change-Id: I5656b2f0f3cecd3e42fe7b4a0a5ab7cb6582bb25
2015-01-16 00:26:30 +00:00
Brian O'Connor
025fb4486f Adding more T-ports to big topo
Setting up bidirectional T-ports in OpticalPathProvisioner

Change-Id: I4e97b2eb53d3d4182aae9c98a227de982f492950
(cherry picked from commit d6843bed27c4b2b4e95984c99de3c54edcefc67f)
2015-01-15 14:02:11 -08:00
Brian O'Connor
c7bdd8c7cc Improvements to OpticalPathProvisioner
- Support for more T ports
- Addresses ONOS-440

Change-Id: Iafbe57b4797f272678696b8b2e46e5a6487e7428
(cherry picked from commit 6aba384469ce820c9e94f0f2991c4a84a691d4f8)
2015-01-15 14:01:31 -08:00