3637 Commits

Author SHA1 Message Date
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
Ray Milkey
d03eda01c0 Unit tests for Instruction and Ethernet codecs
Added tests for codecs for Ethernet and Instruction classes
Also fixed some bugs uncovered by the tests

Change-Id: I29f82d169e81b3fca417f88fab992148bf36dc71
2015-01-12 18:00:10 +00:00
Pavlin Radoslavov
d36a74b11d Add explicit flow rules to receive control packets: ARP, LLDP, BDDP
This fixes ONOS-540

NOTES:
 * Currently, the flow rules are pushed by each module that needs to receive
   the corresponding control packets:
   - ARP: ProxyArpManager, HostLocationProvider
   - LLDP and BDDP: LLDPLinkProvider
 * Pushing the corresponding IPv6 rules for Neighbor Discovery is not done yet
 * In the future, we might want to consider an explicit service to
   subscribe for receiving particular control packets

Change-Id: I292ad11a2e48390624f381c278e55e5d0af93c6d
2015-01-09 22:03:35 +00:00
Bri Prebilic Cole
09e464bc62 Starting GUI server-side code
Change-Id: Id3d5e198a2326f50ef2661f6971cf23271bf7644
2015-01-07 17:13:54 -08:00
Sho SHIMIZU
8cd9fb8ad5 Make timeout and max attempts configurable
- Resolve ONOS-472
- Define instance variables for timeout and max attemps
- Add a constructor that initializes the added instance variables

Change-Id: Ia70421122cd6042b01850eabec9f249e7cea5e88
2015-01-06 22:30:42 +00:00
Ray Milkey
9a39eca2e7 ONOS-423 - Throw a specific exception when resources are exhausted
Create an exception to throw when no resources are available
Simple, Hazelcast and Distributed link resource stores throw ResourceAllocationException
Unit tests for successful and unsuccessful bandwidth and lambda allocations

Change-Id: If062d10d2233935dd59efabfa5f37a446e275a5b
2015-01-06 20:51:15 +00:00
Thomas Vachuska
f4df00560f ONOS-537 Provided maxLen setting to make sure packet data is sent with packet-in message. Also added support for TrafficTreatment.Builder.punt();
Change-Id: I9f5577cf83b4d25c79459e56492be747a245397c
2015-01-06 12:30:18 -08:00
Jonathan Hart
4fb5cdeb37 Register FlowRuleEvent.Type with Kryo.
Fixes ONOS-504.

Change-Id: Ia8a9b229c9eb212cf97ce3ed81c31febe84e3184
(cherry picked from commit df2e65297cd43bebbd938e37583f3109e616455d)
2015-01-06 19:54:52 +00:00
Charles M.C. Chan
36eb6e1154 Bugfix: Criteria.toString() does not convert unsigned variables properly.
For example, in the response of 'flows' command, the ethType of IPv6 (0x86dd) is shown as ff..ff86dd instead of 86dd
Note: VlanId/VlanPcp still remains in signed format in this commit since:
  * VLAN tag is actually 12 bits. There should be no problem even if it is printed as signed short.
  * VLAN PCP is actually 3 bits. There should be no problem even if it is printed as signed short.
  * -1 is used in many places to indicate untagged vlan

Change-Id: Ib68161d552a0011e6a6666970907cf9ca846f620
2015-01-06 17:38:13 +00:00
Jonathan Hart
ab17b27828 LinkCollectionIntentInstaller - reuse same code for install and uninstall
+ cosmetic changes

Change-Id: Ie8dbeab8b3b3fafcebc6e48306660533dd0af4e3
2014-12-19 23:54:05 +00:00