MacAddress (de)serialization for OF1.0
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / deserialization / factories / OF10FeaturesReplyMessageFactory.java
index a73466bba7eb858e59c834f068151daf5dd3c1e6..e68de8bad3e9c43117a68b1b2eeca5a3c312c6db 100644 (file)
@@ -6,6 +6,7 @@ import io.netty.buffer.ByteBuf;
 import java.math.BigInteger;\r
 \r
 import org.opendaylight.openflowjava.protocol.impl.deserialization.OFDeserializer;\r
+import org.opendaylight.openflowjava.protocol.impl.util.ByteBufUtils;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ActionTypeV10;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.CapabilitiesV10;\r
@@ -93,12 +94,9 @@ public class OF10FeaturesReplyMessageFactory implements OFDeserializer<GetFeatur
     \r
     private static void deserializePort(ByteBuf rawMessage, GetFeaturesOutputBuilder builder) {\r
         builder.setPortNo((long) rawMessage.readUnsignedShort());\r
-        StringBuffer macToString = new StringBuffer();\r
-        for(int i = 0; i < MAC_ADDRESS_LENGTH; i++){\r
-            short mac = rawMessage.readUnsignedByte();\r
-            macToString.append(String.format("%02X", mac));\r
-        }\r
-        builder.setHwAddr(new MacAddress(macToString.toString()));\r
+        byte[] address = new byte[MAC_ADDRESS_LENGTH];\r
+        rawMessage.readBytes(address);\r
+        builder.setHwAddr(new MacAddress(ByteBufUtils.macAddressToString(address)));\r
         byte[] name = new byte[MAX_PORT_NAME_LENGTH];\r
         rawMessage.readBytes(name);\r
         builder.setName(name.toString());\r