233 Commits

Author SHA1 Message Date
Pavlin Radoslavov
d5087d13d0 Removed method IpAddress.toInt(), because it is semantically incorrect:
It lacks the guarantee the underlying IP address is IPv4.

Potential users of toInt() should use Ip4Address.toInt()
or IpAddress.getIp4Address().toInt()
Tthe latter obviously might require the explicit check that
getIp4Address() is not null.

Change-Id: I3f939695cf3c496e3fdd3fbd4a2988b565cca69a
2014-11-06 13:40:40 -08:00
Thomas Vachuska
ca60f2b0f1 Initial sketch of codecs and REST API approach.
FIxed typos and defects.
ONOS-81

Change-Id: I789444a181abea509c354966545c927e305710d1
2014-11-06 13:29:42 -08:00
Pavlin Radoslavov
50b7067cb9 Changed the semantics of IpAddress.equals() to (eventually) return true
if both objects are instanceof IpAddress.
I.e., comparing IpAddress and Ip4Address objects could return true
if the underlying value is same.

Applied the same change to IpPrefix.equals() as well.

Change-Id: Ie0644565501d3ecce2a8603117b994d033d5b82f
2014-11-05 11:22:25 -08:00
Pavlin Radoslavov
34c8164a61 * Added methods IpAddress.getIp4Address() and IpAddress.getIp6Address()
to get the Ip4Address and Ip6Address view of the IpAddress.

* Added methods IpPrefix.getIp4Prefix() and IpPrefix.getIp6Prefix()
  to get the Ip4Prefix and Ip6Prefix view of the IpPrefix.

Added the corresponding unit tests as well.
2014-11-04 16:21:38 -08:00
Pavlin Radoslavov
315d6c8b89 Minor refactoring (for code consistency).
No functional changes.
2014-11-04 15:36:04 -08:00
Pavlin Radoslavov
f182f015a5 Reimplementation of classes Ip4Address/Ip6Address/Ip4Prefix/Ip6Prefix
and the corresponding unit tests.

* Reimplemented classes Ip4Address and Ip6Address by inheriting from
  class IpAddress
* Reimplemented classes Ip4Prefix and Ip6Prefix by inheriting from
  class IpPrefix
* Reimplemented the unit tests Ip4AddressTest and Ip6AddressTest to
  match the corresponding IpAddressTest unit tests
* Reimplemented the unit tests Ip4PrefixTest and Ip6PrefixTest to
  match the corresponding IpPrefixTest unit tests
* Minor refactoring/cleanup of classes IpAddress and IpPrefix
2014-11-04 15:03:18 -08:00
Yuta HIGUCHI
2281b3f5e9 rest
Change-Id: If0d838d02690ad4bb581152b40d366c124826634
2014-11-04 00:20:48 -08:00
Yuta HIGUCHI
5c94727a3c javadoc fixes
Change-Id: I3b4fc2d99f42b2413a535fb411b9c19bdd186ad8
2014-11-03 21:39:21 -08:00
weibit
6c415d12dd fix some formats in the k-shortestpathSearch
Change-Id: I3598fceb8f30c501eafcfb54d75b2e4f48d8537b
2014-11-03 19:15:42 -08:00
weibit
9a3631b746 K-shorest path algorithm to support UC1, it can be used by other modules as well.
Change-Id: I736ec55c6211a505d6cf43ab22e1197fdb86ecf3
2014-11-03 15:53:01 -08:00
Pavlin Radoslavov
34c921a02f Completed the IPv6 implementation for IpPrefix, and added
a new set of IpPrefix unit tests.

Also, fix few nits in IpAddress and IpAddressTest
2014-11-03 15:41:22 -08:00
Thomas Vachuska
9d8f72fb55 Removed unneeded import that was breaking the build. 2014-11-03 10:14:05 -08:00
Pavlin Radoslavov
854ecabf36 Updated the testEqualityIPv4 and testEqualityIPv6 to use
Google's EqualsTester.
2014-11-03 09:45:44 -08:00
Yuta HIGUCHI
3e848a8eb8 add methods to directly set MacAddress
Change-Id: Idab9dce493927d8943789177830df630f3b1326a
2014-11-03 09:29:59 -08:00
Pavlin Radoslavov
af5ff79583 Added new method IpAddress.valueOf(InetAddress inetAddress)
and use it as appropriate inside DistributedClusterStore.memberAddress()
2014-10-31 20:51:47 -07:00
Pavlin Radoslavov
d0e32d7486 Added support for IPv6 addresses to class IpAddress:
- For some of the methods, the IP Version needs to be specified by the
   caller. This applies to the IpPrefix API as well.
 - For now, everywhere IpAddress is used and the IP version has to be
   explicitly specified by the caller, we assume/specify IPv4.
 - Added unit test for class IpAddress: for both IPv4 and IPv6 addresses.
2014-10-31 18:11:43 -07:00
Thomas Vachuska
4b42077418 Cleaned up a slew of Javadoc errors in preparation for switch over to Java 8. 2014-10-30 16:46:17 -07:00
Yuta HIGUCHI
2befc661d9 Loosen Kryo config only for DistributedIntentStore
Change-Id: Ie3f05e2d894b0d44f7c0ad645b77c65d1f2ce02b
2014-10-30 15:57:49 -07:00
Pavlin Radoslavov
855ea2d5b9 Refactor the IpPrefix API and implementation:
* Now IpPrefix uses IpAddress to represent the subnet address
 * The IpPrefix subnet address is masked-out by the prefix length.
   E.g., IpPrefix("1.2.3.4/24") is now stored as IpPrefix("1.2.3.0/24")
 * Removed IpPrefix methods that are not used or don't apply anymore
 * Replaced usage of IpPrefix with IpAddress where appropriate
2014-10-30 15:32:39 -07:00
Thomas Vachuska
7b652ad97c Fixed some javadoc warning/errors.
Fixed NPE error in objective tracker.
Preparing for upgrade to Java 8 and Karaf 3.0.2.
2014-10-30 14:10:51 -07:00
Jonathan Hart
4f60f98bd8 Implemented multi-instance packet out.
We've defined a PacketStore abstraction through which outbound packets are
sent. The packet store has a simple implementation (basically a no-op) and a
distributed implementation on top of the cluster messaging service.

Change-Id: Ib32753314fe518ef1fd67c858db744b004539938
2014-10-30 11:02:52 -07:00
Thomas Vachuska
d16ce18d0c Added Port.Type and plumbed it throughout. 2014-10-29 17:25:29 -07:00
Pavlin Radoslavov
49e159acff Updated the implementation of IpAddress:
* Added new static methods IpAddress.makeMaskPrefix and
   IpAddress.makeMaskedAddress
 * Cleanup

Also, removed obsoleted Javadoc comments in Ip4Prefix and Ip6Prefix classes
2014-10-29 16:22:13 -07:00
Pavlin Radoslavov
52307e60ba IpAddress and IpPrefix related cleanup:
* Removed IpAddress.MAX_INET_MASK and use IpPrefix.MAX_INET_MASK_LENGTH
   instead
 * Renamed IpAddress.INET_LEN to INET_BYTE_LENGTH
 * Added IpAddress.INET_BIT_LENGTH, INET6_BYTE_LENGTH, and INET6_BIT_LENGTH
 * Removed methods that are semantically incorrect, or are not needed/used
   - IpAddress.prefixLength()
   - IpAddress.toPrefix()
   - IpAddress.mask()
   - IpAddress.netmask()
   - IpAddress.network()
   - IpAddress.host()
   - IpAddress.isMasked()
   - IpAddress.contains()
   - IpPrefix constructor for version and bytes (but no netmask)
   - IpPrefix.valueOf(int)

 * Misc. other cleanup.
2014-10-29 15:07:37 -07:00
Thomas Vachuska
4f1a60c9fd Revised copyright message. 2014-10-28 13:39:11 -07:00
Pavlin Radoslavov
e7b5bd768c Updated creation of IpAddress instance inside IpPrefixTest
to exclude specifying the prefix length, because it is not
applicable for IpAddress.
2014-10-27 20:17:24 -07:00
Thomas Vachuska
e1bcb0b3ef Added isLinkLocal predicate to MacAddress and used it in ReactiveForwarding. 2014-10-27 17:45:10 -07:00
Thomas Vachuska
4353a5a390 Fixed graph relaxEdge to properly deal with Double.MIN_VALUE. 2014-10-27 15:18:10 -07:00
Thomas Vachuska
24c849c488 Added copyrights to the utils code 2014-10-27 09:53:05 -07:00
Thomas Vachuska
4d69087215 Doh! Forgot to actually check for negative cycles in relaxEdge. 2014-10-27 08:57:08 -07:00
Pavlin Radoslavov
9de2772d0d Work toward common IP address classes.
Ported the following IP address classes from the older codebase:
Ip4Address, Ip6Address, Ip4Prefix, Ip6Prefix (and the corresponding
unit tests).
NOTE: Those classes are not ready to be used yet.

Change-Id: I234875abbc9df8daa2f8ae28706af591dd2c5f2d
2014-10-23 20:35:48 -07:00
Pavlin Radoslavov
d26f57a8e6 Refactoring in the unit test utility framework:
* Moved unit test utilities to the onlab-junit package under utils/junit
   - ImmutableClassChecker
   - TestUtils and TestUtilsTest

 * Added/ported unit test utilities from the older code
   - UtilityClassChecker and UtilityClassCheckerTest
   - ImmutableClassCheckerTest

 * Updated/fixed some of the pom.xml files in the context of the
   onlab-junit package:
   - Added <scope>test</scope>
   - Replaced hard-coded "1.0.0-SNAPSHOT" with "${project.version}"

Change-Id: Ie5f51ba401ca1748340f38848ab6bfc251964adc
2014-10-23 17:58:36 -07:00
Pavlin Radoslavov
41d5adb3d4 Added a new class EventMetric that can be used for measuring events:
rate and last event timestamp (ms from epoch)

Change-Id: Ifce6c2ca911f3b288a0efd9061befc936d06da51
2014-10-23 13:44:21 -07:00
Yuta HIGUCHI
e5ca93bf1f fix some of findbugs issues
Change-Id: I20aa54af16f3a1e3323d735fe53cc26c03d5e52e
2014-10-23 12:14:37 -07:00
Thomas Vachuska
9252bc33a0 Added a REST command to upload topology configuration. 2014-10-23 02:33:25 -07:00
Pavlin Radoslavov
64d9e47215 Added initial implementation of Topology-related event and
event metrics collector. It can be loaded by one of the following two (new)
features: onos-app-metrics, onos-app-metrics-topology

After loading the module, it subscribes for topology-related events
and keeps the following state:
 (a) The last 10 events
 (b) The timestamp of the last event (ms after epoch) as observed by this
     module
 (c) The rate of the topology events: count, median rate, average rate
     over the last 1, 5 or 15 minutes

The following CLI commands are added:
 * onos:topology-events
   Shows the last 10 topology events

 * onos:topology-events-metrics
   Shows the timestamp of the last event, and the rate of the topology
   events: see (b) and (c) above
2014-10-21 22:13:09 -07:00
Pavlin Radoslavov
3559249b9b Refactoring and cleanup in the Metrics module:
* Removed logging related code inside class MetricsManager
 * Removed @Component related code, because it is not suppose to be used
   as an component.
 * Added a new class-wrapper so the Metrics can be used as a loadable service:
   MetricsManagerComponent. The name and the location of this class
   will be refactored in the future.
 * Added new method MetricsManager.removeMetric()
 * Line formatting
 * Changed "interface MetricsService" to public
2014-10-21 21:57:25 -07:00
Pavlin Radoslavov
df042bd11d Minor cleanup in the Metrics module:
* Add missing Javadoc
 * Line formatting

No functional changes.
2014-10-21 21:47:38 -07:00
Yuta HIGUCHI
cac919cc13 flushing just to be sure
Change-Id: Iebdc4b50a94e3247c15152c6c3148620739cc864
2014-10-20 22:44:55 -07:00
Yuta HIGUCHI
633cf88992 KryoNamespace as KryoFactory
Change-Id: I4b78433f08d01619b89f37a961213660a8e3c2db
2014-10-20 09:11:06 -07:00
Yuta HIGUCHI
8d143d2a01 Rename KryoPool -> KryoNamespace
Change-Id: Ife1c311b40eaab133bb3b8dd3314b98c60b4411d
2014-10-20 09:11:06 -07:00
weibit
38c42ede2e Optical topology provider for UC1
Change-Id: I1b25c9412b5180f9dce167f8700eb84baba70486
2014-10-17 11:09:34 -07:00
alshabib
75e774203d Merge branch 'master' of ssh://gerrit.onlab.us:29418/onos-next
Conflicts:
	core/store/hz/net/src/main/java/org/onlab/onos/store/device/impl/DistributedDeviceStore.java
	core/store/hz/net/src/test/java/org/onlab/onos/store/device/impl/DistributedDeviceStoreTest.java
	features/features.xml
	tools/test/cells/office

Change-Id: I08e6d7c6a0bdaae072dd50ff7ac36d94f16d77e1
2014-10-16 18:03:40 -07:00
alshabib
7911a05aae lldp discovery independent of OF
Change-Id: I720f727f6628e30e5d732e6d7bf742d1b7050812
2014-10-16 17:49:37 -07:00
Jonathan Hart
20d8e5140b Ported BGP tests from old codebase 2014-10-16 11:44:57 -07:00
Jonathan Hart
bcae7bdf0e Removed faulty toInt method and renamed toRealInt to toInt. 2014-10-16 10:26:54 -07:00
Jonathan Hart
ab63aacae2 Port the BGP implementation of SDN-IP. 2014-10-16 09:51:38 -07:00
Jonathan Hart
335ef46cc1 Port the Router functionality from SDN-IP.
As part of this we added an onlab-thirdparty artifact which allows us to
bring in dependencies that aren't bundles.
2014-10-16 08:26:31 -07:00
Yuta HIGUCHI
7f3df231e1 avoid unnecessary boxing
Change-Id: I1fd423ea521149e24ce159af48bc6d1da6f37646
2014-10-15 23:38:24 -07:00
Jonathan Hart
dc711bd59d Ported PeerConnectivity onto ONOS next, and implemented a service that can
construct Interface objects based on PortAddresses from HostService.
2014-10-15 11:27:04 -07:00