1 package edu.uci.iotproject.maclayer;
3 import java.util.Collections;
7 * TODO create base class for FlowPattern and derive MacLayer, TCP/IP layer versions from that.
9 * @author Janus Varmarken
11 public class MacLayerFlowPattern {
13 private final List<Integer> mPacketLengthSequence;
14 private final String mMacPrefix;
15 private final String mPatternId;
16 private final byte[] mMacPreixBytes;
18 public MacLayerFlowPattern(String patternId, String macPrefix, List<Integer> packetLengthSequence) {
19 mMacPrefix = macPrefix;
20 mPatternId = patternId;
21 mPacketLengthSequence = packetLengthSequence;
22 // Conversion provided by https://stackoverflow.com/a/10839361/1214974
23 String[] addressParts = macPrefix.split(":");
24 mMacPreixBytes = new byte[addressParts.length];
25 for(int i = 0; i < mMacPreixBytes.length; i++) {
26 Integer hex = Integer.parseInt(addressParts[i], 16);
27 mMacPreixBytes[i] = hex.byteValue();
31 public String getPatternId() {
35 public byte[] getMacPrefixRawBytes() {
36 return mMacPreixBytes;
39 public List<Integer> getPacketLengthSequence() {
40 return Collections.unmodifiableList(mPacketLengthSequence);
43 public int getLength() {
44 return mPacketLengthSequence.size();