Magnesium platform upgrade
[lispflowmapping.git] / mappingservice / config / src / main / java / org / opendaylight / lispflowmapping / config / ConfigIni.java
index 32b08fc814808912d67b7ffead8dfaec47e2a2fa..1e87312af741ab12a2735050d3e89819529495eb 100644 (file)
@@ -17,7 +17,7 @@ import org.slf4j.LoggerFactory;
 
 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;
@@ -26,6 +26,7 @@ public final class ConfigIni {
     private long smrTimeout;
     private int smrRetryCount;
     private boolean authEnabled;
+    private int negativeMappingTTL;
     private int numberOfBucketsInTimeBucketWheel;
 
     /*
@@ -46,11 +47,13 @@ public final class ConfigIni {
     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;
 
@@ -82,6 +85,7 @@ public final class ConfigIni {
         initSmrRetryCount(context);
         initSmrTimeout(context);
         initAuthEnabled(context);
+        initNegativeMappingTTL(context);
         initBucketNumber();
     }
 
@@ -265,7 +269,7 @@ public final class ConfigIni {
         }
 
         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 "
@@ -293,7 +297,7 @@ public final class ConfigIni {
         }
 
         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 "
@@ -327,6 +331,34 @@ public final class ConfigIni {
         }
     }
 
+    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);
@@ -365,6 +397,10 @@ public final class ConfigIni {
         return registrationValiditySb;
     }
 
+    public long getDefaultRegistrationValiditySb() {
+        return MIN_REGISTRATION_VALIDITY_SB;
+    }
+
     public void setRegistrationValiditySb(long registrationValiditySb) {
         this.registrationValiditySb = registrationValiditySb;
         if (registrationValiditySb < MIN_REGISTRATION_VALIDITY_SB) {
@@ -403,6 +439,15 @@ public final class ConfigIni {
         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;
     }