1436 Commits

Author SHA1 Message Date
Ray Milkey
5b3717ea46 Add keys to intents
- use Key class rather than String for intent keys
- add CLI option to specify a string key
- add key field to constructors for connectivity intents
- translate id into a key if no key is specified

Change-Id: I69ffbad93bc3daddf06a67cb0cffa2130e781b37
2015-02-13 14:10:47 -08:00
Brian O'Connor
03406a4702 IntentStore interface changes
Change-Id: Ifa8728fb4c7edcc6d58a5e071f7252493ab2a578
2015-02-13 14:07:52 -08:00
Brian O'Connor
b499b3594d Updates to Intent Manager and store interface
Change-Id: Ida612bf5d0f4abe7e81d2f307a80f989603015e7
2015-02-13 13:59:20 -08:00
Ray Milkey
24226a2175 Start IntentOperations removal
Change-Id: Ib5fb9c19b37e447a62c61fa33bb98f3d789cbefa
2015-02-13 13:59:20 -08:00
Brian O'Connor
cff03322bf Started refactoring Intent Manager
Introduced IntentData and reworked APIs

Change-Id: I1fa437ceb1b72c4017ac2da1573bfbeb64c0632a
2015-02-13 13:59:19 -08:00
Pavlin Radoslavov
1d21866a74 Fix for ONOS-1032 : Add missing class registrations to the Kryo serializer
- Criteria.MetadataCriterion
 - Criteria.IPDscpCriterion
 - Criteria.IPEcnCriterion
 - Criteria.UdpPortCriterion
 - Criteria.SctpPortCriterion
 - Criteria.IcmpTypeCriterion
 - Criteria.IcmpCodeCriterion
 - Criteria.IPv6FlowLabelCriterion
 - Criteria.Icmpv6TypeCriterion
 - Criteria.Icmpv6CodeCriterion
 - Criteria.IPv6NDTargetAddressCriterion
 - Criteria.IPv6NDLinkLayerAddressCriterion
 - Criteria.IPv6ExthdrFlagsCriterion
 - Instructions.GroupInstruction
 - L2ModificationInstruction.PushHeaderInstructions
 - L2ModificationInstruction.ModMplsLabelInstruction
 - L2ModificationInstruction.ModMplsTtlInstruction
 - L3ModificationInstruction.ModTtlInstruction

Change-Id: I6c2db9103c85b06120a5e471d015f387f04c5893
2015-02-13 11:34:30 -08:00
Madan Jampani
393e0f0745 1. Refactored ConsistentMap and StorageServive (renamed from DatabaseService) to api bundle.
2. Misc bug fixes uncovered during testing

Change-Id: I1219c5264831bcfa93565f764511f89de35a949d
2015-02-13 01:57:23 +00:00
Pavlin Radoslavov
febe82cc82 Implement some of the missing IPv6 flowmod treatments
Work toward ONOS-509

The following treatments are added/implemented:
  - IPV6_SRC
  - IPV6_DST
  - IPV6_FLABEL

Also:
 - Renamed L3ModificationInstruction.L3SubType.IP_SRC and IP_DST
   to IPV4_SRC and IPV4_DST (for naming consistency).
 - Few minor fixes in related code: Javadocs, comments, log messages,
   and IP address usage.

Change-Id: I551056f767a37e7cb6ae7d79f4a3929183500b57
2015-02-12 18:24:54 +00:00
Ray Milkey
7b3981b529 Fix Javadoc warnings
Change-Id: I2975b3d7bb581d5574969037e1f99401b94ef3dc
2015-02-12 09:15:44 -08:00
Yuta HIGUCHI
0a0b9e46bf Log more info when inter-Node messaging fails.
Change-Id: Ifd749a3023854d688a675c7279c27868b8bed436
2015-02-12 01:43:12 +00:00
sangho
7ff01813fe ONOS-944: Implemented a Group operation failure handler in GroupManger and SimpleGroupStore.
Change-Id: Ib3be4d534ceff04af2dad0c062fd4cd63d49ee82
2015-02-11 23:56:53 +00:00
Brian O'Connor
72cb19a90e Implementation of new Flow Subsystem:
The subsystem no longer returns futures for tracking completion of work.
Notifications are explicitely returned via a call back mechanism. Also, the
subsystem is now asynchronous.

Change-Id: I1a4cef931c24820f9ae9ed9a5398f163f05dfbc9

more flowservice improvements

Change-Id: I5c9c1b6be4b2ebfa523b64f6f52e7634b7d3e05f

more flowservice impl

Change-Id: I05f6774460effb53ced8c36844bcda2f8f6c096f

Manager to store functional (at least i believe it)

Change-Id: I09b04989bd1004c98fe0bafed4c76714b9155d53

flow subsystem functional: need to fix unit tests

Change-Id: I1667f25b91320f625a03e5e1d5e92823184d9de0

flow subsystem functional

Change-Id: I429b3335c16d4fc16f5d55f233dd37c4d1d6111d

finished refactor of flow subsystem

Change-Id: I1899abc6ff6a974a2018d936cc555049c70a6804

fix for null flow provider to use new api

Change-Id: If2fd9bd5baf74d9c61c5c8085cef8bc2d204cbdc
2015-02-11 21:28:01 +00:00
Yuta HIGUCHI
802920559d Explicitly specify charset
- Explicitly specify app name encoding, which will go over the wire.
- Commented out unused Map for now

Change-Id: I9a076a5ef452850706bf15b0730aa149b4532fbd
2015-02-11 17:28:37 +00:00
Yuta HIGUCHI
c611d927aa Fix Cache Removal listener
- Removal lister will be called even if the entry was manually
  invalidated. Timeout handler should check for the cause.

Note: In both of the cases fixed in this patch, Future should silently ignore
  setException, external behavior-wise no change by this patch.

Change-Id: Id46f23c9ff8dfa607874cfd94807000f03a95b31
2015-02-11 06:21:35 +00:00
Madan Jampani
09342706b0 WIP: Consistent map implementation.
Change-Id: I51b2d954b7a8ff2c51c425d9a8125937d4eaa6b0

Change-Id: Ib27799d4eb60fc4bfaa8d2f21a904365ff5437eb

Change-Id: I95c937600ceb8f282a482280217671c471f40b9c
2015-02-11 05:26:26 +00:00
Thomas Vachuska
4a51e57cbf Adding and fixing javados.
Change-Id: I38eddb0b11630cdd83c5d1e5d5dc393ee2555897
2015-02-07 21:36:23 -08:00
Madan Jampani
cb7ab08e95 Pom fixes to correctly shade copycat jars.
Change-Id: I1ed97b32ad242e1c6d7c06387219308802a1f773
2015-02-06 15:33:57 -08:00
Madan Jampani
94c2353875 WIP: Partitioned Database based on Raft.
Removed the implementation based on previous Copycat API.

Change-Id: I6b9d67e943e17095f585ae2a2cb6304c248cd686
2015-02-06 19:04:24 +00:00
Yuta HIGUCHI
151cad848a Use TestHazelcastFactory
- Modified Hazelcast related tests to use TestHazelcastFactory.
  Hazelcast instances generated by it uses mocked network, which might resolve timing issue (ONOS-368).

  See: https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/test/java/com/hazelcast/test/TestHazelcastInstanceFactory.java

Change-Id: I18f1c2d855eebf679a4be97a53cea2c808acfd04
2015-02-05 18:12:38 +00:00
Jonathan Hart
4f397e80d8 Explicitly disallow null values in the map
Change-Id: I3b8d287a534e85d9454ca261a8eb666c477c43c1
2015-02-04 09:10:41 -08:00
Jonathan Hart
9e817ec6dc Enable GossipIntentStore by default
Change-Id: I31e7fc590436b6d784b896b90776bc1fe348f7a5
2015-02-04 08:52:00 -08:00
Jonathan Hart
f910823cae Pulled internal event classes out of EventuallyConsistentMap class
for clarity.

Also switched to using Pair instead of my own Entry class for returning
entrySet().

Change-Id: I78d84f9fe931257d4ffe1d48c9d0de25f18c638f
2015-02-04 04:22:03 +00:00
Jonathan Hart
584d2f3c54 Unit tests for EventuallyConsistentMapImpl.
Most functionality is tested here, except for the anti-entropy code.

ONOS-859.

Change-Id: Ib9e83518f8a91d599364106bc0f7d869e62f5133
2015-02-03 19:34:54 -08:00
Srikanth Vavilapalli
45c27c8c62 ONOS-895: Group manager implementation
Change-Id: Ie183f722fa39012f8de056961715c325e2388e63
2015-02-04 01:01:07 +00:00
Srikanth Vavilapalli
0599d51603 ONOS-885: Group store interface definition and in-memory store implementation
Change-Id: I1125fbc23f1e58bcb8aaf5f67c02da610fa7ef25

ONOS-885: Group store interface definition and in-memory store implementation

Change-Id: Id3794bed63785e10ed86c0b5d90bf875d127224c
2015-02-04 01:00:00 +00:00
Sho SHIMIZU
aba9d009c9 Apply the naming convention to BatchOperationEntry
Resolve ONOS-889

Change-Id: I2001fabba138b9ff5be9a5943d3f020b4c38d195
2015-02-03 00:35:23 +00:00
Thomas Vachuska
90b453f11c ONOS-785 Adding distributed store for apps & app admin CLIs
Change-Id: Ia7639f3258fca2a18ba513f0c95de0ab8ea7ceee
2015-02-02 22:23:35 +00:00
Jonathan Hart
aaa5657d83 Implement anti-entropy for the EventuallyConsistentMap.
ONOS-857. 

Change-Id: Ife2070142d3c165c2a0035c3011c05b426c8baa4
2015-01-30 19:10:49 +00:00
Jonathan Hart
4572785eee Added Collections.emptyList() to Kryo BASIC namespace
Change-Id: Iabc7a0538184a71311b54a9093b75c55c293ccae
2015-01-30 19:02:40 +00:00
Sho SHIMIZU
0ce220af4f ONOS-426 - make the unit of Bandwidth clear
Change-Id: I6f23f01306ece906fb6a6a894a52a6369983eeed
2015-01-30 00:40:05 +00:00
Brian O'Connor
d0f13eb8bd Patch job on transient test failure
Change-Id: Ia32daed4d25e9315e904978d0ca2bb14955ab1a6
2015-01-30 00:38:27 +00:00
Thomas Vachuska
02aeb0339f ONOS-542 Defining application subsystem interfaces & public constructs.
Change-Id: Iba0d2cb69dace5beee8a68def9918059ce755b5c
2015-01-30 00:28:45 +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
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
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
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
Sho SHIMIZU
7446da93e0 Modify unit test for serializing FlowRuleBatchEntry
Change-Id: Ifdd3b7fcbb37a9d304154c46ad2628aead626a00
2015-01-23 04:38:18 +00: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
166e61e47f Fix ONOS-815: register Optional class to Kryo
Change-Id: Iab40b3c02b54634452006bbaae18e450d91de347
2015-01-22 16:54:29 +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
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
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
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
Yuta HIGUCHI
e59c7e3bfd GossipHostStore: allow location change + update
- Actively sync with peer on anti-entropy message
  to improve convergence speed
- Timestamp not only location
- Refresh timestamp on delta update

Might fix ONOS-436

Change-Id: I271f9af04b87d78124d055e79b93413deaf1fa3c
2014-12-19 21:46:01 +00:00
Yuta HIGUCHI
24d483d1c6 Cosmetic fixes to SMap
Change-Id: I2b45227c19ee2d6595d52dda35a139ed3a898ce8
2014-12-18 17:32:33 +00:00