Initial merge of vpnservice code
[netvirt.git] / vpnservice / bgpmanager / bgpmanager-impl / src / main / java / org / opendaylight / bgpmanager / BgpManager.java
diff --git a/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/BgpManager.java b/vpnservice/bgpmanager/bgpmanager-impl/src/main/java/org/opendaylight/bgpmanager/BgpManager.java
deleted file mode 100644 (file)
index 6e9a1a5..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- * Copyright (c) 2015 - 2016 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.bgpmanager;
-
-import java.lang.management.ManagementFactory;
-import java.util.*;
-import java.util.concurrent.CountDownLatch;
-import javax.management.*;
-import org.apache.thrift.TException;
-import org.opendaylight.bgpmanager.api.IBgpManager;
-import org.opendaylight.bgpmanager.commands.Commands;
-import org.opendaylight.bgpmanager.oam.*;
-import org.opendaylight.bgpmanager.thrift.gen.af_afi;
-import org.opendaylight.bgpmanager.thrift.gen.af_safi;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
-//import org.opendaylight.vpnservice.itm.api.IITMProvider;
-import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.Bgp;
-import org.opendaylight.yang.gen.v1.urn.ericsson.params.xml.ns.yang.ebgp.rev150901.bgp.Neighbors;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.FrameworkUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class BgpManager implements BindingAwareProvider, AutoCloseable, IBgpManager {
-
-    private static final Logger LOGGER = LoggerFactory.getLogger(BgpManager.class);
-    private BgpConfigurationManager bcm;
-    private FibDSWriter fibDSWriter;
-    //private IITMProvider        itmProvider;
-    private DataBroker dataBroker;
-    private BgpAlarmBroadcaster     qbgpAlarmProducer = null;
-    private MBeanServer qbgpAlarmServer = null;
-    private NotificationFilter  qbgpAlarmFilter = null;
-    final static int DEFAULT_STALEPATH_TIME = 210;
-    final static boolean DEFAULT_FBIT = true;
-
-    public BgpCounters bgpCounters;
-    public Timer bgpCountersTimer;
-
-    @Override
-    public void onSessionInitiated(ProviderContext session) {
-        try {
-            dataBroker = session.getSALService(DataBroker.class);
-            fibDSWriter = new FibDSWriter(dataBroker);
-            BgpUtil.setBroker(dataBroker);
-            bcm = new BgpConfigurationManager(this);
-            Commands commands = new Commands(this);
-            ConfigureBgpCli.setBgpManager(this);
-            LOGGER.info("BgpManager started");
-        } catch (Exception e) {
-            LOGGER.error("Failed to start BgpManager: "+e);
-        }
-
-        // Set up the Infra for Posting BGP Alarms as JMX notifications.
-        try {
-            qbgpAlarmProducer = new BgpAlarmBroadcaster();
-            MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
-            ObjectName alarmObj = new ObjectName("SDNC.FM:name=BgpAlarmObj");
-            mbs.registerMBean(qbgpAlarmProducer, alarmObj);
-        } catch (JMException e) {
-            LOGGER.error("Adding a NotificationBroadcaster failed." + e.toString());
-            e.printStackTrace();
-        }
-    }
-
-   @Override
-    public void close() throws Exception {
-        bcm.close(); 
-        LOGGER.info("BgpManager Closed");
-   }
-
-    /*public void setITMProvider(IITMProvider itmProvider) {
-        this.itmProvider = itmProvider;
-    }
-
-    public IITMProvider getItmProvider() { return this.itmProvider; } */
-
-    public Bgp getConfig() {
-      return bcm.get();
-    }
-
-    public void configureGR(int stalepathTime) throws TException {
-      bcm.addGracefulRestart(stalepathTime);
-    }
-
-    public void delGracefulRestart() throws Exception {
-      bcm.delGracefulRestart();
-    }
-
-    public void addNeighbor(String ipAddress, long asNum) throws TException {
-      bcm.addNeighbor(ipAddress, (int) asNum);
-    }
-
-    public void addEbgpMultihop(String ipAddress, int nhops) throws TException {
-      bcm.addEbgpMultihop(ipAddress, nhops);
-    }
-    
-    public void addUpdateSource(String ipAddress, String srcIp) throws TException {
-      bcm.addUpdateSource(ipAddress, srcIp);
-    }
-
-    public void addAddressFamily(String ipAddress, af_afi afi, af_safi safi) throws TException {
-      bcm.addAddressFamily(ipAddress, afi.getValue(), safi.getValue());
-    }
-
-    public void deleteNeighbor(String ipAddress) throws TException {
-      bcm.delNeighbor(ipAddress);
-    }
-
-    @Override
-    public void addVrf(String rd, Collection<String> importRts, Collection<String> exportRts) throws Exception {
-        bcm.addVrf(rd, new ArrayList<String>(importRts), 
-                       new ArrayList<String>(exportRts)); 
-    }
-
-    @Override
-    public void deleteVrf(String rd) throws Exception {
-      bcm.delVrf(rd);
-    }
-
-    @Override
-    public void addPrefix(String rd, String prefix, String nextHop, int vpnLabel) throws Exception {
-      fibDSWriter.addFibEntryToDS(rd, prefix, nextHop, vpnLabel);
-      bcm.addPrefix(rd, prefix, nextHop, vpnLabel);
-    }
-
-    @Override
-    public void deletePrefix(String rd, String prefix) throws Exception {
-      fibDSWriter.removeFibEntryFromDS(rd, prefix);
-      bcm.delPrefix(rd, prefix);
-    }
-
-    @Override
-    public void advertisePrefix(String rd, String prefix, String nextHop, int vpnLabel) throws Exception {
-        bcm.addPrefix(rd, prefix, nextHop, vpnLabel);
-    }
-
-    @Override
-    public void withdrawPrefix(String rd, String prefix) throws Exception {
-        bcm.delPrefix(rd, prefix);
-    }
-
-    public void setQbgpLog(String fileName, String debugLevel) throws Exception {
-      bcm.addLogging(fileName, debugLevel);
-    }
-
-    public void delLogging() throws Exception {
-      bcm.delLogging();
-    }
-
-    public void startBgp(int asn, String routerId, int spt, boolean fbit) {
-      bcm.startBgp(asn, routerId, spt, fbit);
-    }
-
-    public void stopBgp() {
-      bcm.stopBgp();
-    }
-
-    public void startConfig(String host, int port) {
-      bcm.startConfig(host, port);
-    }
-
-    public void stopConfig() {
-      bcm.stopConfig();
-    }
-
-    @Override
-    public String getDCGwIP() {
-        Bgp conf = getConfig();
-        if (conf == null) {
-          return null;
-        }
-        List<Neighbors> nbrs = conf.getNeighbors();
-        if (nbrs == null) {
-          return null;
-        }
-        return nbrs.get(0).getAddress().getValue();
-    }
-
-    public MBeanServer getBgpAlarmServer() {
-        return qbgpAlarmServer;
-    }
-
-    public synchronized void sendNotificationEvent(String pfx, int code, int subcode) {
-        BgpAlarmErrorCodes errorSubCode;
-        if (code != BgpConstants.BGP_NOTIFY_CEASE_CODE) {
-            // CEASE Notifications alone have to be reported to the CBA.
-            // Silently return here. No need to log because tons
-            // of non-alarm notifications will be sent to the SDNc.
-            return;
-        }
-        errorSubCode = BgpAlarmErrorCodes.checkErrorSubcode(subcode);
-        if (errorSubCode == BgpAlarmErrorCodes.ERROR_IGNORE) {
-            // Need to report only those subcodes, defined in
-            // BgpAlarmErrorCodes enum class.
-            return;
-        }
-        String alarmString = "";
-        alarmString = "Alarm (" + code + "," + subcode + ") from neighbor " + pfx;
-        qbgpAlarmProducer.sendBgpAlarmInfo(pfx, code, subcode);
-    }
-
-    public Timer getBgpCountersTimer() {
-        return bgpCountersTimer;
-    }
-
-    public BgpCounters getBgpCounters() {
-        return bgpCounters;
-    }
-
-    public  void setBgpCountersTimer (Timer t) {
-        bgpCountersTimer = t;
-    }
-
-    public void startBgpCountersTask() {
-        if (getBgpCounters() == null) {
-
-            try {
-                bgpCounters = new BgpCounters();
-                setBgpCountersTimer(new Timer(true));
-                getBgpCountersTimer().scheduleAtFixedRate(bgpCounters, 0, 120 * 1000);
-
-
-                LOGGER.info("Bgp Counters task scheduled for every two minutes.");
-            } catch (Exception e) {
-                System.out.println("Could not start the timertask for Bgp Counters.");
-                e.printStackTrace();
-            }
-
-            try {
-                setQbgpLog(BgpConstants.BGP_DEF_LOG_FILE, BgpConstants.BGP_DEF_LOG_LEVEL);
-            } catch (Exception e) {
-                System.out.println("Could not set the default options for logging");
-            }
-        }
-    }
-
-    public void stopBgpCountersTask() {
-        Timer t = getBgpCountersTimer();
-        if (getBgpCounters() != null) {
-            t.cancel();
-            setBgpCountersTimer(null);
-            bgpCounters = null;
-        }
-    }
-
-    public FibDSWriter getFibWriter() {
-        return fibDSWriter;
-    } 
-
-    public DataBroker getBroker() {
-        return dataBroker;
-    } 
-
-    public String getConfigHost() {
-        return bcm.getConfigHost();
-    }
-
-    public int getConfigPort() {
-        return bcm.getConfigPort();
-    }
-
-    public void bgpRestarted() {
-        bcm.bgpRestarted();
-    }
-}