Fix vlan type handling for sub interfaces and vlan-tag-rewrite operation
authorMarek Gradzki <[email protected]>
Thu, 26 May 2016 12:52:20 +0000 (14:52 +0200)
committerMarek Gradzki <[email protected]>
Mon, 30 May 2016 05:20:40 +0000 (07:20 +0200)
Change-Id: I932fb63932d9c53acc6317fa77cc0683faf47081
Signed-off-by: Marek Gradzki <[email protected]>
v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/interfaces/SubInterfaceCustomizer.java
v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/interfacesstate/SubInterfaceCustomizer.java
v3po/v3po2vpp/src/main/java/io/fd/honeycomb/v3po/translate/v3po/interfacesstate/VlanTagRewriteCustomizer.java
v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/interfaces/SubInterfaceCustomizerTest.java
v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/interfacesstate/SubInterfaceCustomizerTest.java
v3po/v3po2vpp/src/test/java/io/fd/honeycomb/v3po/translate/v3po/interfacesstate/VlanTagRewriteCustomizerTest.java

index 17342e3..499d980 100644 (file)
@@ -116,7 +116,7 @@ public class SubInterfaceCustomizer extends AbstractInterfaceTypeCustomizer<SubI
                 request.twoTags = 1;
                 break;
         }
-        request.dot1Ad = booleanToByte(VlanType._802dot1q.equals(subInterface.getVlanType()));
+        request.dot1Ad = booleanToByte(VlanType._802dot1ad.equals(subInterface.getVlanType()));
         request.exactMatch = booleanToByte(subInterface.isExactMatch());
         request.defaultSub = booleanToByte(subInterface.isDefaultSubif());
         request.outerVlanIdAny = booleanToByte(subInterface.isMatchAnyInnerId());
index ebd1cff..45ef0b4 100644 (file)
@@ -92,7 +92,7 @@ public class SubInterfaceCustomizer extends FutureJVppCustomizer
         builder.setIdentifier(Long.valueOf(iface.subId));
         builder.setSuperInterface(interfaceContext.getName(iface.supSwIfIndex, ctx.getMappingContext()));
         builder.setNumberOfTags(Short.valueOf(iface.subNumberOfTags));
-        builder.setVlanType(iface.subDot1Ad == 1 ? VlanType._802dot1q : VlanType._802dot1ad);
+        builder.setVlanType(iface.subDot1Ad == 1 ? VlanType._802dot1ad : VlanType._802dot1q);
         if (iface.subExactMatch == 1) {
             builder.setExactMatch(true);
         }
index e6b8b36..2042925 100644 (file)
@@ -84,7 +84,7 @@ public class VlanTagRewriteCustomizer extends FutureJVppCustomizer
             return;
         }
 
-        builder.setFirstPushed(iface.subDot1Ad == 1 ? VlanType._802dot1q : VlanType._802dot1ad);
+        builder.setFirstPushed(iface.vtrPushDot1Q == 1 ? VlanType._802dot1q : VlanType._802dot1ad);
         builder.setRewriteOperation(TagRewriteOperation.forValue(iface.vtrOp));
         if (iface.vtrTag1 != 0) {
             builder.setTag1(new VlanTag(iface.vtrTag1));
index 31ab3aa..0b42791 100644 (file)
@@ -79,7 +79,7 @@ public class SubInterfaceCustomizerTest {
 
     private SubInterface generateSubInterface(final String superIfName) {
         SubInterfaceBuilder builder = new SubInterfaceBuilder();
-        builder.setVlanType(VlanType._802dot1q);
+        builder.setVlanType(VlanType._802dot1ad);
         builder.setIdentifier(11L);
         builder.setNumberOfTags((short)1);
         builder.setOuterId(new VlanTag(100));
index 4f6857b..0addcee 100644 (file)
@@ -101,6 +101,7 @@ public class SubInterfaceCustomizerTest extends ChildReaderCustomizerTest<SubInt
         final SwInterfaceDetails ifaceDetails = new SwInterfaceDetails();
         ifaceDetails.subId = ifId;
         ifaceDetails.interfaceName = ifName.getBytes();
+        ifaceDetails.subDot1Ad = 1;
         cachedInterfaceDump.put(ifId, ifaceDetails);
         cache.put(InterfaceCustomizer.DUMPED_IFCS_CONTEXT_KEY, cachedInterfaceDump);
 
index 4173eba..78c9e26 100644 (file)
@@ -86,13 +86,14 @@ public class VlanTagRewriteCustomizerTest extends ChildReaderCustomizerTest<Vlan
         final SwInterfaceDetails ifaceDetails = new SwInterfaceDetails();
         ifaceDetails.subId = ifId;
         ifaceDetails.interfaceName = ifName.getBytes();
+        ifaceDetails.vtrPushDot1Q = 1;
         cachedInterfaceDump.put(ifId, ifaceDetails);
         cache.put(InterfaceCustomizer.DUMPED_IFCS_CONTEXT_KEY, cachedInterfaceDump);
 
         final VlanTagRewriteBuilder builder = mock(VlanTagRewriteBuilder.class);
         getCustomizer().readCurrentAttributes(getVlanTagRewriteId(ifName), builder, ctx);
 
-        verify(builder).setFirstPushed(VlanType._802dot1ad);
+        verify(builder).setFirstPushed(VlanType._802dot1q);
         verify(builder).setRewriteOperation(TagRewriteOperation.Disabled);
         verify(builder, never()).setTag1(any());
         verify(builder, never()).setTag2(any());