*/
package org.opendaylight.lispflowmapping.southbound.lisp.cache;
-import com.google.common.base.Optional;
import java.net.InetAddress;
import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
+import java.util.Optional;
import org.opendaylight.lispflowmapping.lisp.serializer.MapRegisterSerializer;
import org.opendaylight.lispflowmapping.lisp.util.ByteUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana.afn.safi.rev130704.AddressFamily;
public final class MapRegisterPartialDeserializer {
- /**
+ /*
* Consists of:
* - 4bits Type,
* - 1bit P,
*/
private static final int PAYLOAD1_LEN = 4;
- /**
+ /*
* Consists of:
* - 64bits Nonce
*/
private static final int SKIP1_LEN = 8;
- /**
+ /*
* Consists of:
* - 16bits - Key ID
*/
private static final int NUM_OF_BYTES_FROM_START_TO_AUTH_DATA_LENGTH_POS = PAYLOAD1_LEN + SKIP1_LEN + PAYLOAD2_LEN;
private static final int NUM_OF_BYTES_AUTHENTICATION_DATA_LENGTH = 2;
- /**
+ /*
* Consists of:
* - 32bits Record TTL
* - 8bits Locator Count
return new HashMap.SimpleEntry<>(mapRegisterCacheKey, relevantPayloadData);
}
- /**
+ /*
* Extract from buffer the data which doesn't change.
*
* It means that nonce and authentication items are ommited (skipped).
private static byte[] extractEidPrefix(final ByteBuffer buffer, int authDataLength) {
final int startPositionOfEidPrefixAFI = NUM_OF_BYTES_FROM_START_TO_AUTH_DATA_LENGTH_POS
- + NUM_OF_BYTES_AUTHENTICATION_DATA_LENGTH + authDataLength +
- NUM_OF_BYTES_FROM_AUTH_DATA_TO_EID_PREFIX_AFI;
+ + NUM_OF_BYTES_AUTHENTICATION_DATA_LENGTH + authDataLength
+ + NUM_OF_BYTES_FROM_AUTH_DATA_TO_EID_PREFIX_AFI;
buffer.position(startPositionOfEidPrefixAFI);
final int eidPrefixAfi = ByteUtil.getUnsignedShort(buffer, startPositionOfEidPrefixAFI);
Optional<Integer> eidPrefixLengthOpt = resolveEidPrefixAfi(eidPrefixAfi, buffer);
if (eidPrefixLengthOpt.isPresent()) {
- final byte[] eidPrefix = new byte[eidPrefixLengthOpt.get()];
+ final byte[] eidPrefix = new byte[eidPrefixLengthOpt.orElseThrow()];
final int startPositionOfEidPrefix = startPositionOfEidPrefixAFI + NUM_OF_BYTES_EID_PREFIX_AFI;
buffer.position(startPositionOfEidPrefix);
buffer.get(eidPrefix);
case LispCanonicalAddressFormat:
buffer.position(buffer.position() + NUM_OF_BYTES_FROM_EID_PREFIX_AFI_TO_LCAF_LENGTH);
final short lengthRawValue = buffer.getShort();
- final int length = (int)(lengthRawValue & 0xFFFF);
+ final int length = lengthRawValue & 0xFFFF;
buffer.position(0);
return Optional.of(NUM_OF_BYTES_FROM_LCAF_RSVD1_TO_LCAF_LENGTH + length);
default:
- return Optional.absent();
+ return Optional.empty();
}
}