public void before() throws Exception {
areWeReady();
mapService.setLookupPolicy(IMappingService.LookupPolicy.NB_FIRST);
- mapService.setMappingOverwrite(true);
+ mapService.setMappingMerge(false);
locatorEid = LispAddressUtil.asIpv4Rloc("4.3.2.1");
socket = initSocket(socket, LispMessage.PORT_NUM);
final SocketReader socketReader = SocketReader.startReadingInStandaloneThread(socket);
mapService.setLookupPolicy(IMappingService.LookupPolicy.NB_AND_SB);
- mapService.setMappingOverwrite(false);
+ mapService.setMappingMerge(true);
//TEST CASE 1
multiSiteScenario.storeSouthboundMappings(true, SITE_A_SB, SITE_B_SB, SITE_C_WP_100_1_SB, SITE_D_WP_100_1_SB,
public void testMapRegisterOverwritesNoSubkey() throws SocketTimeoutException {
cleanUP();
- mapService.setMappingOverwrite(true);
+ mapService.setMappingMerge(false);
Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("1.2.3.4/32");
Rloc rloc1Value = LispAddressUtil.asIpv4Rloc("4.3.2.1");
Rloc rloc2Value = LispAddressUtil.asIpv4Rloc("4.3.2.2");
public void testMapRegisterDoesntOverwritesNoSubkey() throws SocketTimeoutException {
cleanUP();
- mapService.setMappingOverwrite(false);
+ mapService.setMappingMerge(true);
Eid eid = LispAddressUtil.asIpv4PrefixBinaryEid("1.2.3.4/32");
Rloc rloc1Value = LispAddressUtil.asIpv4Rloc("4.3.2.1");
Rloc rloc2Value = LispAddressUtil.asIpv4Rloc("4.3.2.2");
private void timedOutMappingRecord() {
cleanUP();
- mapService.setMappingOverwrite(false);
+ mapService.setMappingMerge(true);
// mapping expires after 1 second
ConfigIni.getInstance().setRegistrationValiditySb(1000L);
void setIterateMask(boolean iterate);
/**
- * Configure overwrite policy. If set to true, mappings are overwritten.
+ * Configure merge policy. If set to true, mappings are merged.
*
- * @param overwrite
+ * @param mappingMerge
* Value to configure
*/
- void setOverwritePolicy(boolean overwrite);
+ void setMappingMerge(boolean mappingMerge);
/**
* Print all mappings. Used for testing, debugging and the karaf shell.
void removeData(MappingOrigin origin, Eid key, String subKey);
/**
- * Configures Mapping Service mapping overwrite option. If set to true, mappings with the same key are overwritten,
+ * Configures Mapping Service mapping merge option. If set to false, mappings with the same key are overwritten,
* otherwise, mappings with the same key but from different xTR-IDs are all stored.
*
- * @param overwrite
- * enables or disables mapping overwrite
+ * @param mappingMerge
+ * enables or disables mapping merge
*/
- void setMappingOverwrite(boolean overwrite);
+ void setMappingMerge(boolean mappingMerge);
/**
* Configures Mapping Service mapping lookup policy option.
protected static final Logger LOG = LoggerFactory.getLogger(ConfigIni.class);
private boolean mappingMerge;
- private boolean mappingOverwrite;
private boolean smr;
private String elpPolicy;
private IMappingService.LookupPolicy lookupPolicy;
private long smrTimeout;
private int smrRetryCount;
- // 'lisp.mappingMerge' and 'lisp.mappingOverWrite' are not independent, and they can't be both 'true'
- // when there is a conflict, the setting in 'lisp.mappingMerge' takes precendence
- // 'lisp.mappingOverwrite' defines the database behavior while 'lisp.mappingMerge' affects the result
- // returned in Map-Replies
-
private static final String LISP_LOOKUP_POLICY = "lisp.lookupPolicy";
private static final String LISP_MAPPING_MERGE = "lisp.mappingMerge";
- private static final String LISP_MAPPING_OVERWRITE = "lisp.mappingOverwrite";
private static final String LISP_SMR = "lisp.smr";
private static final String LISP_ELP_POLICY = "lisp.elpPolicy";
private static final String LISP_REGISTER_VALIDITY_SB = "lisp.registerValiditySb";
context = bundle.getBundleContext();
}
- // Initialize mappingMerge first, since mappingOverwrite depends on it
initMappingMerge(context);
- initMappingOverwrite(context);
initSmr(context);
initElpPolicy(context);
initLookupPolicy(context);
}
}
- private void initMappingOverwrite(BundleContext context) {
- // set the default value first
- this.mappingOverwrite = true;
-
- String str = null;
-
- if (context != null) {
- str = context.getProperty(LISP_MAPPING_OVERWRITE);
- }
-
- if (str == null) {
- str = System.getProperty(LISP_MAPPING_OVERWRITE);
- if (str == null) {
- if (this.mappingMerge) {
- // If merge is enabled and overwriting configuration is not set, disable it
- LOG.debug("Configuration variable '{}' is unset. Since '{}'=true setting to 'false'",
- LISP_MAPPING_OVERWRITE, LISP_MAPPING_MERGE);
- this.mappingOverwrite = false;
- } else {
- LOG.debug("Configuration variable '{}' is unset. Setting to default value: 'true'",
- LISP_MAPPING_OVERWRITE);
- }
- return;
- }
- }
-
- if (str.trim().equalsIgnoreCase("false")) {
- this.mappingOverwrite = false;
- LOG.debug("Setting configuration variable '{}' to 'false'", LISP_MAPPING_OVERWRITE);
- } else {
- if (this.mappingMerge) {
- LOG.warn("Can't set configuration variable '{}' to 'true' since '{}' is enabled",
- LISP_MAPPING_OVERWRITE, LISP_MAPPING_MERGE);
- LOG.warn("If you really need to enable overwriting, please disable merging.");
- LOG.debug("Setting configuration variable '{}' to 'false'", LISP_MAPPING_OVERWRITE);
- this.mappingOverwrite = false;
- } else {
- LOG.debug("Setting configuration variable '{}' to 'true'", LISP_MAPPING_OVERWRITE);
- }
- }
- }
-
private void initSmr(BundleContext context) {
// set the default value first
this.smr = true;
return mappingMerge;
}
- public boolean mappingOverwriteIsSet() {
- return mappingOverwrite;
- }
-
- public void setMappingOverwrite(boolean mappingOverwrite) {
- LOG.debug("Setting configuration variable '{}' to '{}'", LISP_MAPPING_OVERWRITE, mappingOverwrite);
- this.mappingOverwrite = mappingOverwrite;
- LOG.debug("Setting configuration variable '{}' to '{}'", LISP_MAPPING_MERGE, !(mappingOverwrite));
- this.mappingMerge = !(mappingOverwrite);
+ public void setMappingMerge(boolean mappingMerge) {
+ LOG.debug("Setting configuration variable '{}' to '{}'", LISP_MAPPING_MERGE, (mappingMerge));
+ this.mappingMerge = (mappingMerge);
}
public boolean smrIsSet() {
private final DataBroker dataBroker;
private final NotificationPublishService notificationPublishService;
- private boolean overwritePolicy = ConfigIni.getInstance().mappingOverwriteIsSet();
+ private boolean mappingMergePolicy = ConfigIni.getInstance().mappingMergeIsSet();
private boolean notificationPolicy = ConfigIni.getInstance().smrIsSet();
private boolean iterateMask = true;
private boolean isMaster = false;
@Override
- public void setMappingOverwrite(boolean overwrite) {
- this.overwritePolicy = overwrite;
+ public void setMappingMerge(boolean mergeMapping) {
+ this.mappingMergePolicy = mergeMapping;
if (mappingSystem != null) {
- mappingSystem.setOverwritePolicy(overwrite);
- ConfigIni.getInstance().setMappingOverwrite(overwrite);
+ mappingSystem.setMappingMerge(mergeMapping);
+ ConfigIni.getInstance().setMappingMerge(mappingMergePolicy);
}
}
LOG.info("Mapping Service initializing...");
dsbe = new DataStoreBackEnd(dataBroker);
- mappingSystem = new MappingSystem(dao, iterateMask, notificationPolicy, overwritePolicy);
+ mappingSystem = new MappingSystem(dao, iterateMask, notificationPolicy, mappingMergePolicy);
mappingSystem.setDataStoreBackEnd(dsbe);
mappingSystem.initialize();
public class MappingSystem implements IMappingSystem {
private static final Logger LOG = LoggerFactory.getLogger(MappingSystem.class);
private boolean notificationService;
- private boolean overwrite;
+ private boolean mappingMerge;
private ILispDAO dao;
private ILispMapCache smc;
private IMapCache pmc;
private DataStoreBackEnd dsbe;
private boolean isMaster = false;
- public MappingSystem(ILispDAO dao, boolean iterateMask, boolean notifications, boolean overwrite) {
+ public MappingSystem(ILispDAO dao, boolean iterateMask, boolean notifications, boolean mappingMerge) {
this.dao = dao;
this.notificationService = notifications;
- this.overwrite = overwrite;
+ this.mappingMerge = mappingMerge;
buildMapCaches();
}
}
@Override
- public void setOverwritePolicy(boolean overwrite) {
- this.overwrite = overwrite;
+ public void setMappingMerge(boolean mappingMerge) {
+ this.mappingMerge = mappingMerge;
}
@Override
LOG.warn("addMapping() called will null xTR-ID in MappingRecord, while merge is set, ignoring");
return;
}
- if (xtrId != null && !overwrite) {
+ if (xtrId != null && mappingMerge) {
smc.addMapping(key, xtrId, mappingData);
}
if (xtrId != null && mappingData.isMergeEnabled()) {
mappingSystem.destroy();
mappingSystem = new MappingSystem(daoMock, true, true, true);
mappingSystem.setDataStoreBackEnd(dsbeMock);
- mappingSystem.setOverwritePolicy(true);
+ mappingSystem.setMappingMerge(false);
mappingSystem.setIterateMask(true);
}