1129 Commits

Author SHA1 Message Date
Sho SHIMIZU
2de9449f07 Inherit network resource information from a high level intent
This patch fixes ONOS-1677

Change-Id: I37d8742eb1a03b56d1e47d30d9342546ab42d23b
2015-04-28 17:49:38 +00:00
Saurav Das
bd7f742d85 Adding Device Listiner to BgpRouter so that filtering rules are sent to the
driver only after the device is available.

Change-Id: I377402b87cee6c02c087efbcc4f0cff4f19e1ca3
2015-04-24 01:59:11 +00:00
Thomas Vachuska
62f04a47f6 ONOS-1731 Fixed app gossip store & manager to deal with staggered app load on startup.
Change-Id: Ie88f5659646c11b906a63204f97083b6deb64adb
2015-04-24 01:09:13 +00:00
Saurav Das
3d03826578 Fixes bug where driver gets initialized only when device is available.
More explict handling of versatile forwarding flows in corsa driver.
Moving TunnelConnectivityManager to use flowObjectives instead of flowRules.

Change-Id: If43023f30a6e7a028dfdefbe1ffbcc710a1c7be3
2015-04-23 21:50:42 +00:00
jcc
3d4e14a72b FlowRule private extension refactor.
1.merge private flow into regular flowrule subsystem.no mirror code any
more.no change flowrule api.
2.define a rich-data-type to carry private flow.
3.modify OpenFlowRuleProvider.class to support for 3rd party private
flow.i don't know whether is suitable.because this class name is
relative with open flow protocal.
4.fix some junit test bug caused by modification of FlowRule interface.

Change-Id: I6c54d1e97f231a75bd1b416f0893e0379613d7ce
2015-04-23 04:11:34 +00:00
Jonathan Hart
17d0045c99 Upgrade packet requests to use flow objectives API.
Addressed a few issues found while using the flow objectives across a cluster:
 * Flow objectives should be installable from any node, not just the master.
   Therefore we need to ensure all nodes initialize a driver for each switch.
 * We no longer store a list of objectives that are waiting for the switch
   to arrive. If the we don't know about the switch yet we'll try a few times
   over a few seconds to find it, but after that we'll give up and report an
   error to the client.
 * Default drivers need to be available when the FlowObjectiveManager starts
   up, otherwise it is common to get flow objective requests before any
   drivers have been loaded.

Change-Id: I1c2ea6a223232402c31e8139729e4b6251ab8b0f
2015-04-23 00:16:29 +00:00
Saurav Das
3ea46622c8 Removing dependency on lower level drivers for the BGPRouter application.
Also a couple of bug fixes

Change-Id: I8f2ec58ed3403ae03cf7c068dabb30ae4272ff85
2015-04-22 14:08:43 -07:00
Thomas Vachuska
6cba495a6f ONOS-1736 - Modified PacketManager to register packet request flows using the core app id, instead of the requesting app id. This is to prevent packet request flows from vanishing when app removes all its flows. This is a provisional fix until packet requests allow removal via reference counting or a similar tracking strategy.
Change-Id: Ib0e53ae8c6b5ae030a9c17a34407a5897027127b
2015-04-22 12:38:22 -07:00
Thomas Vachuska
db320abb9b ONOS-1736 - Moved log.warn for property reset to be emitted only when the property itself is not known; it will not be emitted when the component is not known.
Change-Id: Ib0ae105336c2fb2bcddfcf2c8a69ff6a2c501a59
2015-04-22 09:03:33 -07:00
alshabib
f6ea9e624b Implemented a globally unique next id generator in FlowObjectStore
Change-Id: Ib98b2996e1ebcca56ad816ea94f25d838c5f4d44
2015-04-21 17:08:26 -07:00
Sho SHIMIZU
1b46a97482 Inherits the constraints of the higher level intent
Fix ONOS-1247

Change-Id: I8a110bd3cee296f726a63fd1034b5a8f7dc7f0b3
2015-04-21 17:12:45 +00:00
wei wei
89ddc320e9 Generic Tunnel Subsystem (ONOS-1276) and L1/L0 (OTN/ROADM)extensions (ONOS-676):
1)Initial Work for ONOS-676: OTN/ROADM (L1/L0 NE) support in ONOS by extending the device/port modeling;
  - extending device type to include L1 OTN NEs;
  - extending port type to include ODUCLT port(T-port), OCH-port(L-port), OMS-port (WDM-port);
  - more standard annotations related to OTN/ROADMs support will come from PCEP provider as well as TL1 providers;
2)Intial Work for ONOS-1276: generic Tunnel subsystem in ONOS for both packet (L3/L2) networks and optical (L1/L0) networks
  - supporting PCEP framework, which is capable of interacting with the PCEP provider;
  - supporting any other kind of tunnel provider;
  - each Tunnel is associated with at least two Labels (abstracted logical entity/Id for virtualization of physical port);
  - same type of Tunnels can be formed as a reachablity graph for other services and NB applications use;

Change-Id: I29af495f90e179e2c5d8753b76e02889a3b4355b
2015-04-21 17:11:34 +00:00
Ray Milkey
6e0fb30289 ONOS-1334 - Allow multi to single intent across a single switch
Change-Id: I8be3dbc403ea1202fd496e666955402247f71bf1
2015-04-20 10:28:56 -07:00
alshabib
2a441c6807 Flow Objective implementation
Provides an abstraction which isolates the application from any pipeline
knowledge. By using the provided objectives applications can express
their forwarding desires in a pipeline agnostic way. The objectives
are then consumed by a driver for the specific device who converts them
into the appropriate pipeline coherent flows.

Change-Id: I74a68b4971c367c0cd5b7de9d877abdd117afa98
2015-04-17 22:57:56 +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
alshabib
a28f69af70 FlowObjectiveManager not activated by default.
Caused the Corsa Driver to be triggered and provision
incorrect set of rules.

Change-Id: I96eadeb0eeac9ef94e6187be08faf68b0aa8caaf
2015-04-14 05:12:14 +00:00
Sho SHIMIZU
fcf861a06a Refactor: Flip condition to reduce the depth of indentation
Change-Id: I572a989730a8dd93b5ab7ee63b37bc9d728c17e7
2015-04-11 00:39:18 +00:00
Sho SHIMIZU
94b03b11cd Sweep deprecated todo comment
Change-Id: I6140aa38aff475424e44c6597599703776530f4d
2015-04-11 00:38:41 +00:00
alshabib
1097c978fb Only process pending objectives if there are any.
Change-Id: Ibb34dce32e0bfc55b317036130ead2c1babbaeac
2015-04-11 00:37:06 +00:00
Sho SHIMIZU
d493625192 Fix typo
Change-Id: I4ad0311a9d54f4bf7bb8b58e0e57a8f51839f091
2015-04-10 15:03:57 -07:00
Jon Hall
e3f0fcf112 Avoid NPE in cfg command
- Avoid NPE when a component has no configurable property or doesn't exist
    - Specificly use a numeric value for SharedExecutors.DEFAULT_POOL_SIZE so
      the value appears in cfg command
    - Also use print instead of system.err since it is being redirected
      away from the console

Change-Id: Ib73016b1a9282493f0c5c8c217dd33292eac4ba4
2015-04-10 09:40:36 -07:00
alshabib
910aff10a7 WIP: Initial implementation of filterObjectives using driver subsystem.
Incomplete implementation

Change-Id: I3745d481027659d4ca44b72139e5461c02e8c3ef
2015-04-09 16:57:18 -07:00
sangho
538108bae8 ONOS-1440: Implements port statistics feature, which polls port statistics of all devices every 10 seconds. Also, implemented a simple portstats ONOS CLI command to show the statistics.
Change-Id: I57e046ae2c2463a58b478d3a5b523422cde71ba2
2015-04-09 22:43:41 +00:00
Thomas Vachuska
5c2f813575 Device driver framework enhancements and CLI.
Change-Id: I5dea67620259797eff89a985718934034a86d63e
2015-04-09 18:17:09 +00:00
Thomas Vachuska
b0317c6a3f Fixed javadoc warning; added shared executor/timer wrappers to prevent inadvertent shutdown; added shutdown to CoreManager.deactivate.
Change-Id: I27f31b5d41050d6d87cd6419ab863201c4585843
2015-04-09 18:11:17 +00:00
alshabib
429477825c implemented a distributed default flow registration mechanism to avoid duplicate requests from other onos instances
Change-Id: Ib2abb483456538e3e08e9790c4b4b0d50db8b384

implemented a distributed default flow registration mechanism to avoid
duplicate requests from other onos instances

Change-Id: I620cc51ac29cddaffa73cdbb20e9a9acbdd9ea69
2015-04-09 18:01:02 +00:00
alshabib
4313d10f47 fix bug when a device disconnects. Issue was due to null roleinfo in event
Change-Id: I12d371382931ef4ab93f25f32ed6e4786735f55a
2015-04-08 21:54:07 -07:00
Thomas Vachuska
ca88bb7440 Cleaning up and enhancing driver subsystem and the flow objective subsystem.
Change-Id: Ica600ef1aaa46d19e764cd7a197454a4e0f85a08
2015-04-08 19:38:02 -07:00
Murat Parlakisik
553db17965 Shared system services configurability (ONOS-1304)
Change-Id: I42210128fd973f16bb07955175d8e361858a9034
2015-04-09 01:23:48 +00:00
alshabib
aebe775c12 WIP: default driver ignition
Change-Id: Ia37de8dcaee2ff2be0908fa12c567acf99ef3a13
2015-04-08 16:34:28 +00:00
alshabib
77b8848f51 added FlowObjectiveService to act as an objective manager between applications and drivers
Change-Id: I4dc44db8bafae8a55b7663895c87b1b08645637f
2015-04-07 15:48:36 -07:00
Ray Milkey
77a455f4c5 Intent manager unit test enhancements
- add test to be sure that all flows are removed when intents
  are withdrawn
- add test to be sure that all flows are removed when an intent
  installation fails. Currently disabled, intent cleanup is
  not implemented
- enable installation time out test

Change-Id: I8c7a75292a97404ef89856647c67ef2f70ffcf6f
2015-04-03 19:39:56 +00:00
Thomas Vachuska
00121ed30a Javadocs cleanup.
Change-Id: Ia731178e76b29a2f00045efad759b9c0559645d7
2015-04-03 00:23:18 +00:00
Thomas Vachuska
de563cf235 Added ability to form a cluster via REST API.
Change-Id: Ib71f6b4caed1b1c4b9db78596ee35bf5cab05184
2015-04-01 20:39:37 +00:00
Thomas Vachuska
8dc1a69a95 Added bootstrap code to auto-generate cluster.json, tablets.json and hazelcast.xml using local site address.
Change-Id: I3210aadc63403022b4aac3bc3591736801240b50
2015-04-01 19:13:51 +00:00
Ray Milkey
fd7931d385 ONOS-1404 - Rerouting delayed due to flows being removed out of order
ONOS-1409 - handle all links to a switch going away and coming back

Change-Id: Ib7216530fa8eef41b1088c5122a40bf9265481ca
2015-03-31 19:46:22 +00:00
Brian O'Connor
9ac147662f Fixing intent reroute (ONOS-1403)
However, there is a race that can temporarily break data plane connectivity.
The problem is described in ONOS-1404

Change-Id: I3df1948180b42fc7f4c2d072bd8c2b452dd07e61
2015-03-27 01:33:33 +00:00
Brian O'Connor
b5dcc51d10 Adding device and host tracking for intents (ONOS-1356)
Also, this should fix ONOS-1184 (intents submitted before hosts detected).

Change-Id: I47a503c18dc728912132eb2e2fcc160d47e518eb
2015-03-26 00:40:34 +00:00
Jonathan Hart
4a0ba56a4d DefaultTrafficTreatment: Build all-instructions list at creation time
so that we don't have to join the two lists each time we want to see all instructions

Change-Id: I7f1ad252776abcb6768372eeaabfa661bdded36c
2015-03-25 23:02:53 +00:00
Simon Hunt
9fec43fb7d Updated CoreManager version string to be 1.2.0-SNAPSHOT.
Change-Id: I3de77314b84d3bd51ca709c36e29f2c33fce816c
2015-03-25 18:48:36 +00:00
Thomas Vachuska
5630c61407 ONOS-1323 Upgrading environment to use Apache Karaf 3.0.3
Requires restart of any dev shell sessions that may have KARAF_VERSION=3.0.2 already set.

Developers that have their own local Karaf will have to run 'onos-setup-karaf <ip-address>' command

Change-Id: Iba234b3cd5af89de6dd249c97cac97525364cc34
2015-03-25 00:56:59 +00:00
Srikanth Vavilapalli
717361f32f Distributed group store using eventual consistent map abstraction
Change-Id: I618a0f6fa80e0e25285d7a2026032f09ba90aa70
2015-03-25 00:27:54 +00:00
Sho SHIMIZU
ee2aa65a3d Merge IntentInstaller's role into IntentCompiler
It resolves naming mismatch in naming of IntentProcessPhases and states
handled in the phases. It is described in ONOS-1064.

- Define FlowRuleIntent that enables flow rule level operation
  as an intent.
- Remove IntentInstaller interface
- Existing installable intents such as PathIntent, LinkCollectionIntent,
  OpticalPathIntent and MplsPathIntent now become non installable intents.
  Only FlowRuleIntent is categorized as installable intent now.
- Implement intent compilers for PathIntent, LinkCollectionIntent,
  OpticalPathIntent and MplsPathIntent. They generates FlowRuleIntents.
- Write unit tests for the newly created intent compilers according to
  the intent installers' unit tests
- Remove all intent installers and their unit tests

Change-Id: I22d6c7acb65a4c066145de0018bd0727f44bd54a
2015-03-24 14:09:04 -07:00
Ray Milkey
e076c791a5 Implement builders for optical intents
Change-Id: Ide728a943eb0ec3d3ba995f63c016e7d52bff65c
2015-03-24 20:08:31 +00:00
Ray Milkey
4250735018 Remove deprecated instructions() method in the traffic treatment class
Change-Id: I739b35bdcbf9867c639c7b6ca4006f3eeafbb055
2015-03-24 18:18:28 +00:00
Thomas Vachuska
0d6af8d983 Fixed a defect where remotely-induced feature install was trying to stomp over locally -induced feature install.
Change-Id: I1cb2c2dd3da03a34b80b1db312056b44cc9c1f9f
2015-03-23 15:54:47 -07:00
Madan Jampani
7d2fab296a ONOS-1326: Added support for observing when node liveness status was last updated. Useful for detecting/debugging stability issues.
Change-Id: I8ffebcf3a09a51c6e3e7526986a0f05530ed757f
2015-03-23 21:45:52 +00: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
Brian O'Connor
023a1c72d6 Revert "Abstract ConnectivityIntentCompiler is not a @Component"
This problem needs to be fixed in a better way.

This reverts commit 8317ad56e8c5dc6b8c5fadf3d87a51f885c8dfa2.

Change-Id: Icbc4492016a0858221a3e79121db36cbb87b3b2b
2015-03-20 01:11:29 +00:00