ONOS-511: Implement NeighborSolicitation
Change-Id: I9aaf35d499cfc7885c74f9c4bf281210ef9f3969
ONOS-507: Trace NeighborSolicitation/NeighborAdvertisement/IPv6 packets in HostLocationProvider
* Complete Javadoc of IPv6, ICMP6, NeighborAdvertisement and NeighborSolicitation
- The Javadoc for serialize() is removed since the one in its superclass just works fine.
* Change 'diffServ' in IPv6 to 'trafficClass' to meet the field name in RFC.
- The setter method, getter method and unit test are also updated accordingly.
* Add IpAddress.isZero() to determine if this address is zero.
- The unit test is also updated accordingly.
* Fix misuse of IpAddress.valueOf(int) in HostLocationProvider
Change-Id: Id0d873aeb1bc61bf26d4964e7aab4bb06ccd0a38
Create ICMP6 class, which is mostly like ICMP
Change-Id: I11d7abec4a8f1fd202e5dfb0a500f621773c2c3a
Create IPv6 class, which is mostly like IPv4
Change-Id: I7a301a0f94263df5d6d30f73050332ec7acfe611
Register handler class of IPv6 to Ethernet
Change-Id: Iccdef1680664520f9d66360a289809710982ce54
Fix FIXED_HEADER_LENGTH
Change-Id: Iff4fb22638416595f2865ff46b682a0579ba33d5
Fix payloadLength
Change-Id: I8dea4dd52f0bb5926fbff0d9e74fdd19404cabff
Add unittest for serialize
Change-Id: If194aa2530ce517a33b36b97b8478b0a4c463954
Add unittest for deserialize. Fix assertArrayEquals. Refine test structure.
Change-Id: I94f2a348b2be2f5907d8bac6b9029b37eb31456d
Payload length should be handled during serializing/deserializing procedure
Change-Id: Ib079bf939a01a38356c824ed972793293ed8ca1e
Add unittest for comparator
Change-Id: I937dd9330d7c23a81ecd8434ac0fcf7345cc5c00
Fix typo. Fix checkstyle error
Change-Id: I2fe1af81c65416b0fddaa0fb9ae206b87b889628
Add implementation and unittest for NeighborAdvertisement
Change-Id: I7610462a5712f9fee5be0416c08e1de302e0780d
Register handler class of NeighborAdvertisement to ICMP6
Change-Id: I3a7a9cf044cfdcd8908579942c159c2f0aad198d
- removed tests no longer useful now that all Intent objects are unique
- fixed intent object equality tests
- enabled several immutable base class tests
- renamed several Test....java classes to ...Test.Java to
match project best practices
Change-Id: Ic829d6d39556d2f63323f5e82f3807dba86c62ec
Fixed some code that was reporting findbugs errors
Implemented a suppression mechanism for findbugs
reported errors and a suppression file.
Change-Id: Ie8a2e84cc57ec6ddfa14d782ee89feb095b9dd59
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
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
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.
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
- 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.
* 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
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
* Added new static methods IpAddress.makeMaskPrefix and
IpAddress.makeMaskedAddress
* Cleanup
Also, removed obsoleted Javadoc comments in Ip4Prefix and Ip6Prefix classes
* 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.