fix flags and Tag in NAT implementation 48/19648/2
authorMichal Cmarada <[email protected]>
Fri, 17 May 2019 08:31:23 +0000 (10:31 +0200)
committerMichal Cmarada <[email protected]>
Fri, 17 May 2019 08:31:23 +0000 (10:31 +0200)
 - tag being null causes crashes when vpp API is called
 - null flags causes crashes, flags should be set at least to
   default value (0)

Change-Id: If4e116212b1a85b312837830501ec226cec37bfa
Signed-off-by: Michal Cmarada <[email protected]>
nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/write/ExternalIpPoolCustomizer.java
nat/nat2vpp/src/main/java/io/fd/hc2vpp/nat/write/MappingEntryCustomizer.java
nat/nat2vpp/src/test/java/io/fd/hc2vpp/nat/write/ExternalIpPoolCustomizerTest.java
nat/nat2vpp/src/test/java/io/fd/hc2vpp/nat/write/MappingEntryCustomizerTest.java

index 8b9d9dd..2df0c7e 100644 (file)
@@ -28,6 +28,7 @@ import io.fd.honeycomb.translate.write.WriteFailedException;
 import io.fd.jvpp.nat.dto.Nat44AddDelAddressRange;
 import io.fd.jvpp.nat.dto.Nat64AddDelPoolAddrRange;
 import io.fd.jvpp.nat.future.FutureJVppNatFacade;
+import io.fd.jvpp.nat.types.NatConfigFlags;
 import javax.annotation.Nonnull;
 import org.opendaylight.yang.gen.v1.http.fd.io.hc2vpp.yang.vpp.nat.rev180510.ExternalIpAddressPoolAugmentation;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
@@ -81,6 +82,9 @@ final class ExternalIpPoolCustomizer implements ListWriterCustomizer<ExternalIpA
             getReplyForWrite(jvppNat.nat64AddDelPoolAddrRange(request).toCompletableFuture(), id);
         } else {
             final Nat44AddDelAddressRange request = getNat44Request(addressPool.getExternalIpPool(), isAdd);
+            if (request.flags == null) {
+                request.flags = new NatConfigFlags();
+            }
             getReplyForWrite(jvppNat.nat44AddDelAddressRange(request).toCompletableFuture(), id);
         }
     }
index bf78118..00bd774 100644 (file)
@@ -162,6 +162,7 @@ final class MappingEntryCustomizer implements ListWriterCustomizer<MappingEntry,
             request.localPort = internalPortNumber.shortValue();
             request.externalPort = externalPortNumber.shortValue();
         }
+        request.tag = "";
         return request;
     }
 
index 0ad8197..8a55abc 100644 (file)
@@ -34,6 +34,7 @@ import io.fd.jvpp.nat.dto.Nat64AddDelPoolAddrRange;
 import io.fd.jvpp.nat.dto.Nat64AddDelPoolAddrRangeReply;
 import io.fd.jvpp.nat.future.FutureJVppNatFacade;
 import io.fd.jvpp.nat.types.Ip4Address;
+import io.fd.jvpp.nat.types.NatConfigFlags;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -123,6 +124,7 @@ public class ExternalIpPoolCustomizerTest extends WriterCustomizerTest implement
         expectedRequest.firstIpAddress.ip4Address = new byte[]{(byte) 192, (byte) 168, 1, 0};
         expectedRequest.lastIpAddress = new Ip4Address();
         expectedRequest.lastIpAddress.ip4Address = new byte[]{(byte) 192, (byte) 168, 1, (byte) 255};
+        expectedRequest.flags = new NatConfigFlags();
         return expectedRequest;
     }
 
index d67552b..b5c6b5a 100644 (file)
@@ -137,6 +137,7 @@ public class MappingEntryCustomizerTest extends WriterCustomizerTest implements
         expectedRequest.localIpAddress.ip4Address = new byte[]{(byte) 192, (byte) 168, 1, 87};
         expectedRequest.externalIpAddress = new Ip4Address();
         expectedRequest.externalIpAddress.ip4Address = new byte[]{45, 1, 5, 7};
+        expectedRequest.tag = "";
         return expectedRequest;
     }