Added getFactory() method to IOFSwitch to get a message factory appropriate
for the switch's OpenFlow version.

This prevents users of the switch having to discriminate what factory to use
based on the switch OpenFlow version.

Change-Id: Iac0454856e35f4429649a6f116da34f4c048f25d
diff --git a/src/main/java/net/onrc/onos/core/linkdiscovery/LinkDiscoveryManager.java b/src/main/java/net/onrc/onos/core/linkdiscovery/LinkDiscoveryManager.java
index 4c87501..fbd06b7 100644
--- a/src/main/java/net/onrc/onos/core/linkdiscovery/LinkDiscoveryManager.java
+++ b/src/main/java/net/onrc/onos/core/linkdiscovery/LinkDiscoveryManager.java
@@ -57,7 +57,6 @@
 import net.onrc.onos.core.registry.IControllerRegistryService;
 import net.onrc.onos.core.util.SwitchPort;
 
-import org.projectfloodlight.openflow.protocol.OFFactories;
 import org.projectfloodlight.openflow.protocol.OFFactory;
 import org.projectfloodlight.openflow.protocol.OFMessage;
 import org.projectfloodlight.openflow.protocol.OFPacketIn;
@@ -68,7 +67,6 @@
 import org.projectfloodlight.openflow.protocol.OFPortState;
 import org.projectfloodlight.openflow.protocol.OFPortStatus;
 import org.projectfloodlight.openflow.protocol.OFType;
-import org.projectfloodlight.openflow.protocol.OFVersion;
 import org.projectfloodlight.openflow.protocol.action.OFAction;
 import org.projectfloodlight.openflow.types.OFBufferId;
 import org.projectfloodlight.openflow.types.OFPort;
@@ -106,9 +104,6 @@
 
     private static final Logger log =
             LoggerFactory.getLogger(LinkDiscoveryManager.class);
-    // TODO Remove these factories.
-    protected OFFactory factory13 = OFFactories.getFactory(OFVersion.OF_13);
-    protected OFFactory factory10 = OFFactories.getFactory(OFVersion.OF_10);
 
     private IFloodlightProviderService controller;
 
@@ -322,8 +317,7 @@
                     sw, port);
         }
 
-        OFFactory factory = (iofSwitch.getOFVersion() == OFVersion.OF_10)
-                ? factory10 : factory13;
+        OFFactory factory = iofSwitch.getFactory();
         OFPacketOut po = createLLDPPacketOut(sw, ofpPort, isReverse, factory);
 
         try {