public final class ConfigIni {
- protected static final Logger LOG = LoggerFactory.getLogger(ConfigIni.class);
+ private static final Logger LOG = LoggerFactory.getLogger(ConfigIni.class);
private boolean mappingMerge;
private boolean smr;
private String elpPolicy;
private long smrTimeout;
private int smrRetryCount;
private boolean authEnabled;
+ private int negativeMappingTTL;
private int numberOfBucketsInTimeBucketWheel;
/*
private static final String LISP_SMR_RETRY_COUNT = "lisp.smrRetryCount";
private static final String LISP_SMR_TIMEOUT = "lisp.smrTimeout";
private static final String LISP_AUTH_ENABLED = "lisp.authEnabled";
+ private static final String LISP_NEGATIVE_MAPPING_TTL = "lisp.negativeMappingTTL";
// SB Map Register validity period in milliseconds. Default is 3.3 minutes.
private static final long MIN_REGISTRATION_VALIDITY_SB = 200000L;
private static final long DEFAULT_SMR_TIMEOUT = 3000L;
private static final int DEFAULT_SMR_RETRY_COUNT = 5;
+ private static final int DEFAULT_NEGATIVE_MAPPING_TTL = 15;
private static final int MIN_NUMBER_OF_BUCKETS_IN_TIME_BUCKET_WHEEL = 2;
private static final int TIMEOUT_TOLERANCE_MULTIPLIER_IN_TIME_BUCKET_WHEEL = 2;
initSmrRetryCount(context);
initSmrTimeout(context);
initAuthEnabled(context);
+ initNegativeMappingTTL(context);
initBucketNumber();
}
}
try {
- this.smrRetryCount = Integer.valueOf(str);
+ this.smrRetryCount = Integer.parseInt(str);
LOG.debug("Setting configuration variable '{}' to '{}'", LISP_SMR_RETRY_COUNT, smrRetryCount);
} catch (NumberFormatException e) {
LOG.debug("Configuration variable '{}' was not set correctly. SMR retry count "
}
try {
- this.smrTimeout = Long.valueOf(str);
+ this.smrTimeout = Long.parseLong(str);
LOG.debug("Setting configuration variable '{}' to '{}'", LISP_SMR_TIMEOUT, smrTimeout);
} catch (NumberFormatException e) {
LOG.debug("Configuration variable '{}' was not set correctly. SMR timeout "
}
}
+ private void initNegativeMappingTTL(BundleContext context) {
+ // set the default value first
+ this.negativeMappingTTL = DEFAULT_NEGATIVE_MAPPING_TTL;
+
+ String str = null;
+
+ if (context != null) {
+ str = context.getProperty(LISP_NEGATIVE_MAPPING_TTL);
+ }
+
+ if (str == null) {
+ str = System.getProperty(LISP_NEGATIVE_MAPPING_TTL);
+ if (str == null) {
+ LOG.debug("Configuration variable '{}' is unset. Setting to default value: '{}'",
+ LISP_NEGATIVE_MAPPING_TTL, negativeMappingTTL);
+ return;
+ }
+ }
+
+ try {
+ this.negativeMappingTTL = Integer.parseInt(str);
+ LOG.debug("Setting configuration variable '{}' to '{}'", LISP_NEGATIVE_MAPPING_TTL, negativeMappingTTL);
+ } catch (NumberFormatException e) {
+ LOG.debug("Configuration variable '{}' was not set correctly. Negative TTL "
+ + "is set to default value ({} minutes)", LISP_NEGATIVE_MAPPING_TTL, negativeMappingTTL);
+ }
+ }
+
//one bucket should contain mapping of approximate 1 min time frame
private void initBucketNumber() {
numberOfBucketsInTimeBucketWheel = (int) (TimeUnit.MILLISECONDS.toMinutes(getRegistrationValiditySb()) + 1);
return registrationValiditySb;
}
+ public long getDefaultRegistrationValiditySb() {
+ return MIN_REGISTRATION_VALIDITY_SB;
+ }
+
public void setRegistrationValiditySb(long registrationValiditySb) {
this.registrationValiditySb = registrationValiditySb;
if (registrationValiditySb < MIN_REGISTRATION_VALIDITY_SB) {
this.authEnabled = authEnabled;
}
+ public void setNegativeMappingTTL(int negativeMappingTTL) {
+ LOG.debug("Setting configuration variable '{}' to '{}'", LISP_NEGATIVE_MAPPING_TTL, negativeMappingTTL);
+ this.negativeMappingTTL = negativeMappingTTL;
+ }
+
+ public int getNegativeMappingTTL() {
+ return this.negativeMappingTTL;
+ }
+
public int getNumberOfBucketsInTimeBucketWheel() {
return numberOfBucketsInTimeBucketWheel;
}