use of org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey in project lispflowmapping by opendaylight.
the class MultiTableMapCache method addMapping.
public void addMapping(Eid key, Object value) {
Eid eid = MaskUtil.normalize(key);
ILispDAO table = getOrInstantiateVniTable(key);
if (eid.getAddress() instanceof SourceDestKey) {
Eid srcKey = SourceDestKeyHelper.getSrcBinary(eid);
ILispDAO srcDstDao = getOrInstantiateSDInnerDao(eid, table);
srcDstDao.put(srcKey, new MappingEntry<>(SubKeys.RECORD, value));
} else {
table.put(eid, new MappingEntry<>(SubKeys.RECORD, value));
}
}
use of org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey in project lispflowmapping by opendaylight.
the class MultiTableMapCache method getData.
@Override
public Object getData(Eid eid, String subKey) {
Eid key = MaskUtil.normalize(eid);
ILispDAO table = getVniTable(key);
if (table == null) {
return null;
}
if (key.getAddress() instanceof SourceDestKey) {
ILispDAO srcDstDao = getSDInnerDao(key, table);
return srcDstDao.getSpecific(SourceDestKeyHelper.getSrcBinary(key), subKey);
} else {
return table.getSpecific(key, subKey);
}
}
use of org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey in project lispflowmapping by opendaylight.
the class MultiTableMapCache method getMapping.
public Object getMapping(Eid srcEid, Eid dstEid) {
if (dstEid == null) {
return null;
}
ILispDAO table = getVniTable(dstEid);
if (table == null) {
return null;
}
// a map-request for an actual SrcDst LCAF, ignore src eid
if (dstEid.getAddress() instanceof SourceDestKey) {
Eid srcAddr = SourceDestKeyHelper.getSrcBinary(dstEid);
Eid dstAddr = SourceDestKeyHelper.getDstBinary(dstEid);
return getMappingLpmSD(srcAddr, dstAddr, table);
}
// potential map-request for SrcDst LCAF from non SrcDst capable devices
return getMappingLpmSD(srcEid, dstEid, table);
}
use of org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey in project lispflowmapping by opendaylight.
the class LispAddressUtilTest method asSrcDstEid_addressesAsSrcDstKey.
/**
* Tests {@link LispAddressUtil#asSrcDstEid(SourceDestKey, InstanceIdType)} method.
*/
@Test
public void asSrcDstEid_addressesAsSrcDstKey() {
final SourceDestKey expectedSourceDestKey = new SourceDestKeyBuilder().setSource(SIMPLE_ADDRESS_IPV4_PREFIX_TEST).setDest(SIMPLE_ADDRESS_IPV6_PREFIX_TEST).build();
final Eid srcDstEid = LispAddressUtil.asSrcDstEid(expectedSourceDestKey, INSTANCE_ID_TYPE_TEST);
assertNotNull(srcDstEid);
assertEquals(SourceDestKeyLcaf.class, srcDstEid.getAddressType());
final SourceDestKey testedSourceDestKey = ((org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey) srcDstEid.getAddress()).getSourceDestKey();
assertNotNull(testedSourceDestKey);
assertEquals(SIMPLE_ADDRESS_IPV4_PREFIX_TEST, testedSourceDestKey.getSource());
assertEquals(SIMPLE_ADDRESS_IPV6_PREFIX_TEST, testedSourceDestKey.getDest());
}
use of org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.SourceDestKey in project lispflowmapping by opendaylight.
the class MultiTableMapCacheTest method getMappingTest_withSourceDestKey.
/**
* Tests {@link MultiTableMapCache#getMapping} with SourceDestKey address type.
*/
@Test
public void getMappingTest_withSourceDestKey() {
when(daoMock.getSpecific(VNI, SubKeys.VNI)).thenReturn(tableDaoMock);
final Eid dstAddr = SourceDestKeyHelper.getDstBinary(EID_SOURCE_DEST_KEY_TYPE);
final Eid normalizedDstAddr = MaskUtil.normalize(dstAddr);
final Eid srcAddr = SourceDestKeyHelper.getSrcBinary(EID_SOURCE_DEST_KEY_TYPE);
final Eid normalizedSrcAddr = MaskUtil.normalize(srcAddr);
final Map<String, Object> entry = getEntry1();
final Map<String, Object> entry2 = getEntry2();
when(tableDaoMock.getBest(normalizedDstAddr)).thenReturn(entry);
when(srcDstDaoMock.getBest(normalizedSrcAddr)).thenReturn(entry2);
assertEquals(DUMMY_OBJECT_2, multiTableMapCache.getMapping(null, EID_SOURCE_DEST_KEY_TYPE));
assertNull(multiTableMapCache.getMapping(null, null));
assertNull(multiTableMapCache.getMapping(EID_TEST, null));
}
Aggregations