From 1e3a1c60754f682f68a8c5e799b605a2d0b0cbca Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 2 Jun 2014 19:19:26 +0200 Subject: [PATCH] Use singleton list for simple packetIn Tracing has shown we are spending quite some time constructing CopyOnWriteArrayList -- just to throw it away. Let's use a singleton list, which is way faster. Change-Id: Id2bb5c7d548d5d4257170828667a66543099fa38 Signed-off-by: Robert Varga --- .../core/translator/PacketInTranslator.java | 28 +++++++++---------- .../translator/PacketInV10Translator.java | 16 +++++------ 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/translator/PacketInTranslator.java b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/translator/PacketInTranslator.java index f547040998..5b921cd0c4 100644 --- a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/translator/PacketInTranslator.java +++ b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/translator/PacketInTranslator.java @@ -10,7 +10,6 @@ package org.opendaylight.openflowplugin.openflow.md.core.translator; import java.math.BigInteger; import java.util.Collections; import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; import org.opendaylight.openflowplugin.openflow.md.core.IMDMessageTranslator; import org.opendaylight.openflowplugin.openflow.md.core.SwitchConnectionDistinguisher; @@ -40,15 +39,15 @@ public class PacketInTranslator implements IMDMessageTranslator translate(SwitchConnectionDistinguisher cookie, - SessionContext sc, OfHeader msg) { - + public List translate(final SwitchConnectionDistinguisher cookie, + final SessionContext sc, final OfHeader msg) { + List salPacketIn = Collections.emptyList(); - + if (sc != null && msg instanceof PacketInMessage) { PacketInMessage message = (PacketInMessage)msg; LOG.trace("PacketIn[v{}]: Cookie: {} Match.type: {}", - message.getVersion(), message.getCookie(), + message.getVersion(), message.getCookie(), message.getMatch() != null ? message.getMatch().getType() : message.getMatch()); // create a packet received event builder @@ -64,14 +63,14 @@ public class PacketInTranslator implements IMDMessageTranslator 32b //pktInBuilder.setConnectionCookie(cookie); - + // extract the port number Long port = null; if (message.getMatch() != null && message.getMatch().getMatchEntries() != null) { @@ -88,26 +87,25 @@ public class PacketInTranslator implements IMDMessageTranslator(); - salPacketIn.add(pktInEvent); + salPacketIn = Collections.singletonList(pktInEvent); } - } - } + } + } return salPacketIn; } } diff --git a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/translator/PacketInV10Translator.java b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/translator/PacketInV10Translator.java index 30b4b1ec5d..5b328526b7 100644 --- a/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/translator/PacketInV10Translator.java +++ b/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/translator/PacketInV10Translator.java @@ -10,7 +10,6 @@ package org.opendaylight.openflowplugin.openflow.md.core.translator; import java.math.BigInteger; import java.util.Collections; import java.util.List; -import java.util.concurrent.CopyOnWriteArrayList; import org.opendaylight.openflowplugin.openflow.md.core.IMDMessageTranslator; import org.opendaylight.openflowplugin.openflow.md.core.SwitchConnectionDistinguisher; @@ -34,11 +33,11 @@ public class PacketInV10Translator implements IMDMessageTranslator translate(SwitchConnectionDistinguisher cookie, - SessionContext sc, OfHeader msg) { - + public List translate(final SwitchConnectionDistinguisher cookie, + final SessionContext sc, final OfHeader msg) { + List salPacketIn = Collections.emptyList(); - + if (sc != null && msg instanceof PacketInMessage) { PacketInMessage message = (PacketInMessage)msg; LOG.trace("PacketIn[v{}]: InPort: {}", @@ -70,11 +69,10 @@ public class PacketInV10Translator implements IMDMessageTranslator(); - salPacketIn.add(pktInEvent); + salPacketIn = Collections.singletonList(pktInEvent); } - } - } + } + } return salPacketIn; } } -- 2.36.6