Search in sources :

Example 1 with MapRegisterCacheKeyBuilder

use of org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKeyBuilder in project lispflowmapping by opendaylight.

the class MapRegisterPartialDeserializer method createKeyFromBytes.

private static MapRegisterCacheKey createKeyFromBytes(final ByteBuffer buffer, int authDataLength) {
    byte typeAndFlags = buffer.get();
    buffer.position(0);
    boolean xtrSiteIdPresent = ByteUtil.extractBit(typeAndFlags, XTR_SITE_ID);
    if (!xtrSiteIdPresent) {
        return null;
    }
    final MapRegisterCacheKeyBuilder mapRegisterCacheKeyBuilder = new MapRegisterCacheKeyBuilder();
    final byte[] eidPrefix = extractEidPrefix(buffer, authDataLength);
    if (eidPrefix == null) {
        return null;
    }
    mapRegisterCacheKeyBuilder.setEidPrefix(eidPrefix);
    if (xtrSiteIdPresent) {
        buffer.position(0);
        final int bufferLength = buffer.remaining();
        buffer.position(bufferLength - MapRegisterSerializer.Length.XTRID_SIZE - MapRegisterSerializer.Length.SITEID_SIZE);
        byte[] xtrId = new byte[MapRegisterSerializer.Length.XTRID_SIZE];
        buffer.get(xtrId);
        mapRegisterCacheKeyBuilder.setXtrId(xtrId);
        byte[] siteId = new byte[MapRegisterSerializer.Length.SITEID_SIZE];
        buffer.get(siteId);
        mapRegisterCacheKeyBuilder.setSiteId(siteId);
    }
    return mapRegisterCacheKeyBuilder.build();
}
Also used : MapRegisterCacheKeyBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKeyBuilder)

Example 2 with MapRegisterCacheKeyBuilder

use of org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKeyBuilder in project lispflowmapping by opendaylight.

the class LispSouthboundHandlerTest method cacheRecordExpirationTest.

private void cacheRecordExpirationTest(boolean cacheRecordTimeouted) throws InterruptedException {
    mapRegisterCache = Mockito.mock(MapRegisterCache.class);
    Mockito.when(mockLispSouthboundPlugin.getMapRegisterCache()).thenReturn(mapRegisterCache);
    final byte[] eidPrefixAfi = new byte[] { 0x00, 0x01 };
    final byte[] eidPrefix = new byte[] { 0x0a, 0x0a, 0x0a, 0x0a };
    MapRegisterCacheKeyBuilder cacheKeyBld = new MapRegisterCacheKeyBuilder();
    cacheKeyBld.setXtrId(XTR_ID);
    cacheKeyBld.setEidPrefix(eidPrefix);
    cacheKeyBld.setSiteId(SITE_ID);
    MapRegisterCacheMetadataBuilder cacheMetadataBld = new MapRegisterCacheMetadataBuilder();
    cacheMetadataBld.setTimestamp(System.currentTimeMillis() - (cacheRecordTimeouted ? CACHE_RECORD_TIMEOUT : 0L));
    cacheMetadataBld.setWantMapNotify(false);
    MapRegisterCacheValueBuilder cacheValueBld = new MapRegisterCacheValueBuilder();
    cacheValueBld.setMapRegisterCacheMetadata(cacheMetadataBld.build());
    cacheValueBld.setPacketData(MapRegisterCacheTestUtil.joinArrays(DATA1, KEY_ID, DATA2, eidPrefixAfi, eidPrefix, DATA3, XTR_ID, SITE_ID));
    final MapRegisterCacheKey cacheKey = cacheKeyBld.build();
    final MapRegisterCacheValue cacheValue = cacheValueBld.build();
    Mockito.when(mapRegisterCache.getEntry(Mockito.eq(cacheKey))).thenReturn(cacheRecordTimeouted ? null : cacheValue);
    Mockito.when(mapRegisterCache.refreshEntry(Mockito.eq(cacheKey))).thenReturn(cacheValue);
    mapRegisterInvocationForCacheTest(eidPrefixAfi, eidPrefix);
    Mockito.verify(mockLispSouthboundPlugin, Mockito.atLeastOnce()).sendNotificationIfPossible(Mockito.any(AddMapping.class));
    InOrder inOrder = Mockito.inOrder(mapRegisterCache);
    inOrder.verify(mapRegisterCache).getEntry(Mockito.eq(cacheKey));
    if (cacheRecordTimeouted) {
        inOrder.verify(mapRegisterCache).addEntry(Mockito.eq(cacheKey), AdditionalMatchers.not(Mockito.eq(cacheValue)));
    } else {
        inOrder.verify(mapRegisterCache).refreshEntry(Mockito.eq(cacheKey));
    }
}
Also used : MapRegisterCacheKeyBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKeyBuilder) MapRegisterCacheKey(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKey) InOrder(org.mockito.InOrder) MapRegisterCacheMetadataBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container.MapRegisterCacheMetadataBuilder) AddMapping(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.AddMapping) MapRegisterCacheValueBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.value.grouping.MapRegisterCacheValueBuilder) MapRegisterCache(org.opendaylight.lispflowmapping.southbound.lisp.cache.MapRegisterCache) MapRegisterCacheValue(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.value.grouping.MapRegisterCacheValue)

Example 3 with MapRegisterCacheKeyBuilder

use of org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKeyBuilder in project lispflowmapping by opendaylight.

the class MapRegisterCacheTestUtil method createMapRegisterCacheKey.

static MapRegisterCacheKey createMapRegisterCacheKey(final byte[] eidPrefix) {
    final MapRegisterCacheKeyBuilder mapRegisterCacheKeyBuilder = new MapRegisterCacheKeyBuilder();
    mapRegisterCacheKeyBuilder.setXtrId(XTR_ID);
    mapRegisterCacheKeyBuilder.setSiteId(SITE_ID);
    mapRegisterCacheKeyBuilder.setEidPrefix(eidPrefix);
    return mapRegisterCacheKeyBuilder.build();
}
Also used : MapRegisterCacheKeyBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKeyBuilder)

Aggregations

MapRegisterCacheKeyBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKeyBuilder)3 InOrder (org.mockito.InOrder)1 MapRegisterCache (org.opendaylight.lispflowmapping.southbound.lisp.cache.MapRegisterCache)1 AddMapping (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.AddMapping)1 MapRegisterCacheKey (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.key.container.MapRegisterCacheKey)1 MapRegisterCacheMetadataBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container.MapRegisterCacheMetadataBuilder)1 MapRegisterCacheValue (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.value.grouping.MapRegisterCacheValue)1 MapRegisterCacheValueBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.value.grouping.MapRegisterCacheValueBuilder)1