Fixed compilation issues due to changes in other projects 26/41326/1
authorMartin Sunal <msunal@cisco.com>
Tue, 5 Jul 2016 09:51:13 +0000 (11:51 +0200)
committerMartin Sunal <msunal@cisco.com>
Tue, 5 Jul 2016 09:51:13 +0000 (11:51 +0200)
Fixes issues after these commits where merged:
SFC
  commit - 665955a8dfb04d13019cd1287cda8e0cc62db5c1
FaaS
  commit - 60b590ce96978e4066e8f2bf2073192b9c186039

Change-Id: I4327b172b5c9543cab018e8f5823c90923e2eda2
Signed-off-by: Martin Sunal <msunal@cisco.com>
groupbasedpolicy/pom.xml
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/IetfModelCodec.java [new file with mode: 0644]
renderers/faas/src/main/java/org/opendaylight/groupbasedpolicy/renderer/faas/FaasEndpointManagerListener.java
renderers/faas/src/main/java/org/opendaylight/groupbasedpolicy/renderer/faas/FaasSubnetManagerListener.java
renderers/ios-xe/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ios_xe_provider/impl/util/ServiceChainingUtil.java
renderers/ios-xe/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ios_xe_provider/impl/manager/PolicyManagerImplTest.java
renderers/ios-xe/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ios_xe_provider/impl/util/ServiceChainingUtilTest.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/SfcManager.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/ChainAction.java

index f18597d715214c85344b76deef436120cde2bb83..b56ac2da29b0f65f42ed7baa8684b21b46982d20 100755 (executable)
       <groupId>org.opendaylight.mdsal.model</groupId>
       <artifactId>ietf-inet-types</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal.model</groupId>
+      <artifactId>ietf-inet-types-2013-07-15</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.mdsal.model</groupId>
+      <artifactId>ietf-yang-types-20130715</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.mdsal.model</groupId>
       <artifactId>yang-ext</artifactId>
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/IetfModelCodec.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/IetfModelCodec.java
new file mode 100644 (file)
index 0000000..e1154d1
--- /dev/null
@@ -0,0 +1,179 @@
+/*
+ * Copyright (c) 2016 Cisco Systems, Inc. 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.groupbasedpolicy.util;
+
+import javax.annotation.Nullable;
+
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Address;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
+
+/**
+ * This is temporary solution for conversion between entities from
+ * ietf-{inet,yang}-types 2013 to ietf-{inet,yang}-types 2010 and vice versa.
+ * This conversion should be removed after GBP and all other projects migrate to version 2013.
+ */
+public final class IetfModelCodec {
+
+    private IetfModelCodec() {}
+
+    public static @Nullable IpPrefix ipPrefix2010(
+            @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix ip) {
+        if (ip == null) {
+            return null;
+        }
+        if (ip.getIpv4Prefix() != null) {
+            return new IpPrefix(ipv4Prefix2010(ip.getIpv4Prefix()));
+        } else if (ip.getIpv6Prefix() != null) {
+            return new IpPrefix(ipv6Prefix2010(ip.getIpv6Prefix()));
+        }
+        throw new IllegalArgumentException("IP prefix is not ipv4 nor ipv6. " + ip);
+    }
+
+    public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix ipPrefix2013(
+            @Nullable IpPrefix ip) {
+        if (ip == null) {
+            return null;
+        }
+        if (ip.getIpv4Prefix() != null) {
+            return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix(
+                    ipv4Prefix2013(ip.getIpv4Prefix()));
+        } else if (ip.getIpv6Prefix() != null) {
+            return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix(
+                    ipv6Prefix2013(ip.getIpv6Prefix()));
+        }
+        throw new IllegalArgumentException("IP prefix is not ipv4 nor ipv6. " + ip);
+    }
+
+    public static @Nullable Ipv4Prefix ipv4Prefix2010(
+            @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix ip) {
+        if (ip == null) {
+            return null;
+        }
+        return new Ipv4Prefix(ip.getValue());
+    }
+
+    public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix ipv4Prefix2013(
+            @Nullable Ipv4Prefix ip) {
+        if (ip == null) {
+            return null;
+        }
+        return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix(
+                ip.getValue());
+    }
+
+    public static @Nullable Ipv6Prefix ipv6Prefix2010(
+            @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix ip) {
+        if (ip == null) {
+            return null;
+        }
+        return new Ipv6Prefix(ip.getValue());
+    }
+
+    public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix ipv6Prefix2013(
+            @Nullable Ipv6Prefix ip) {
+        if (ip == null) {
+            return null;
+        }
+        return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix(
+                ip.getValue());
+    }
+
+    public static @Nullable MacAddress macAddress2010(
+            @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress mac) {
+        if (mac == null) {
+            return null;
+        }
+        return new MacAddress(mac.getValue());
+    }
+
+    public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress macAddress2013(
+            @Nullable MacAddress mac) {
+        if (mac == null) {
+            return null;
+        }
+        return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress(
+                mac.getValue());
+    }
+
+    public static @Nullable IpAddress ipAddress2010(
+            @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress ip) {
+        if (ip == null) {
+            return null;
+        }
+        if (ip.getIpv4Address() != null) {
+            return new IpAddress(ipv4Address2010(ip.getIpv4Address()));
+        } else if (ip.getIpv6Address() != null) {
+            return new IpAddress(ipv6Address2010(ip.getIpv6Address()));
+        }
+        throw new IllegalArgumentException("IP address is not ipv4 nor ipv6. " + ip);
+    }
+
+    public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress ipAddress2013(
+            @Nullable IpAddress ip) {
+        if (ip == null) {
+            return null;
+        }
+        if (ip.getIpv4Address() != null) {
+            return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress(
+                    ipv4Address2013(ip.getIpv4Address()));
+        } else if (ip.getIpv6Address() != null) {
+            return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress(
+                    ipv6Address2013(ip.getIpv6Address()));
+        }
+        throw new IllegalArgumentException("IP address is not ipv4 nor ipv6. " + ip);
+    }
+
+    public static @Nullable Ipv4Address ipv4Address2010(
+            @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address ip) {
+        if (ip == null) {
+            return null;
+        }
+        return new Ipv4Address(ip.getValue());
+    }
+
+    public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address ipv4Address2013(
+            @Nullable Ipv4Address ip) {
+        if (ip == null) {
+            return null;
+        }
+        return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address(
+                ip.getValue());
+    }
+
+    public static @Nullable Ipv6Address ipv6Address2010(
+            @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ip) {
+        if (ip == null) {
+            return null;
+        }
+        return new Ipv6Address(ip.getValue());
+    }
+
+    public static @Nullable org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address ipv6Address2013(
+            @Nullable Ipv6Address ip) {
+        if (ip == null) {
+            return null;
+        }
+        return new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address(
+                ip.getValue());
+    }
+
+    public static @Nullable PortNumber portNumber2010(
+            org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber pn) {
+        if (pn == null) {
+            return null;
+        }
+        return new PortNumber(pn.getValue());
+    }
+}
index cf4f5762b34cea3fb6f71803a24bda863d413add..a6dade9db7859814028b1bad9ee81b12be6a9e03 100644 (file)
@@ -16,7 +16,6 @@ import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ScheduledExecutorService;
 
-import com.google.common.annotations.VisibleForTesting;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
@@ -26,6 +25,7 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
 import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
+import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
 import org.opendaylight.groupbasedpolicy.util.IidFactory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.faas.endpoint.rev151009.FaasEndpointContext;
@@ -51,6 +51,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Optional;
 
 public class FaasEndpointManagerListener implements DataChangeListener, AutoCloseable {
@@ -163,11 +164,11 @@ public class FaasEndpointManagerListener implements DataChangeListener, AutoClos
         List<PrivateIps> privateIpAddresses = new ArrayList<>();
         for (L3Address ip : endpoint.getL3Address()) {
             PrivateIpsBuilder ipBuilder = new PrivateIpsBuilder();
-            ipBuilder.setIpAddress(ip.getIpAddress());
+            ipBuilder.setIpAddress(IetfModelCodec.ipAddress2013(ip.getIpAddress()));
             ipBuilder.setSubnetId(faasSubnetId);
             privateIpAddresses.add(ipBuilder.build());
         }
-        if (!UlnDatastoreApi.attachEndpointToSubnet(epLocBuilder, faasSubnetId, endpoint.getMacAddress(),
+        if (!UlnDatastoreApi.attachEndpointToSubnet(epLocBuilder, faasSubnetId, IetfModelCodec.macAddress2013(endpoint.getMacAddress()),
                 privateIpAddresses, null)) {
             LOG.error("Failed Endpoint Registration. Failed to Attach Endpoint to Faas Logical Network. Endpoint {}",
                     endpoint);
index 9f00538ed230109dc192b14f075664415eb75fcd..c2afcc9459e2ddf18f626691c1ca77322bb3baf5 100644 (file)
@@ -14,7 +14,6 @@ import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ScheduledExecutorService;
 
-import com.google.common.annotations.VisibleForTesting;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
@@ -23,7 +22,7 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.faas.uln.datastore.api.UlnDatastoreApi;
 import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
+import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Text;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.common.rev151013.Uuid;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.faas.logical.faas.subnets.rev151013.subnets.container.subnets.SubnetBuilder;
@@ -41,6 +40,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Optional;
 
 public class FaasSubnetManagerListener implements DataChangeListener {
@@ -131,11 +131,11 @@ public class FaasSubnetManagerListener implements DataChangeListener {
             List<ExternalGateways> gateways = new ArrayList<>();
             for (Gateways gw : gbpSubnet.getGateways()) {
                 ExternalGatewaysBuilder eb = new ExternalGatewaysBuilder();
-                eb.setExternalGateway(gw.getGateway());
+                eb.setExternalGateway(IetfModelCodec.ipAddress2013(gw.getGateway()));
                 if (gw.getPrefixes() != null) {
-                    List<IpPrefix> ipPrefixes = new ArrayList<>();
+                    List<org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix> ipPrefixes = new ArrayList<>();
                     for (Prefixes px : gw.getPrefixes()) {
-                        ipPrefixes.add(px.getPrefix());
+                        ipPrefixes.add(IetfModelCodec.ipPrefix2013(px.getPrefix()));
                     }
                     eb.setPrefixes(ipPrefixes);
                 }
@@ -144,7 +144,7 @@ public class FaasSubnetManagerListener implements DataChangeListener {
             builder.setExternalGateways(gateways);
         }
 
-        builder.setIpPrefix(gbpSubnet.getIpPrefix());
+        builder.setIpPrefix(IetfModelCodec.ipPrefix2013(gbpSubnet.getIpPrefix()));
         builder.setUuid(getFaasSubnetId(gbpSubnet.getId()));
         builder.setName(new Text(gbpSubnet.getId().getValue()));
         if (gbpSubnet.getDescription() != null)
@@ -152,7 +152,7 @@ public class FaasSubnetManagerListener implements DataChangeListener {
         else
             builder.setDescription(new Text("gbp-subnet"));
         builder.setTenantId(faasTenantId);
-        builder.setVirtualRouterIp(gbpSubnet.getVirtualRouterIp());
+        builder.setVirtualRouterIp(IetfModelCodec.ipAddress2013(gbpSubnet.getVirtualRouterIp()));
         // TODO DNS servers
         builder.setDnsNameservers(null);
         // TODO DHCP server
index 757c2e9338bdc088d0bab96d0ef1704b151a72f4..5a202ce5ecf4eeebe69adedfefcef1d2b8636d04 100644 (file)
@@ -20,6 +20,7 @@ import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.manager.P
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.manager.PolicyManagerImpl;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.writer.NetconfTransactionCreator;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.writer.PolicyWriter;
+import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
 import org.opendaylight.sfc.provider.api.SfcProviderRenderedPathAPI;
 import org.opendaylight.sfc.provider.api.SfcProviderServiceForwarderAPI;
 import org.opendaylight.sfc.provider.api.SfcProviderServicePathAPI;
@@ -416,7 +417,7 @@ public class ServiceChainingUtil {
 
         final java.util.Optional<ServiceFunctionForwarder> serviceFunctionForwarder = java.util.Optional.ofNullable(
                     SfcProviderServiceForwarderAPI.readServiceFunctionForwarder(sffName));
-        return serviceFunctionForwarder.map(sff -> java.util.Optional.ofNullable(sff.getIpMgmtAddress())
+        return serviceFunctionForwarder.map(sff -> java.util.Optional.ofNullable(IetfModelCodec.ipAddress2010(sff.getIpMgmtAddress()))
                     .map(IpAddress::getIpv4Address)
                     .map((ipv4Address) -> ipv4Address.getValue())
                     .map(addressValue -> {
index 5ce6a8605dab4d64576fd2916eaa89b116404b76..511d3e679539b5e77601712b6c581c5082e73220 100644 (file)
@@ -21,6 +21,7 @@ import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.util.PolicyManagerUtil;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.util.RendererPolicyUtil;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.util.ServiceChainingUtil;
+import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
 import org.opendaylight.sfc.provider.api.SfcProviderServiceForwarderAPI;
 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.RspName;
 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfName;
@@ -277,7 +278,7 @@ public class PolicyManagerImplTest {
         ServiceFunctionForwarderBuilder serviceFunctionForwarderBuilder = new ServiceFunctionForwarderBuilder();
         serviceFunctionForwarderBuilder.setName(new SffName(forwarderName))
                 .setKey(new ServiceFunctionForwarderKey(new SffName(forwarderName)))
-                .setIpMgmtAddress(new IpAddress(new Ipv4Address(ipAddress)));
+                .setIpMgmtAddress(IetfModelCodec.ipAddress2013(new IpAddress(new Ipv4Address(ipAddress))));
         return serviceFunctionForwarderBuilder.build();
     }
 
index cef31b34af3ce5c9a1e6a8ae3bc9452ca758f17d..48cc53a07b62aa11854c2347f6875c36317def59 100644 (file)
@@ -35,6 +35,7 @@ import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.manager.P
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.manager.PolicyManagerImpl;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.writer.NetconfTransactionCreator;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.writer.PolicyWriter;
+import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
 import org.opendaylight.sfc.provider.api.SfcProviderRenderedPathAPI;
 import org.opendaylight.sfc.provider.api.SfcProviderServiceForwarderAPI;
 import org.opendaylight.sfc.provider.api.SfcProviderServicePathAPI;
@@ -485,7 +486,7 @@ public class ServiceChainingUtilTest {
         final org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarder
                 sff = new ServiceFunctionForwarderBuilder()
                 .setName(new SffName("unit-sff-03"))
-                .setIpMgmtAddress(new IpAddress(new Ipv4Address("1.2.3.4")))
+                .setIpMgmtAddress(IetfModelCodec.ipAddress2013(new IpAddress(new Ipv4Address("1.2.3.4"))))
                 .build();
         final ServiceFunctionPathBuilder sfpBuilder = new ServiceFunctionPathBuilder();
         sfpBuilder.setSymmetric(false);
@@ -516,7 +517,7 @@ public class ServiceChainingUtilTest {
         final org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sff.rev140701.service.function.forwarders.ServiceFunctionForwarder
                 sff = new ServiceFunctionForwarderBuilder()
                 .setName(new SffName("unit-sff-03"))
-                .setIpMgmtAddress(new IpAddress(new Ipv4Address("1.2.3.4")))
+                .setIpMgmtAddress(IetfModelCodec.ipAddress2013(new IpAddress(new Ipv4Address("1.2.3.4"))))
                 .build();
         final ServiceFunctionPathBuilder sfpBuilder = new ServiceFunctionPathBuilder();
         sfpBuilder.setSymmetric(false);
@@ -615,7 +616,7 @@ public class ServiceChainingUtilTest {
         final RenderedServicePath rsp = createRsp("unit-rsp-03");
         final ServiceFunctionForwarderBuilder sffBuilder = new ServiceFunctionForwarderBuilder()
                 .setName(new SffName("unit-sff-03"))
-                .setIpMgmtAddress(new IpAddress((Ipv4Address) null));
+                .setIpMgmtAddress(null);
         final ServiceFunctionPathBuilder sfpBuilder = new ServiceFunctionPathBuilder();
         sfpBuilder.setSymmetric(false);
         final ServiceFunctionPath sfp = sfpBuilder.build();
index 78cfc84055e7672fd996ab74c2c881283b4dee92..dd5096b103452e9524f12b702b2c630f737852f7 100644 (file)
@@ -25,6 +25,7 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.opendaylight.groupbasedpolicy.api.sf.ChainActionDefinition;
+import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
 import org.opendaylight.sfc.provider.SfcProviderRpc;
 import org.opendaylight.sfc.provider.api.SfcProviderServiceChainAPI;
 import org.opendaylight.sfc.provider.api.SfcProviderServicePathAPI;
@@ -139,7 +140,7 @@ public class SfcManager implements AutoCloseable, DataChangeListener {
         Set<IpAddress> ipAddresses = new HashSet<IpAddress>();
         for (RenderedServicePathFirstHop rsp: rspMap.values()) {
             if (rsp.getIp() != null) {
-                ipAddresses.add(rsp.getIp());
+                ipAddresses.add(IetfModelCodec.ipAddress2010(rsp.getIp()));
             }
         }
         if (ipAddresses.isEmpty()) return null;
index ad001954b056692772ebabd30d1aa48cc1273216..f5bf7538a22746298055452123a5e5199eed239b 100755 (executable)
@@ -28,6 +28,7 @@ import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sfcutils.SfcIidFacto
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sfcutils.SfcNshHeader;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sfcutils.SfcNshHeader.SfcNshHeaderBuilder;
 import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
+import org.opendaylight.groupbasedpolicy.util.IetfModelCodec;
 import org.opendaylight.sfc.provider.api.SfcProviderRenderedPathAPI;
 import org.opendaylight.sfc.provider.api.SfcProviderServiceChainAPI;
 import org.opendaylight.sfc.provider.api.SfcProviderServicePathAPI;
@@ -189,8 +190,8 @@ public class ChainAction extends Action {
 
         RenderedServicePathHop firstRspHop = renderedServicePath.getRenderedServicePathHop().get(0);
         RenderedServicePathHop lastRspHop = Iterables.getLast(renderedServicePath.getRenderedServicePathHop());
-        SfcNshHeader sfcNshHeader = new SfcNshHeaderBuilder().setNshTunIpDst(rspFirstHop.getIp().getIpv4Address())
-            .setNshTunUdpPort(rspFirstHop.getPort())
+        SfcNshHeader sfcNshHeader = new SfcNshHeaderBuilder().setNshTunIpDst(IetfModelCodec.ipv4Address2010(rspFirstHop.getIp().getIpv4Address()))
+            .setNshTunUdpPort(IetfModelCodec.portNumber2010(rspFirstHop.getPort()))
             .setNshNsiToChain(firstRspHop.getServiceIndex())
             .setNshNspToChain(renderedServicePath.getPathId())
             .setNshNsiFromChain((short) (lastRspHop.getServiceIndex().intValue() - 1))