*/\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
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
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