2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.lispflowmapping.implementation.config;
10 import org.osgi.framework.Bundle;
11 import org.osgi.framework.BundleContext;
12 import org.osgi.framework.FrameworkUtil;
13 import org.slf4j.Logger;
14 import org.slf4j.LoggerFactory;
16 public class ConfigIni {
17 protected static final Logger LOG = LoggerFactory.getLogger(ConfigIni.class);
18 private boolean mappingOverwrite;
20 private String elpPolicy;
22 private static final String LISP_MAPPING_OVERWRITE = "lisp.mappingOverwrite";
23 private static final String LISP_SMR = "lisp.smr";
24 private static final String LISP_ELP_POLICY = "lisp.elpPolicy";
27 Bundle b = FrameworkUtil.getBundle(this.getClass());
28 BundleContext context = null;
30 context = b.getBundleContext();
33 initMappingOverwrite(context);
35 initElpPolicy(context);
38 private void initMappingOverwrite(BundleContext context) {
39 // set the default value first
40 this.mappingOverwrite = true;
44 if (context != null) {
45 str = context.getProperty(LISP_MAPPING_OVERWRITE);
49 str = System.getProperty(LISP_MAPPING_OVERWRITE);
51 LOG.debug("Configuration variable '{}' is unset. Setting to default value: 'true'", LISP_MAPPING_OVERWRITE);
56 if (str.trim().equalsIgnoreCase("false")) {
57 this.mappingOverwrite = false;
58 LOG.debug("Setting configuration variable '{}' to 'false'", LISP_MAPPING_OVERWRITE);
60 LOG.debug("Setting configuration variable '{}' to 'true'", LISP_MAPPING_OVERWRITE);
64 private void initSmr(BundleContext context) {
65 // set the default value first
70 if (context != null) {
71 str = context.getProperty(LISP_SMR);
75 str = System.getProperty(LISP_SMR);
77 LOG.debug("Configuration variable '{}' is unset. Setting to default value: 'true'", LISP_SMR);
82 if (str.trim().equalsIgnoreCase("false")) {
84 LOG.debug("Setting configuration variable '{}' to 'false'", LISP_SMR);
86 LOG.debug("Setting configuration variable '{}' to 'true'", LISP_SMR);
90 private void initElpPolicy(BundleContext context) {
91 // set the default value first
92 this.elpPolicy = "default";
96 if (context != null) {
97 str = context.getProperty(LISP_ELP_POLICY);
101 str = System.getProperty(LISP_ELP_POLICY);
103 LOG.debug("Configuration variable '{}' is unset. Setting to default value: 'default' (ELP only)",
109 if (str.trim().equalsIgnoreCase("both")) {
110 this.elpPolicy = "both";
111 LOG.debug("Setting configuration variable '{}' to 'both' (keep ELP, add next hop)", LISP_ELP_POLICY);
112 } else if (str.trim().equalsIgnoreCase("replace")) {
113 this.elpPolicy = "replace";
114 LOG.debug("Setting configuration variable '{}' to 'replace' (next hop only)", LISP_ELP_POLICY);
116 LOG.debug("Setting configuration variable '{}' to 'default' (ELP only)", LISP_ELP_POLICY);
120 public boolean mappingOverwriteIsSet() {
121 return mappingOverwrite;
124 public boolean smrIsSet() {
128 public String getElpPolicy() {