X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fprotocol_plugins%2Fopenflow%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fprotocol_plugin%2Fopenflow%2Finternal%2FFlowProgrammerServiceTest.java;h=a751948de7d5a73d22696f66a0bcefb15ca82b53;hp=297223392ded7f0cac8620381011089222cd406d;hb=62e7364552cc671134c06821e6f9dbe3579ea0dc;hpb=29f7cfb54b580928c7feac63abce028a7014b0d5 diff --git a/opendaylight/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerServiceTest.java b/opendaylight/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerServiceTest.java index 297223392d..a751948de7 100644 --- a/opendaylight/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerServiceTest.java +++ b/opendaylight/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerServiceTest.java @@ -17,7 +17,6 @@ import java.util.List; import org.junit.Assert; import org.junit.Test; -import org.opendaylight.controller.protocol_plugin.openflow.internal.FlowConverter; import org.opendaylight.controller.protocol_plugin.openflow.vendorextension.v6extension.V6Match; import org.openflow.protocol.OFMatch; import org.openflow.protocol.action.OFAction; @@ -52,7 +51,7 @@ public class FlowProgrammerServiceTest { @Test public void testSALtoOFFlowConverter() throws UnknownHostException { - Node node = NodeCreator.createOFNode(1000l); + Node node = NodeCreator.createOFNode(1000L); NodeConnector port = NodeConnectorCreator.createNodeConnector( (short) 24, node); NodeConnector oport = NodeConnectorCreator.createNodeConnector( @@ -179,9 +178,58 @@ public class FlowProgrammerServiceTest { } } + @Test + public void testVlanNoneIdFlowConversion() throws Exception { + Node node = NodeCreator.createOFNode(1000L); + + /* + * The value 0 is used to indicate that no VLAN ID is set + * for SAL Flow. + */ + short vlan = (short) 0; + + /* + * Create a SAL Flow aFlow + */ + Match match = new Match(); + match.setField(MatchType.DL_VLAN, vlan); + + List actions = new ArrayList(); + + Flow aFlow = new Flow(match, actions); + + /* + * Convert the SAL aFlow to OF Flow + */ + FlowConverter salToOF = new FlowConverter(aFlow); + OFMatch ofMatch = salToOF.getOFMatch(); + List ofActions = salToOF.getOFActions(); + + /* + * The value 0xffff (OFP_VLAN_NONE) is used to indicate + * that no VLAN ID is set for OF Flow. + */ + Assert.assertEquals((short) 0xffff, ofMatch.getDataLayerVirtualLan()); + + /* + * Convert the OF Flow to SAL Flow bFlow + */ + FlowConverter ofToSal = new FlowConverter(ofMatch, ofActions); + Flow bFlow = ofToSal.getFlow(node); + Match bMatch = bFlow.getMatch(); + + /* + * Verify the converted SAL flow bFlow is equivalent to the original SAL Flow + */ + Assert + .assertTrue(((Short) match.getField(MatchType.DL_VLAN) + .getValue()).equals((Short) bMatch.getField( + MatchType.DL_VLAN).getValue())); + } + @Test public void testV6toSALFlowConversion() throws Exception { - Node node = NodeCreator.createOFNode(12l); + Node node = NodeCreator.createOFNode(12L); NodeConnector port = NodeConnectorCreator.createNodeConnector( (short) 34, node); NodeConnector oport = NodeConnectorCreator.createNodeConnector( @@ -317,7 +365,7 @@ public class FlowProgrammerServiceTest { public void testV6MatchToSALMatchToV6MatchConversion() throws UnknownHostException { NodeConnector port = NodeConnectorCreator.createNodeConnector( - (short) 24, NodeCreator.createOFNode(6l)); + (short) 24, NodeCreator.createOFNode(6L)); byte srcMac[] = { (byte) 0x12, (byte) 0x34, (byte) 0x56, (byte) 0x78, (byte) 0x9a, (byte) 0xbc }; byte dstMac[] = { (byte) 0x1a, (byte) 0x2b, (byte) 0x3c, (byte) 0x4d,