X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=third-party%2Fopenflow-codec%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenflow%2Fcodec%2Fprotocol%2Fstatistics%2FOFPTableFeatures.java;fp=third-party%2Fopenflow-codec%2Fsrc%2Fmain%2Fjava%2Forg%2Fopenflow%2Fcodec%2Fprotocol%2Fstatistics%2FOFPTableFeatures.java;h=0000000000000000000000000000000000000000;hb=64fe0fbca1a6c2b77ad25f568d73a7eb64236d16;hp=a3803b2e0c40e85c7829ef74b84d0e9e0c5f90c6;hpb=8b9a3ff2bbc83941254b46b818cbbae5cc1a3a5b;p=openflowjava.git diff --git a/third-party/openflow-codec/src/main/java/org/openflow/codec/protocol/statistics/OFPTableFeatures.java b/third-party/openflow-codec/src/main/java/org/openflow/codec/protocol/statistics/OFPTableFeatures.java deleted file mode 100644 index a3803b2e..00000000 --- a/third-party/openflow-codec/src/main/java/org/openflow/codec/protocol/statistics/OFPTableFeatures.java +++ /dev/null @@ -1,326 +0,0 @@ -package org.openflow.codec.protocol.statistics; - -import java.io.Serializable; -import java.util.List; - -import org.openflow.codec.io.IDataBuffer; -import org.openflow.codec.protocol.factory.OFPTableFeaturePropFactory; -import org.openflow.codec.protocol.factory.OFPTableFeaturePropFactoryAware; -import org.openflow.codec.protocol.statistics.table.OFPTableFeaturePropHeader; -import org.openflow.codec.util.StringByteSerializer; - -/** - * Represents an ofp_table_features structure - * - * @author AnilGujele - */ -public class OFPTableFeatures implements OFPStatistics, - OFPTableFeaturePropFactoryAware, Serializable -{ - private static final int MINIMUM_LENGTH = 64; - private static final int MAX_TABLE_NAME_LEN = 32; - - private short length = MINIMUM_LENGTH; - private byte tableId; - private String name; - private long metadataMatch; - private long metadataWrite; - private int config; - private int maxEntries; - private List properties; - - private OFPTableFeaturePropFactory tableFeaturePropFactory; - - /** - * @return the tableId - */ - public byte getTableId() - { - return tableId; - } - - /** - * @param tableId - * the tableId to set - */ - public void setTableId(byte tableId) - { - this.tableId = tableId; - } - - /** - * - * @return - */ - public String getName() - { - return name; - } - - /** - * - * @param name - */ - public void setName(String name) - { - this.name = name; - } - - /** - * - * @return - */ - public long getMetadataMatch() - { - return metadataMatch; - } - - /** - * - * @param metadataMatch - */ - public void setMetadataMatch(long metadataMatch) - { - this.metadataMatch = metadataMatch; - } - - /** - * - * @return - */ - public long getMetadataWrite() - { - return metadataWrite; - } - - /** - * - * @param metadataWrite - */ - public void setMetadataWrite(long metadataWrite) - { - this.metadataWrite = metadataWrite; - } - - /** - * - * @return - */ - public int getConfig() - { - return config; - } - - /** - * - * @param config - */ - public void setConfig(int config) - { - this.config = config; - } - - /** - * - * @return - */ - public int getMaxEntries() - { - return maxEntries; - } - - /** - * - * @param maxEntries - */ - public void setMaxEntries(int maxEntries) - { - this.maxEntries = maxEntries; - } - - /** - * - * @return - */ - public List getProperties() - { - return properties; - } - - /** - * - * @param properties - */ - public void setProperties(List properties) - { - this.properties = properties; - updateLength(); - } - - /** - * update length TODO: All the associated properties are 8 byte (64 bits) - * aligned. Length of each property excludes the padding, if we sum up each - * associated property length it will give us length excluding the total - * bytes of padding added to make it align. We assume that table feature - * response message switch will send in response to OFPMP_TABLE_FEATURES - * request, will also consider padding in the message lengh. Something to - * cross check with switch implementation. - */ - private void updateLength() - { - length = MINIMUM_LENGTH; - if (null != properties) - { - for (OFPTableFeaturePropHeader prop : properties) - { - int len = prop.getLengthU(); - /* Add the aligned length, including padding */ - length += len + (8 - (len % 8)); - - } - } - } - - @Override - public int getLength() - { - return length; - } - - @Override - public void readFrom(IDataBuffer data) - { - - this.length = data.getShort(); - this.tableId = data.get(); - data.get(); // pad - data.getInt(); // pad - this.name = StringByteSerializer.readFrom(data, MAX_TABLE_NAME_LEN); - this.metadataMatch = data.getLong(); - this.metadataWrite = data.getLong(); - this.config = data.getInt(); - this.maxEntries = data.getInt(); - int propLength = this.length - OFPTableFeatures.MINIMUM_LENGTH; - if (null == this.tableFeaturePropFactory) - throw new RuntimeException("OFPTableFeaturePropFactory is not set"); - this.properties = tableFeaturePropFactory.parseTableFeatureProp(data, - propLength); - if (this.properties.isEmpty()) - { - properties = null; - } - - } - - @Override - public void writeTo(IDataBuffer data) - { - - data.putShort(length); - data.put(this.tableId); - data.put((byte) 0); // pad - data.putInt(0); // pad - StringByteSerializer.writeTo(data, MAX_TABLE_NAME_LEN, this.name); - data.putLong(this.metadataMatch); - data.putLong(this.metadataWrite); - data.putInt(this.config); - data.putInt(this.maxEntries); - if (null != properties) - { - for (OFPTableFeaturePropHeader prop : properties) - { - prop.writeTo(data); - } - } - } - - @Override - public int hashCode() - { - final int prime = 4491; - int result = 1; - result = prime * result + maxEntries; - result = prime * result + config; - result = prime * result - + (int) (metadataMatch ^ (metadataMatch >>> 32)); - result = prime * result - + (int) (metadataWrite ^ (metadataWrite >>> 32)); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - result = prime * result + tableId; - result = prime * result + length; - result = prime * result - + ((properties == null) ? 0 : properties.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) - { - if (this == obj) - { - return true; - } - if (obj == null) - { - return false; - } - if (!(obj instanceof OFPTableFeatures)) - { - return false; - } - OFPTableFeatures other = (OFPTableFeatures) obj; - if (maxEntries != other.maxEntries) - { - return false; - } - if (config != other.config) - { - return false; - } - if (metadataMatch != other.metadataMatch) - { - return false; - } - if (metadataWrite != other.metadataWrite) - { - return false; - } - if (length != other.length) - { - return false; - } - if (tableId != other.tableId) - { - return false; - } - if (name == null) - { - if (other.name != null) - { - return false; - } - } else if (!name.equals(other.name)) - { - return false; - } - if (properties == null) - { - if (other.properties != null) - { - return false; - } - } else if (!properties.equals(other.properties)) - { - return false; - } - return true; - } - - @Override - public void setTableFeaturePropFactory( - OFPTableFeaturePropFactory tableFeaturePropFactory) - { - - this.tableFeaturePropFactory = tableFeaturePropFactory; - } -}