Fixed MAC address length to 6 bytes for ArpSha, ArpTha, Ipv6NdSll, Ipv6NdTll match...
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / util / OF10MatchDeserializer.java
index 216cbd3efca78776d4680035056ceaafbf6e8c5d..b1b9fd8c49029b675232ae8ef781a5afbcc9ceaa 100644 (file)
@@ -19,10 +19,8 @@ import com.google.common.base.Joiner;
  */\r
 public abstract class OF10MatchDeserializer {\r
     \r
-    private static final byte MAC_ADDRESS_LENGTH = 6;\r
     private static final byte PADDING_IN_MATCH = 1;\r
     private static final byte PADDING_IN_MATCH_2 = 2;\r
-    private static final byte GROUPS_IN_IPV4_ADDRESS = 4;\r
 \r
     /**\r
      * Creates ofp_match (OpenFlow v1.0) structure\r
@@ -33,18 +31,13 @@ public abstract class OF10MatchDeserializer {
         MatchV10Builder builder = new MatchV10Builder();\r
         builder.setWildcards(rawMessage.readUnsignedInt());\r
         builder.setInPort(rawMessage.readUnsignedShort());\r
-        StringBuffer dlSrc = new StringBuffer();\r
-        for(int i = 0; i < MAC_ADDRESS_LENGTH; i++){\r
-            short mac = rawMessage.readUnsignedByte();\r
-            dlSrc.append(String.format("%02X", mac));\r
-        }\r
-        builder.setDlSrc(new MacAddress(dlSrc.toString()));\r
-        StringBuffer dlDst = new StringBuffer();\r
-        for(int i = 0; i < MAC_ADDRESS_LENGTH; i++){\r
-            short mac = rawMessage.readUnsignedByte();\r
-            dlDst.append(String.format("%02X", mac));\r
-        }\r
-        builder.setDlDst(new MacAddress(dlDst.toString()));\r
+        byte[] dlSrc = new byte[EncodeConstants.MAC_ADDRESS_LENGTH];\r
+        rawMessage.readBytes(dlSrc);\r
+        builder.setDlSrc(new MacAddress(ByteBufUtils.macAddressToString(dlSrc)));\r
+        byte[] dlDst = new byte[EncodeConstants.MAC_ADDRESS_LENGTH];\r
+        rawMessage.readBytes(dlDst);\r
+        builder.setDlDst(new MacAddress(ByteBufUtils.macAddressToString(dlDst)));\r
+\r
         builder.setDlVlan(rawMessage.readUnsignedShort());\r
         builder.setDlVlanPcp(rawMessage.readUnsignedByte());\r
         rawMessage.skipBytes(PADDING_IN_MATCH);\r
@@ -53,13 +46,13 @@ public abstract class OF10MatchDeserializer {
         builder.setNwProto(rawMessage.readUnsignedByte());\r
         rawMessage.skipBytes(PADDING_IN_MATCH_2);\r
         List<String> srcGroups = new ArrayList<>();\r
-        for (int i = 0; i < GROUPS_IN_IPV4_ADDRESS; i++) {\r
+        for (int i = 0; i < EncodeConstants.GROUPS_IN_IPV4_ADDRESS; i++) {\r
             srcGroups.add(Short.toString(rawMessage.readUnsignedByte()));\r
         }\r
         Joiner joiner = Joiner.on(".");\r
         builder.setNwSrc(new Ipv4Address(joiner.join(srcGroups)));\r
         List<String> dstGroups = new ArrayList<>();\r
-        for (int i = 0; i < GROUPS_IN_IPV4_ADDRESS; i++) {\r
+        for (int i = 0; i < EncodeConstants.GROUPS_IN_IPV4_ADDRESS; i++) {\r
             dstGroups.add(Short.toString(rawMessage.readUnsignedByte()));\r
         }\r
         builder.setNwSrc(new Ipv4Address(joiner.join(dstGroups)));\r