1246 Commits

Author SHA1 Message Date
Thomas Vachuska
02aeb0339f ONOS-542 Defining application subsystem interfaces & public constructs.
Change-Id: Iba0d2cb69dace5beee8a68def9918059ce755b5c
2015-01-30 00:28:45 +00:00
Brian O'Connor
ea4d7d1421 Initial work on Intent API (ONOS-618)
Change-Id: I2b4aa0befabbf0b4dce8b2c991e38411709b2e80
2015-01-30 00:28:34 +00:00
sangho
11c30ac6d3 Add a new method sendMsg(OFMessage msg, TableType type) in OpenFlowSwitch interface to support multiple-table aware FlowRuleService.
Other changes are caused due to the new method.
Add type() in FlowRule interface to determine the table in which the flow rule need to be set.

Change-Id: I6518a01f4a5fba23f09f70b619f3844b5e33ce8f
2015-01-29 09:35:06 -08:00
Sho SHIMIZU
5e5d4aa4b6 Change the second type parameter of BatchOperationEntry
- Remove the bounded type parameter for BatchOperationTarget
- FlowRule and Intent don't inherit from BatchOperationTarget
- Remove BatchOperationTarget because nothing depends on it

Change-Id: I3b414d25409e9bbe5de37ffef10b08bc1799be74
2015-01-29 02:32:33 +00:00
Sho SHIMIZU
bdc17e7a94 Move inner interfaces to upper level to reduce IntentManager's size
Change-Id: Ice4fba9e0e70f72904fe7dfa9f371f61ca739b48
2015-01-29 02:31:35 +00:00
Sho SHIMIZU
28e72715b8 Change IntentUpdate and CompletedIntentUpdate to be interface
Instead of abstract class, defined as interface by using default method

Change-Id: I23135da32db3e1bf3b161edca4db8a61f392eb78
2015-01-29 02:31:34 +00:00
Sho SHIMIZU
23f36f0abf Refactor: remove unused method in IntentManager
Change-Id: Ifcec1a80674131379516f53ffdfb600651160f6d
2015-01-28 14:25:34 -08:00
Sho SHIMIZU
9ea3453b45 Avoid empty check of BatchWrite in the caller side
Change-Id: I5672b2d6fab719ab9a5c642a942bf4a6191e808d
2015-01-28 22:17:00 +00:00
Jonathan Hart
539a6460ad Modified GossipIntentStore to use EventuallyConsistentMaps.
All IntentStore operations are now implemented.

ONOS-858

Change-Id: I5081805b61c7e25e28707b90093cae12b5a4374b
2015-01-28 11:33:21 -08:00
Jonathan Hart
7d656f4e91 Remove "throws IOException" from ClusterCommunicationService APIs
that never throw IOExceptions. These APIs already return boolean to indicate
if sending failed.

Change-Id: I339949fe59f3b8b18a117aabc8d67402dc66c2a3
2015-01-28 10:14:34 -08:00
Sho SHIMIZU
968c70d34a Remove an unused constant
Change-Id: Ib0c9d6cc5fbe057a27be6fe480d587311bf3d775
2015-01-28 08:50:32 -08:00
Jonathan Hart
db3af8974a Initial implementation of EventuallyConsistentMap.
The map uses the gossip schemes to replicate data between instances. It seems
to work for basic add and remove use cases right now, no anti-entropy yet.

ONOS-844.

Change-Id: I7d05a7b532e40c95ab14e2c8911f18514bd0a8ca
2015-01-27 21:30:22 -08:00
Sho SHIMIZU
adf8c48529 Refactor IntentManager: apply state pattern for intent state transition
Resolve ONOS-471.
- Define IntentUpdate sub-classes for intent state transition
- Define CompletedIntentUpdate and its sub-classes for parking intent state
- IntentUpdate.execute() handles one state transition and generates next state
- IntentInstall monitor is splitted into IntentBatchPreprocess and its sub-classes

Change-Id: Ie2d3a0b2ce9af7b98fd19a3a8cc00ab152ab6eaa
2015-01-27 23:50:19 +00:00
Jonathan Hart
23b5a763bc Add resources into intent toString() outputs.
Change-Id: Id3903a89e77073c5fa74b48851716b95adfc72de
2015-01-26 23:21:30 +00:00
Jonathan Hart
229794bebc Fixed couple of GossipIntentStore bugs.
* Register Collections.emptyList() in Kryo (some intents contain this)
 * Other stores set INSTALL_REQ state implicitly when a CREATE_INTENT
   batchwrite is received, so we should do this too. 

Change-Id: I19167ab0d3c7b98c32d5af9198843ff33b7c8a23
2015-01-26 22:07:12 +00:00
Thomas Vachuska
9ea3e6f477 ONOS-841 Renaming ONOS threads to simplify profiling.
Change-Id: I83a96bd875a0af9f3b78c06a9f9107c093b8e64e
2015-01-23 16:34:22 -08:00
Thomas Vachuska
c31d9f1dcc ONOS-745 Refactoring topology to compute only broadcast tree and not pre-compute paths.
ONOS-744 Refactoring graph search to allow requesting max number of paths.

Change-Id: I28467246b92df32ebb3155c45774ecc051fdd3dd
2015-01-23 12:57:34 -08:00
Jonathan Hart
dac3008f5f Remove unused IntentStore write APIs.
All write operations now come through the batchWrite API.

Change-Id: I982c5f785bf108dc2c9716db5ed744882d88aa55
2015-01-23 18:26:41 +00:00
Ayaka Koshibe
8851ed97c7 Trim whitespaces before and after .cfg file arguments.
Change-Id: Iaf165b4e289075376deab806d3c7c15169e3dca7
2015-01-23 17:47:04 +00:00
Sho SHIMIZU
7446da93e0 Modify unit test for serializing FlowRuleBatchEntry
Change-Id: Ifdd3b7fcbb37a9d304154c46ad2628aead626a00
2015-01-23 04:38:18 +00:00
Sho SHIMIZU
346609609a Fix typo in Javadoc comment
Change-Id: I7b99179a9e4b5a0e2249b802a940532004c8969c
2015-01-22 17:58:44 -08:00
Jonathan Hart
5573d3243d Initial implementation of GossipIntentStore.
Create/update operations are implemented and working in 2-node cluster.
No remove operations yet.

Change-Id: Ief68c9d5c3bb483823b6f92d29fa83df0ab7b58f
2015-01-23 00:58:08 +00:00
Sho SHIMIZU
c0e8bfa98e Revert "Use Optional instead of null to remove FIXME comment"
This reverts commit 9639df7bcf1bda1ebb22fe7d2850708992ccc38b.
This is due to the regression described in ONOS-825.

Change-Id: I2909ed3e3461439596f99bf0cd94da3792a0ff64
2015-01-23 00:47:58 +00:00
Sho SHIMIZU
d7d18005e8 Prohibit null for resources field in Intent
Change-Id: I128c6e63ccccaf817e83ff1c440a731fb98b42f7
2015-01-22 19:03:58 +00:00
Sho SHIMIZU
166e61e47f Fix ONOS-815: register Optional class to Kryo
Change-Id: Iab40b3c02b54634452006bbaae18e450d91de347
2015-01-22 16:54:29 +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
Sho SHIMIZU
9639df7bcf Use Optional instead of null to remove FIXME comment
Change-Id: I21c0cd954eaff4441392205aede95b34285f1402
2015-01-21 22:20:54 +00:00
Jonathan Hart
c036367091 Remove deprecated and unused APIs from IntentStore.
IntentStore#createIntent(Intent) and IntentStore#removeIntent(Intent) have
been superseded by IntentStore#batchWrite(BatchWrite)

Change-Id: I0f1c1b8fdc645435a9925bae9370d75965618c7c
2015-01-21 21:52:56 +00:00
Sho SHIMIZU
d94b477da1 Delete code that is commented out
Change-Id: I3d346dd186b3ef55c25464f207ca687c842f5ddc
2015-01-21 11:34:42 -08:00
Sho SHIMIZU
2b2e681f7e Fix typo
Change-Id: I3f66d3cbfd3e478f019423cd519e1e5321f0a809
2015-01-21 10:50:36 -08:00
Sho SHIMIZU
2bb988bf72 Return immediately when the given BatchWrite is empty
This revision aims to remove empty check of BatchWrite in the caller
side of this method

Change-Id: Ic0d659a6da221a052ad135eba18a783caa81ec42
2015-01-21 17:56:24 +00:00
Sho SHIMIZU
591dc99ba8 Get rid of super type of IntentId
IntentId is no longer treated as BatchOperationTarget

Change-Id: Icf63eb8071113b71146604a740f82cf3eadeef95
2015-01-21 16:55:13 +00:00
Sho SHIMIZU
d58c5b742f Simplify the code by using the constructor initializing a reference
Change-Id: I62335690903fe21cd3400e81e20833b4a1bb7b59
2015-01-21 16:49:17 +00:00
Sho SHIMIZU
d4df608ff0 Use diamond operator to simplify the code
Change-Id: Ia1e02131817a94e2ca86a0bb51924e11d14742e0
2015-01-21 16:47:30 +00:00
Sho SHIMIZU
60e2467091 Add null check in the constructor
Change-Id: I5436324666a77c6c830a44b107eca65b4dea88bb
2015-01-21 00:43:45 +00:00
Sho SHIMIZU
86f61984e1 Remove TODO comment
Make the constructor of BatchWrite.Operation private

Change-Id: I496ba4502f0f4c147250909cab9123fc5c869f9e
2015-01-20 23:57:56 +00:00
Ray Milkey
3cbfbc4c50 Expose the obstacles Set in a method - needed for REST APIs
Change-Id: Ia688cb7d9407525673006f0fa61eab84eef5edee
2015-01-20 23:39:12 +00:00
Sho SHIMIZU
183b12fdd1 Delete unnecessary semicolon
Change-Id: I56f8c0a5cba3b6ce25230c8d1c3339a4bea8c29f
2015-01-20 23:24:12 +00:00
Sho SHIMIZU
16ea69b673 Pass constraints argument to the constructor of super class
Change-Id: I2e689b6391b2a373c716dd1a421c9e1510ecb934
2015-01-20 19:23:28 +00:00
Sho SHIMIZU
a15546f5c6 Passing an empty list instead of null to improve null-safety
Change-Id: I6bef6c4c263a369ed49ea1da12c23528a56dd2c8
2015-01-20 11:16:33 -08:00
Sho SHIMIZU
bd128fa15b Delete code that is commented out
Change-Id: Iea41b7e1634aa3011fb3d5923422baa3c1ed9e9e
2015-01-20 18:51:35 +00:00
Kunihiro Ishiguro
0f9aba8e71 ONOS-635 Adding ICMPv6 type and code builder for HostMonitor.
aovid duplicate call of toString.

Apply changes to FlowEntryBuilder and FlowModBuilder as well.
Fix missing break; issue.

Change-Id: I1a2e59ca943bbcc9677b9fc0cb9eb2f7cb3d7aa3
2015-01-17 17:27:16 +00:00
Jonathan Hart
f84591d3fa Don't flood ARP packets out the port they came in on.
Also renamed ProxyArpService#known(Ip4Address) to
ProxyArpService#isKnown(Ip4Address)

Fixes ONOS-722.

Change-Id: I136c65e58693926e87b822cb0f4ec1c4ba0e3780
2015-01-17 16:43:38 +00:00
Thomas Vachuska
a8f4e7dee1 Sketching out device driver subsystem to allow extensible device management functions to be made available to applications.
Revising some implementations and adding tests.
Removing fingerprint and extension concept for now.

Change-Id: Id50faf29e4590b08e0c2b385ae8d4bb0c453f37e
2015-01-16 22:05:05 +00:00
Charles M.C. Chan
52fae7da14 ONOS-509: Match IPV6_SRC, IPV6_DST criteria
* Following classes have been extended to match IPV6_SRC and IPV6_DST criteria:
    - Criteria
    - DefaultTrafficSelector
    - FlowEntryBuilder
    - FlowModBuilder

* Not included in this submission
    - Match of other IPv6-related criteria
    - Set of all IPv6-related criteria (action)

Change-Id: I115829a480356d2037e0fc809595f7a5eec25874
2015-01-16 18:11:27 +00: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
Ray Milkey
e1dfb50e2e Fix javadoc typos
Change-Id: Ia1872060512df5e501503ba773a66690efd5b99b
2015-01-13 16:35:46 -08:00
Brian O'Connor
8b6b172656 temporary NPE fix for ONOS-439
[Merged from onos-1.0]

Change-Id: I238ea24e1a4c4bebb40d132d060c418f5675f570
(cherry picked from commit f25a5115e901f1f3383ccb60af7ad48355c39ee2)
2015-01-13 22:47:14 +00:00
Jonathan Hart
e8600eb0c4 Handle packets that can't be deserialized properly.
Catch BufferUnderflowExceptions that occur while trying to deserialzed
Ethernet packet, and account for the fact that packets may not have been
deserialized correctly when using InboundPackets.

Addresses ONOS-605.

Change-Id: Ia7191e62a339125c9c4d3fe0cf63f9c33eb74cb5
2015-01-13 21:59:54 +00:00
Ray Milkey
8717be20e9 Fix for ONOS-607 - controller port displayed incorrectly in CLI
CONTROLLER ports were displayed as 18446744073709551613
for output instructions.

Change-Id: Id62f7ebe9e140a0a2c3c2387fbabfb3305f4273d
2015-01-12 14:16:27 -08:00