From f46db11cdda9789b2c5fdd5eb288e7e58e8557b0 Mon Sep 17 00:00:00 2001 From: Vishal Thapar Date: Thu, 14 May 2015 22:18:38 +0530 Subject: [PATCH] Fix for remoteNextHop 1. Tunnel interfaces need goto:LFIB, not FIB table. 2. Changed asyncwrite to syncwrite in vpninterfacemanager 3. Added Copyright. Change-Id: Ie0295bbe3e084416d330e5bce7af06adac9cf132 Signed-off-by: Vishal Thapar --- .../opendaylight/vpnservice/VpnConstants.java | 9 +++++++++ .../vpnservice/VpnInterfaceManager.java | 16 +++++++++++++--- .../org/opendaylight/vpnservice/VpnUtil.java | 8 ++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnConstants.java b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnConstants.java index beb17f35..3fc28972 100644 --- a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnConstants.java +++ b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnConstants.java @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2015 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.vpnservice; public class VpnConstants { @@ -5,6 +13,7 @@ public class VpnConstants { public static final long VPN_IDPOOL_START = 1L; public static final String VPN_IDPOOL_SIZE = "65535"; public static final short LPORT_INGRESS_TABLE = 0; + public static final short LFIB_TABLE = 20; public static final short FIB_TABLE = 21; public static final short DEFAULT_FLOW_PRIORITY = 10; public static final long INVALID_ID = -1; diff --git a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnInterfaceManager.java b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnInterfaceManager.java index fa81708e..d3fdb24b 100644 --- a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnInterfaceManager.java +++ b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnInterfaceManager.java @@ -7,6 +7,8 @@ */ package org.opendaylight.vpnservice; +import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.L3tunnel; + import java.math.BigInteger; import java.util.Collection; import java.util.Collections; @@ -17,12 +19,10 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; - import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.FutureCallback; - import org.opendaylight.bgpmanager.api.IBgpManager; import org.opendaylight.controller.md.sal.binding.api.DataBroker; import org.opendaylight.controller.md.sal.binding.api.DataChangeListener; @@ -195,7 +195,7 @@ public class VpnInterfaceManager extends AbstractDataChangeListener interfaceId = VpnUtil.getVpnInterfaceIdentifier(intfName); - asyncWrite(LogicalDatastoreType.OPERATIONAL, interfaceId, opInterface, DEFAULT_CALLBACK); + syncWrite(LogicalDatastoreType.OPERATIONAL, interfaceId, opInterface, DEFAULT_CALLBACK); for (Adjacency nextHop : nextHops) { String key = nextHop.getIpAddress(); long label = getUniqueId(key); @@ -307,6 +307,9 @@ public class VpnInterfaceManager extends AbstractDataChangeListener mkInstructions = new ArrayList(); mkInstructions.add(new InstructionInfo(InstructionType.write_metadata, new BigInteger[] { @@ -455,6 +458,13 @@ public class VpnInterfaceManager extends AbstractDataChangeListener void syncWrite(LogicalDatastoreType datastoreType, + InstanceIdentifier path, T data, FutureCallback callback) { + WriteTransaction tx = broker.newWriteOnlyTransaction(); + tx.put(datastoreType, path, data, true); + tx.submit(); + } + synchronized Collection getDpnsForVpn(long vpnId) { Collection dpnIds = vpnToDpnsDb.get(vpnId); if(dpnIds != null) { diff --git a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnUtil.java b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnUtil.java index fc70f055..fe879013 100644 --- a/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnUtil.java +++ b/vpnmanager/vpnmanager-impl/src/main/java/org/opendaylight/vpnservice/VpnUtil.java @@ -1,3 +1,11 @@ +/* + * Copyright (c) 2015 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.vpnservice; import java.util.List; -- 2.36.6