*/\r
package org.opendaylight.vpnservice;\r
\r
-import java.util.Collections;\r
+\r
import java.util.List;\r
-import java.util.Map;\r
-import java.util.Set;\r
-import java.util.concurrent.Future;\r
\r
import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;\r
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;\r
import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;\r
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.Interfaces;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.l3vpn.rev130911.NextHopList;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.l3vpn.rev130911.next.hop.list.*;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.l3vpn.rev130911.next.hop.list.L3NextHops;\r
import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.VpnInterfaces;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.l3vpn.rev130911.VpnInterface1;\r
import org.opendaylight.yang.gen.v1.urn.huawei.params.xml.ns.yang.l3vpn.rev140815.vpn.interfaces.VpnInterface;\r
import com.google.common.base.Optional;\r
import com.google.common.collect.FluentIterable;\r
\r
-public class VpnInterfaceManager extends AbstractDataChangeListener<VpnInterface> implements AutoCloseable{\r
+public class VpnInterfaceManager extends AbstractDataChangeListener<VpnInterface> implements AutoCloseable {\r
private static final Logger LOG = LoggerFactory.getLogger(VpnInterfaceManager.class);\r
private ListenerRegistration<DataChangeListener> listenerRegistration;\r
private final DataBroker broker;\r
- \r
+\r
+ /**\r
+ * Responsible for listening to data change related to VPN Interface\r
+ * Bind VPN Service on the interface and informs the BGP service\r
+ * \r
+ * @param db - dataBroker service reference\r
+ */\r
public VpnInterfaceManager(final DataBroker db) {\r
super(VpnInterface.class);\r
broker = db;\r
}\r
LOG.info("VPN Interface Manager Closed");\r
}\r
- \r
+\r
private void registerListener(final DataBroker db) {\r
try {\r
listenerRegistration = db.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION,\r
InstanceIdentifier.builder(Interfaces.class).child(Interface.class, new InterfaceKey(interfaceName));\r
InstanceIdentifier<Interface> id = idBuilder.build();\r
Optional<Interface> port = read(LogicalDatastoreType.CONFIGURATION, id);\r
- if(port.isPresent()) {\r
+ if (port.isPresent()) {\r
Interface interf = port.get();\r
bindServiceOnInterface(interf);\r
updateNextHops(identifier);\r
//Read NextHops\r
InstanceIdentifier<VpnInterface1> path = identifier.augmentation(VpnInterface1.class);\r
Optional<VpnInterface1> nextHopList = read(LogicalDatastoreType.CONFIGURATION, path);\r
- \r
- if(nextHopList.isPresent()) {\r
+\r
+ if (nextHopList.isPresent()) {\r
List<L3NextHops> nextHops = nextHopList.get().getL3NextHops();\r
- \r
- if(!nextHops.isEmpty()) {\r
- LOG.info("NextHops are "+ nextHops);\r
- for(L3NextHops nextHop : nextHops) {\r
+\r
+ if (!nextHops.isEmpty()) {\r
+ LOG.info("NextHops are " + nextHops);\r
+ for (L3NextHops nextHop : nextHops) {\r
//TODO: Generate label for the prefix and store it in the next hop model\r
- \r
+\r
//TODO: Update BGP\r
updatePrefixToBGP(nextHop);\r
}\r