import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider;
import org.opendaylight.openflowplugin.api.openflow.OpenFlowPluginProvider;
import org.opendaylight.openflowplugin.api.openflow.OpenFlowPluginProviderFactory;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
LOG.info("Initializing new OFP southbound.");
- OpenflowPortsUtil.init();
OpenFlowPluginProvider openflowPluginProvider = new OpenFlowPluginProviderImpl(
providerConfig.getRpcRequestsQuota(),
providerConfig.getGlobalNotificationQuota(),
import java.math.BigInteger;
import java.net.InetSocketAddress;
import java.util.concurrent.atomic.AtomicLong;
-
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.openflowplugin.impl.registry.flow.FlowRegistryKeyFactory;
import org.opendaylight.openflowplugin.impl.util.DeviceStateUtil;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.experimenter.message.service.rev151020.ExperimenterMessageFromDev;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
when(mockedPortStatusMessage.getReason()).thenReturn(PortReason.OFPPRADD);
when(mockedPortStatusMessage.getPortNo()).thenReturn(42L);
- OpenflowPortsUtil.init();
deviceContextSpy.processPortStatusMessage(mockedPortStatusMessage);
verify(deviceContextSpy).writeToTransaction(Mockito.<LogicalDatastoreType>any(), Mockito.<InstanceIdentifier>any(), any());
verify(deviceContextSpy).submitTransaction();
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.Mockito;
-import org.mockito.Spy;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import org.opendaylight.openflowplugin.api.openflow.connection.OutboundQueueProvider;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
-import org.opendaylight.openflowplugin.api.openflow.device.DeviceManager;
import org.opendaylight.openflowplugin.api.openflow.device.DeviceState;
import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator;
import org.opendaylight.openflowplugin.api.openflow.device.TranslatorLibrary;
import org.opendaylight.openflowplugin.api.openflow.md.core.TranslatorKey;
import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageIntelligenceAgency;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
-import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
private KeyedInstanceIdentifier<Node, NodeKey> key;
@Before
public void setUp() throws Exception {
- OpenflowPortsUtil.init();
-
when(mockConnectionContext.getNodeId()).thenReturn(DUMMY_NODE_ID);
when(mockConnectionContext.getFeatures()).thenReturn(mockFeatures);
when(mockConnectionContext.getConnectionAdapter()).thenReturn(mockedConnectionAdapter);
import org.opendaylight.openflowplugin.api.openflow.device.Xid;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
pathToNodeconnector = KeyedInstanceIdentifier.create(Nodes.class)
.child(Node.class, new NodeKey(new NodeId("ofp-ut:123")))
.child(NodeConnector.class, new NodeConnectorKey(new NodeConnectorId("ofp-ut:123:1")));
- OpenflowPortsUtil.init();
}
@Test
import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.AggregateFlowStatisticsUpdate;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.FlowsStatisticsUpdate;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.TransactionAware;
MultipartReplyMessage multipartReplyMessage = prepareMocks(mockedDeviceContext, prepareMultipartReplyPortStats(), MultipartType.OFPMPPORTSTATS);
- OpenflowPortsUtil.init();
List<DataObject> result = singlePurposeMultipartReplyTranslator.translate(
mockedDeviceContext.getPrimaryConnectionContext().getFeatures().getDatapathId(),
mockedDeviceContext.getPrimaryConnectionContext().getFeatures().getVersion(),
import org.opendaylight.openflowplugin.impl.registry.flow.FlowRegistryKeyFactory;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector;
private SinglePurposeMultipartReplyTranslator singlePurposeMultipartReplyTranslator;
- public StatisticsGatheringUtilsTest() {
- OpenflowPortsUtil.init();
- }
-
@Before
public void setUp() throws Exception {
final ConvertorManager convertorManager = ConvertorManagerFactory.createDefaultManager();
import org.opendaylight.openflowplugin.api.openflow.device.TranslatorLibrary;
import org.opendaylight.openflowplugin.api.openflow.device.handlers.MultiMsgCollector;
import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
}
};
- /**
- * default ctor
- */
- public AbstractStatsServiceTest() {
- OpenflowPortsUtil.init();
- }
-
@Before
public void init() throws Exception {
Mockito.when(deviceContext.getPrimaryConnectionContext()).thenReturn(connectionContext);
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
@Before
public void init() throws Exception {
- OpenflowPortsUtil.init();
-
nodeConnectorId = InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(
DATAPATH_ID, PORT_NO, OpenflowVersion.get(OF_VERSION));
import org.opendaylight.openflowplugin.api.openflow.device.DeviceState;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
static final String DATA = "Test_Data";
static final Long PORT_NUM_VALUE = 11l;
- public PacketReceivedTranslatorTest() {
- OpenflowPortsUtil.init();
- }
-
@Before
public void setUp() throws Exception {
final List<PhyPort> phyPorts = Arrays.asList(phyPort);
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import org.opendaylight.openflowplugin.impl.device.DeviceContextImpl;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableKey;
@Before
public void setUp() throws Exception {
- OpenflowPortsUtil.init();
convertorManager = ConvertorManagerFactory.createDefaultManager();
when(mockConnectionContext.getNodeId()).thenReturn(NODE_ID);
final MultipartReplyMessage multipartReplyMessage = new MultipartReplyMessageBuilder().setMultipartReplyBody(multipartReplyPortDescCaseBuilder.build()).build();
final Set<MultipartReply> multipartReplyMessages = Collections.<MultipartReply>singleton(multipartReplyMessage);
- OpenflowPortsUtil.init();
DeviceInitializationUtils.translateAndWriteReply(MultipartType.OFPMPPORTDESC, mockedDeviceContext, DUMMY_NODE_II, multipartReplyMessages, convertorManager);
verify(mockedDeviceContext).writeToTransaction(eq(LogicalDatastoreType.OPERATIONAL),
Matchers.<InstanceIdentifier<NodeConnector>> any(), any(NodeConnector.class));
import com.google.common.collect.Lists;
import java.math.BigInteger;
import junit.framework.TestCase;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.openflowplugin.api.OFConstants;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PacketInReason;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
.build();
}
- @Before
- public void setUp() throws Exception {
- // Initialize the OpenFlow version/port map
- OpenflowPortsUtil.init();
- }
-
@Test(expected = NullPointerException.class)
public void testForNotNullablePacketInInGetPortNo() throws Exception {
NodeConnectorRefToPortTranslator.getPortNoFromPacketIn(null);
import org.opendaylight.openflowplugin.openflow.md.core.translator.PacketInTranslator;
import org.opendaylight.openflowplugin.openflow.md.core.translator.PacketInV10Translator;
import org.opendaylight.openflowplugin.openflow.md.core.translator.PortStatusMessageToNodeConnectorUpdatedTranslator;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.NodeErrorNotification;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SwitchFlowRemoved;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.AggregateFlowStatisticsUpdate;
public void init() {
LOG.debug("init");
- OpenflowPortsUtil.init();
-
messageTranslators = new ConcurrentHashMap<>();
popListeners = new ConcurrentHashMap<>();
//TODO: move registration to factory
switchConnectionPrv.setSwitchConnectionHandler(null);
}
switchConnectionProviders = null;
- OpenflowPortsUtil.close();
OFSessionUtil.releaseSessionManager();
errorHandler = null;
}
import org.opendaylight.controller.md.sal.binding.api.ReadTransaction;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.openflowplugin.api.OFConstants;
import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
import org.opendaylight.openflowplugin.openflow.md.core.session.OFSessionUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
import org.slf4j.LoggerFactory;
public abstract class InventoryDataServiceUtil {
- public static final String OF_URI_PREFIX = "openflow:";
private static final Splitter COLON_SPLITTER = Splitter.on(":");
private static final Logger LOG = LoggerFactory.getLogger(InventoryDataServiceUtil.class);
public static NodeId nodeIdFromDatapathId(final BigInteger datapathId) {
// FIXME: Convert to textual representation of datapathID
String current = datapathId.toString();
- return new NodeId(OF_URI_PREFIX + current);
+ return new NodeId(OFConstants.OF_URI_PREFIX + current);
}
public static BigInteger dataPathIdFromNodeId(final NodeId nodeId) {
- String dpids = nodeId.getValue().replace(OF_URI_PREFIX, "");
+ String dpids = nodeId.getValue().replace(OFConstants.OF_URI_PREFIX, "");
BigInteger dpid = new BigInteger(dpids);
return dpid;
}
public static NodeConnectorId nodeConnectorIdfromDatapathPortNo(final BigInteger datapathid, final Long portNo,
final OpenflowVersion ofVersion) {
String logicalName = OpenflowPortsUtil.getPortLogicalName(ofVersion, portNo);
- return new NodeConnectorId(OF_URI_PREFIX + datapathid + ":" + (logicalName == null ? portNo : logicalName));
+ return new NodeConnectorId(OFConstants.OF_URI_PREFIX + datapathid + ":" + (logicalName == null ? portNo : logicalName));
}
public static Long portNumberfromNodeConnectorId(final OpenflowVersion ofVersion, final NodeConnectorId ncId) {
import com.google.common.collect.ImmutableBiMap;
import org.opendaylight.openflowjava.protocol.api.util.BinContent;
+import org.opendaylight.openflowplugin.api.OFConstants;
import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925.PortNumberUni;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.OutputPortValues;
* @author Kamal Rameshan on 5/2/14.
*/
public class OpenflowPortsUtil {
+ private static final ImmutableBiMap<Short, ImmutableBiMap<String, Long>> versionPortMap;
+ private static final ImmutableBiMap<Short, ImmutableBiMap<Long, String>> versionInversePortMap;
- static ImmutableBiMap<OpenflowVersion, ImmutableBiMap<String, Long>> versionPortMap;
-
- static final String MAX = "MAX";
-
- // the init gets called from MDController at the start
- public static void init() {
-
+ static {
// v1.0 ports
- final ImmutableBiMap<String, Long> OFv10 = new ImmutableBiMap.Builder<String, Long>()
- .put(OutputPortValues.MAX.toString(), Long.valueOf(PortNumberValuesV10.MAX.getIntValue())) //0xff00
- .put(OutputPortValues.INPORT.toString(), Long.valueOf(PortNumberValuesV10.INPORT.getIntValue())) //0xfff8
- .put(OutputPortValues.TABLE.toString(), Long.valueOf(PortNumberValuesV10.TABLE.getIntValue())) //0xfff9
- .put(OutputPortValues.NORMAL.toString(), Long.valueOf(PortNumberValuesV10.NORMAL.getIntValue())) //0xfffa
- .put(OutputPortValues.FLOOD.toString(), Long.valueOf(PortNumberValuesV10.FLOOD.getIntValue())) //0xfffb
- .put(OutputPortValues.ALL.toString(), Long.valueOf(PortNumberValuesV10.ALL.getIntValue())) //0xfffc
- .put(OutputPortValues.CONTROLLER.toString(), Long.valueOf(PortNumberValuesV10.CONTROLLER.getIntValue())) //0xfffd
- .put(OutputPortValues.LOCAL.toString(), Long.valueOf(PortNumberValuesV10.LOCAL.getIntValue())) //0xfffe
- .put(OutputPortValues.NONE.toString(), Long.valueOf(PortNumberValuesV10.NONE.getIntValue())) //0xffff
+ final ImmutableBiMap<String, Long> ofv10ports = new ImmutableBiMap.Builder<String, Long>()
+ .put(OutputPortValues.MAX.toString(), (long) PortNumberValuesV10.MAX.getIntValue()) //0xff00
+ .put(OutputPortValues.INPORT.toString(), (long) PortNumberValuesV10.INPORT.getIntValue()) //0xfff8
+ .put(OutputPortValues.TABLE.toString(), (long) PortNumberValuesV10.TABLE.getIntValue()) //0xfff9
+ .put(OutputPortValues.NORMAL.toString(), (long) PortNumberValuesV10.NORMAL.getIntValue()) //0xfffa
+ .put(OutputPortValues.FLOOD.toString(), (long) PortNumberValuesV10.FLOOD.getIntValue()) //0xfffb
+ .put(OutputPortValues.ALL.toString(), (long) PortNumberValuesV10.ALL.getIntValue()) //0xfffc
+ .put(OutputPortValues.CONTROLLER.toString(), (long) PortNumberValuesV10.CONTROLLER.getIntValue()) //0xfffd
+ .put(OutputPortValues.LOCAL.toString(), (long) PortNumberValuesV10.LOCAL.getIntValue()) //0xfffe
+ .put(OutputPortValues.NONE.toString(), (long) PortNumberValuesV10.NONE.getIntValue()) //0xffff
.build();
// openflow 1.3 reserved ports.
// PortNumberValues are defined in OFJava yang. And yang maps an int to all enums. Hence we need to create longs from (-ve) ints
// TODO: do we need to define these ports in yang?
- final ImmutableBiMap<String, Long> OFv13 = new ImmutableBiMap.Builder<String, Long>()
+ final ImmutableBiMap<String, Long> ofv13ports = new ImmutableBiMap.Builder<String, Long>()
.put(OutputPortValues.MAX.toString(), BinContent.intToUnsignedLong(PortNumberValues.MAX.getIntValue())) //0xffffff00
.put(OutputPortValues.INPORT.toString(), BinContent.intToUnsignedLong(PortNumberValues.INPORT.getIntValue())) //0xfffffff8
.put(OutputPortValues.TABLE.toString(), BinContent.intToUnsignedLong(PortNumberValues.TABLE.getIntValue())) //0xfffffff9
.put(OutputPortValues.ANY.toString(), BinContent.intToUnsignedLong(PortNumberValues.ANY.getIntValue())) //0xffffffff
.build();
- versionPortMap = new ImmutableBiMap.Builder<OpenflowVersion, ImmutableBiMap<String, Long>>()
- .put(OpenflowVersion.OF10, OFv10)
- .put(OpenflowVersion.OF13, OFv13)
+ versionPortMap = new ImmutableBiMap.Builder<Short, ImmutableBiMap<String, Long>>()
+ .put(OFConstants.OFP_VERSION_1_0, ofv10ports)
+ .put(OFConstants.OFP_VERSION_1_3, ofv13ports)
.build();
+ versionInversePortMap = new ImmutableBiMap.Builder<Short, ImmutableBiMap<Long, String>>()
+ .put(OFConstants.OFP_VERSION_1_0, ofv10ports.inverse())
+ .put(OFConstants.OFP_VERSION_1_3, ofv13ports.inverse())
+ .build();
}
- public static void close() {
- versionPortMap = null;
- }
-
- public static String getPortLogicalName(final short ofVersion, final long portNumber) {
- return versionPortMap.get(OpenflowVersion.get(ofVersion)).inverse().get(portNumber);
+ public static String getPortLogicalName(final short ofVersion, final Long portNumber) {
+ return versionInversePortMap.get(ofVersion).get(portNumber);
}
public static String getPortLogicalName(final OpenflowVersion ofVersion, final Long portNumber) {
- if (ofVersion.equals(OpenflowVersion.UNSUPPORTED)) {
- return null;
- }
- return versionPortMap.get(ofVersion).inverse().get(portNumber);
+ return ofVersion.equals(OpenflowVersion.UNSUPPORTED)
+ ? null
+ : getPortLogicalName(ofVersion.getVersion(), portNumber);
}
public static Long getPortFromLogicalName(final OpenflowVersion ofVersion, final String logicalNameOrPort) {
- Long port = versionPortMap.get(ofVersion).get(logicalNameOrPort);
+ Long port = versionPortMap.get(ofVersion.getVersion()).get(logicalNameOrPort);
if (port == null) {
try {
port = Long.decode(logicalNameOrPort);
public static PortNumberUni getProtocolAgnosticPort(final OpenflowVersion ofVersion, final Long portNumber) {
final String reservedPortLogicalName = getPortLogicalName(ofVersion, portNumber);
- return (reservedPortLogicalName == null ? new PortNumberUni(portNumber) :
- new PortNumberUni(reservedPortLogicalName));
+
+ return reservedPortLogicalName == null
+ ? new PortNumberUni(portNumber)
+ : new PortNumberUni(reservedPortLogicalName);
}
public static Long getProtocolPortNumber(final OpenflowVersion ofVersion, final PortNumberUni port) {
final String portLogicalName = port.getString();
- if (portLogicalName != null) {
- return versionPortMap.get(ofVersion).get(portLogicalName);
- } else {
- return port.getUint32();
- }
+ return portLogicalName != null
+ ? versionPortMap.get(ofVersion.getVersion()).get(portLogicalName)
+ : port.getUint32();
}
public static Long getMaxPortForVersion(final OpenflowVersion ofVersion) {
- return getPortFromLogicalName(ofVersion, MAX);
+ return getPortFromLogicalName(ofVersion, OutputPortValues.MAX.getName());
}
public static boolean isPortReserved(final OpenflowVersion ofVersion, final Long portNumber) {
- return versionPortMap.get(ofVersion).inverse().containsKey(portNumber);
+ return versionInversePortMap.get(ofVersion.getVersion()).containsKey(portNumber);
}
/**
portIsValid = false;
} else if (portNumber < 0) {
portIsValid = false;
- } else if (portNumber > OpenflowPortsUtil.getMaxPortForVersion(ofVersion)) {
- if (!OpenflowPortsUtil.isPortReserved(ofVersion, portNumber)) {
+ } else if (portNumber > getMaxPortForVersion(ofVersion)) {
+ if (!isPortReserved(ofVersion, portNumber)) {
portIsValid = false;
}
}
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
import org.opendaylight.openflowplugin.openflow.md.core.session.OFSessionUtil;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowHashIdMapping;
Mockito.when(rwTx.read(Matchers.<LogicalDatastoreType>any(), Matchers.<InstanceIdentifier<FlowHashIdMapping>>any())).thenReturn(dummyReadFuture);
Mockito.when(dataBroker.newReadWriteTransaction()).thenReturn(rwTx);
-
- OpenflowPortsUtil.init();
-
final ConvertorManager convertorManager = ConvertorManagerFactory.createDefaultManager();
mdSwitchOF10 = new ModelDrivenSwitchImpl(null, null, context, convertorManager);
mdSwitchOF13 = new ModelDrivenSwitchImpl(null, null, context, convertorManager);
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCase;
.build())
.build();
- OpenflowPortsUtil.init();
-
VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData((short) 0X4);
data.setDatapathId(BigInteger.valueOf(1));
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionConvertorData;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.PacketOutConvertorData;\r
import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil;\r
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionCaseBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.output.action._case.OutputActionBuilder;\r
\r
@Before\r
public void setUp() {\r
- OpenflowPortsUtil.init();\r
convertorManager = ConvertorManagerFactory.createDefaultManager();\r
}\r
\r
BigInteger datapathId = new BigInteger(1, datapathIdByte);\r
Long xid = 0xfffffL;\r
\r
- OpenflowPortsUtil.init();\r
-\r
PacketOutConvertorData data = new PacketOutConvertorData(version);\r
data.setXid(xid);\r
data.setDatapathId(datapathId);\r
import java.util.List;
import java.util.Optional;
import org.junit.Assert;
-import org.junit.Before;
import org.junit.Test;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionConvertorData;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlOutCaseBuilder;
List<Action> actions = new ArrayList<>();
static Integer actionItem = 0;
- /**
- * prepare OpenflowPortsUtil util class
- */
- @Before
- public void setUp() {
- OpenflowPortsUtil.init();
- }
-
@Test
public void testActionConvertorwithallParameters() {
OutputActionData();
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionConvertorData;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionResponseConvertorData;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.flow.FlowConvertorUtil;\r
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpVersion;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;\r
*/\r
@Test\r
public void testToMDSalActions() {\r
- OpenflowPortsUtil.init();\r
-\r
List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action> actions = new ArrayList<>();\r
org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder actionbuilder = \r
new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder();\r
- \r
+\r
OutputActionCaseBuilder caseBuilder = new OutputActionCaseBuilder();\r
OutputActionBuilder outputBuilder = new OutputActionBuilder();\r
outputBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber(14L));\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionConvertorData;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.action.data.ActionResponseConvertorData;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.flow.FlowConvertorUtil;\r
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;\r
*/\r
@Test\r
public void testToMDSalActions2() {\r
- OpenflowPortsUtil.init();\r
List<Action> actions = new ArrayList<>();\r
\r
ActionBuilder actionBuilder = new ActionBuilder();\r
import org.junit.Test;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;\r
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;\r
*/\r
@Before\r
public void startUp() {\r
- OpenflowPortsUtil.init();\r
convertorManager = ConvertorManagerFactory.createDefaultManager();\r
}\r
\r
import org.junit.Test;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpVersion;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
@Before
public void setup() {
- OpenflowPortsUtil.init();
convertorManager = ConvertorManagerFactory.createDefaultManager();
}
*/\r
@Before\r
public void startUp() {\r
- OpenflowPortsUtil.init();\r
convertorManager = ConvertorManagerFactory.createDefaultManager();\r
}\r
\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;
@Before
public void setUp() {
- OpenflowPortsUtil.init();
convertorManager = ConvertorManagerFactory.createDefaultManager();
}
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData;\r
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;\r
*/\r
@Before\r
public void startUp() {\r
- OpenflowPortsUtil.init();\r
convertorManager = ConvertorManagerFactory.createDefaultManager();\r
}\r
\r
package org.opendaylight.openflowplugin.openflow.md.core.translator;
import static org.mockito.Mockito.when;
+
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import junit.framework.TestCase;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.opendaylight.openflowplugin.api.OFConstants;
import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher;
import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ActionTypeV10;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Capabilities;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.CapabilitiesV10;
@Mock
GetFeaturesOutput featuresOutput;
- @Before
- public void setup() {
- OpenflowPortsUtil.init();
- }
-
@Test
/**
* Test method for basic functionality of {@link FeaturesV10ToNodeConnectorUpdatedTranslator#translate(org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher, org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader)}
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;
import org.opendaylight.openflowplugin.openflow.md.core.session.SessionManagerOFImpl;
import org.opendaylight.openflowplugin.openflow.md.util.ByteUtil;
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
when(connectionConductor.getVersion()).thenReturn(OFConstants.OFP_VERSION_1_3);
when(sessionContext.getFeatures()).thenReturn(featuresOutput);
when(featuresOutput.getDatapathId()).thenReturn(DATA_PATH_ID);
- OpenflowPortsUtil.init();
ExtensionConverterManagerImpl extensionConverterProvider = new ExtensionConverterManagerImpl();
//extensionConverterProvider.registerMatchConvertor()
SessionManagerOFImpl.getInstance().setExtensionConverterProvider(extensionConverterProvider);
import java.math.BigInteger;\r
import java.util.ArrayList;\r
import java.util.List;\r
-\r
import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;\r
import org.opendaylight.openflowplugin.api.openflow.md.core.SwitchConnectionDistinguisher;\r
import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext;\r
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnectorUpdated;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdated;\r
MockitoAnnotations.initMocks(this);\r
when(sc.getFeatures()).thenReturn(features);\r
when(features.getDatapathId()).thenReturn(new BigInteger("42"));\r
- OpenflowPortsUtil.init();\r
}\r
\r
/**\r
Assert.assertEquals("Wrong current speed", 120, flowCapable.getCurrentSpeed().intValue());\r
Assert.assertEquals("Wrong max speed", 130, flowCapable.getMaximumSpeed().intValue());\r
}\r
-}
+}\r
import org.opendaylight.openflowplugin.api.openflow.md.core.session.SessionContext;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;\r
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManagerFactory;\r
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.FlowTableStatisticsUpdate;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.flow.table.and.statistics.map.FlowTableAndStatisticsMap;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartRequestFlags;\r
when(conductor.getVersion()).thenReturn((short) EncodeConstants.OF13_VERSION_ID);\r
when(sc.getFeatures()).thenReturn(features);\r
when(features.getDatapathId()).thenReturn(new BigInteger("42"));\r
- OpenflowPortsUtil.init();\r
}\r
\r
/**\r
import org.opendaylight.openflowplugin.openflow.md.core.session.SessionContextOFImpl;\r
import org.opendaylight.openflowplugin.openflow.md.core.session.SwitchConnectionCookieOFImpl;\r
import org.opendaylight.openflowplugin.openflow.md.queue.QueueProcessorLightImpl;\r
-import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PacketInReason;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutput;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.GetFeaturesOutputBuilder;\r
when(conductor.getVersion()).thenReturn((short) EncodeConstants.OF10_VERSION_ID);\r
when(sc.getFeatures()).thenReturn(features);\r
when(features.getDatapathId()).thenReturn(new BigInteger("42"));\r
- OpenflowPortsUtil.init();\r
\r
cookie = settingCookie();\r
data = messageData();\r
sessionContextOFImpl.setFeatures(featuresOutput);\r
sessionContextOFImpl.setPrimaryConductor(conductor);\r
PacketInV10Translator packetInV10Translator = new PacketInV10Translator();\r
- OpenflowPortsUtil.init();\r
List<DataObject> salPacketIn = packetInV10Translator.translate(cookie,\r
sessionContextOFImpl, message);\r
\r
when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
when(readOnlyTransaction.read(Mockito.any(LogicalDatastoreType.class), Mockito.<InstanceIdentifier<Nodes>>any())).thenReturn(Futures.immediateCheckedFuture(Optional.of(nodes)));
- OpenflowPortsUtil.init();
OFSessionUtil.getSessionManager().setDataBroker(dataBroker);
}
*/
@BeforeClass
public static void setupClass() {
- OpenflowPortsUtil.init();
-
mapOF10Ports = new HashMap<String, Long>();
mapOF10Ports.put(OutputPortValues.MAX.toString(), 65280L);
mapOF10Ports.put(OutputPortValues.INPORT.toString(), 65528L);
*/
@AfterClass
public static void tearDownClass() {
- OpenflowPortsUtil.close();
mapOF10Ports.clear();
mapOF13Ports.clear();
mapVersionToPorts.clear();
import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+
import java.math.BigInteger;
-import org.junit.Before;
import org.junit.Test;
import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
private final Long currentSpeed = Long.decode("4294967295");
private static final Long maxSpeed = Long.decode("4294967295");
- @Before
- public void setupEnvironment(){
- OpenflowPortsUtil.init();
- }
-
/**
* Test method for {@link PortTranslatorUtil#translatePortFeatures(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortFeatures)}
*/