diff options
author | Marek Gradzki <mgradzki@cisco.com> | 2018-07-02 14:29:50 +0200 |
---|---|---|
committer | Marek Gradzki <mgradzki@cisco.com> | 2018-07-02 14:31:56 +0200 |
commit | ec365fe22b9f52fce8daa667c0f0fa9cc25e64f6 (patch) | |
tree | 7e581226a0c14df0c984c5f830af635c5caa81b6 /v3po | |
parent | 99db0d333b6e7b101fb55c759f5a4ac028ee0d0b (diff) |
Fix VXLAN state read
Use UnsignedInts.toLong instead of (long) cast.
Change-Id: I1b6875860019f3449bc32f16cd959f3084583d20
Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
Diffstat (limited to 'v3po')
-rw-r--r-- | v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizer.java | 2 | ||||
-rw-r--r-- | v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizerTest.java | 45 |
2 files changed, 31 insertions, 16 deletions
diff --git a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizer.java index dac59d6f4..6cb94fd0d 100644 --- a/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizer.java +++ b/v3po/v3po2vpp/src/main/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizer.java @@ -126,7 +126,7 @@ public class VxlanCustomizer extends FutureJVppCustomizer builder.setSrc(new IpAddress(arrayToIpv4AddressNoZone(swInterfaceVxlanDetails.srcAddress))); } builder.setEncapVrfId(new VniReference(UnsignedInts.toLong(swInterfaceVxlanDetails.encapVrfId))); - builder.setVni(new VxlanVni((long) swInterfaceVxlanDetails.vni)); + builder.setVni(new VxlanVni(UnsignedInts.toLong(swInterfaceVxlanDetails.vni))); switch (swInterfaceVxlanDetails.decapNextIndex) { case 1: builder.setDecapNext(L2Input.class); diff --git a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizerTest.java index f2384979e..f8ab8673b 100644 --- a/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizerTest.java +++ b/v3po/v3po2vpp/src/test/java/io/fd/hc2vpp/v3po/interfacesstate/VxlanCustomizerTest.java @@ -76,22 +76,11 @@ public class VxlanCustomizerTest extends ReaderCustomizerTest<Vxlan, VxlanBuilde v.interfaceName = "vxlan-tunnel4".getBytes(); when(dumpCacheManager.getInterfaceDetail(IID, ctx, IF_NAME)).thenReturn(v); - - final VxlanTunnelDetailsReplyDump value = new VxlanTunnelDetailsReplyDump(); - final VxlanTunnelDetails vxlanTunnelDetails = new VxlanTunnelDetails(); - vxlanTunnelDetails.isIpv6 = 0; - vxlanTunnelDetails.dstAddress = InetAddresses.forString("1.2.3.4").getAddress(); - vxlanTunnelDetails.srcAddress = InetAddresses.forString("1.2.3.5").getAddress(); - vxlanTunnelDetails.encapVrfId = 55; - vxlanTunnelDetails.swIfIndex = 0; - vxlanTunnelDetails.vni = 9; - vxlanTunnelDetails.decapNextIndex = 1; - value.vxlanTunnelDetails = Lists.newArrayList(vxlanTunnelDetails); - doReturn(future(value)).when(api).vxlanTunnelDump(any(VxlanTunnelDump.class)); + doReturn(future(getVxlanTunnelDetailsReplyDump(55))).when(api).vxlanTunnelDump(any(VxlanTunnelDump.class)); } @Test - public void testReadCurrentAttributes() throws Exception { + public void testRead() throws Exception { final VxlanBuilder builder = getCustomizer().getBuilder(IID); getCustomizer().readCurrentAttributes(IID, builder, ctx); @@ -110,8 +99,20 @@ public class VxlanCustomizerTest extends ReaderCustomizerTest<Vxlan, VxlanBuilde verify(api).vxlanTunnelDump(any(VxlanTunnelDump.class)); } + @Test + public void testReadVniOverflow() throws Exception { + final long encapVrfId = 4294967295L; + doReturn(future(getVxlanTunnelDetailsReplyDump((int) encapVrfId))).when(api) + .vxlanTunnelDump(any(VxlanTunnelDump.class)); + final VxlanBuilder builder = getCustomizer().getBuilder(IID); + getCustomizer().readCurrentAttributes(IID, builder, ctx); + + assertEquals(encapVrfId, builder.getEncapVrfId().getValue().longValue()); + verify(api).vxlanTunnelDump(any(VxlanTunnelDump.class)); + } + @Test(expected = IllegalArgumentException.class) - public void testReadCurrentAttributesVppNameNotCached() throws Exception { + public void testReadVppNameNotCached() throws Exception { when(dumpCacheManager.getInterfaceDetail(IID, ctx, IF_NAME)) .thenThrow(new IllegalArgumentException("Detail for interface not found")); @@ -120,7 +121,7 @@ public class VxlanCustomizerTest extends ReaderCustomizerTest<Vxlan, VxlanBuilde } @Test - public void testReadCurrentAttributesWrongType() throws Exception { + public void testReadWrongType() throws Exception { final SwInterfaceDetails v = new SwInterfaceDetails(); v.interfaceName = "tap-2".getBytes(); @@ -137,4 +138,18 @@ public class VxlanCustomizerTest extends ReaderCustomizerTest<Vxlan, VxlanBuilde protected ReaderCustomizer<Vxlan, VxlanBuilder> initCustomizer() { return new VxlanCustomizer(api, interfacesContext, dumpCacheManager); } + + private static VxlanTunnelDetailsReplyDump getVxlanTunnelDetailsReplyDump(final int encapVrfId) { + final VxlanTunnelDetailsReplyDump replyDump = new VxlanTunnelDetailsReplyDump(); + final VxlanTunnelDetails vxlanTunnelDetails = new VxlanTunnelDetails(); + vxlanTunnelDetails.isIpv6 = 0; + vxlanTunnelDetails.dstAddress = InetAddresses.forString("1.2.3.4").getAddress(); + vxlanTunnelDetails.srcAddress = InetAddresses.forString("1.2.3.5").getAddress(); + vxlanTunnelDetails.encapVrfId = encapVrfId; + vxlanTunnelDetails.swIfIndex = 0; + vxlanTunnelDetails.vni = 9; + vxlanTunnelDetails.decapNextIndex = 1; + replyDump.vxlanTunnelDetails = Lists.newArrayList(vxlanTunnelDetails); + return replyDump; + } }
\ No newline at end of file |