diff options
Diffstat (limited to 'framework/src/onos/utils/misc/src/main/java/org/onlab/packet/LLDPOrganizationalTLV.java')
-rw-r--r-- | framework/src/onos/utils/misc/src/main/java/org/onlab/packet/LLDPOrganizationalTLV.java | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/LLDPOrganizationalTLV.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/LLDPOrganizationalTLV.java deleted file mode 100644 index bedf439f..00000000 --- a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/LLDPOrganizationalTLV.java +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright 2014 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. You may obtain - * a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - **/ - -package org.onlab.packet; - -import java.nio.ByteBuffer; -import java.nio.charset.Charset; -import java.util.Arrays; - -/** - * The class representing LLDP Organizationally Specific TLV. - * - */ -public class LLDPOrganizationalTLV extends LLDPTLV { - public static final int OUI_LENGTH = 3; - public static final int SUBTYPE_LENGTH = 1; - public static final byte ORGANIZATIONAL_TLV_TYPE = 127; - public static final int MAX_INFOSTRING_LENGTH = 507; - - protected byte[] oui; - protected byte subType; - private byte[] infoString; - - public LLDPOrganizationalTLV() { - this.type = LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE; - } - - /** - * Set the value of OUI. - * - * @param oui - * The value of OUI to be set. - * @return This LLDP Organizationally Specific TLV. - */ - public LLDPOrganizationalTLV setOUI(final byte[] oui) { - if (oui.length != LLDPOrganizationalTLV.OUI_LENGTH) { - throw new IllegalArgumentException("The length of OUI must be " - + LLDPOrganizationalTLV.OUI_LENGTH + ", but it is " - + oui.length); - } - this.oui = Arrays.copyOf(oui, oui.length); - return this; - } - - /** - * Returns the value of the OUI. - * - * @return The value of the OUI . - */ - public byte[] getOUI() { - return Arrays.copyOf(this.oui, this.oui.length); - } - - /** - * Set the value of sub type. - * - * @param subType - * The value of sub type to be set. - * @return This LLDP Organizationally Specific TLV. - */ - public LLDPOrganizationalTLV setSubType(final byte subType) { - this.subType = subType; - return this; - } - - /** - * Returns the value of the sub type. - * - * @return The value of the sub type. - */ - public byte getSubType() { - return this.subType; - } - - /** - * Set the value of information string. - * - * @param infoString - * the byte array of the value of information string. - * @return This LLDP Organizationally Specific TLV. - */ - public LLDPOrganizationalTLV setInfoString(final byte[] infoString) { - if (infoString.length > LLDPOrganizationalTLV.MAX_INFOSTRING_LENGTH) { - throw new IllegalArgumentException( - "The length of infoString cannot exceed " - + LLDPOrganizationalTLV.MAX_INFOSTRING_LENGTH); - } - this.infoString = Arrays.copyOf(infoString, infoString.length); - return this; - } - - /** - * Set the value of information string. The String value is automatically - * converted into byte array with UTF-8 encoding. - * - * @param infoString - * the String value of information string. - * @return This LLDP Organizationally Specific TLV. - */ - public LLDPOrganizationalTLV setInfoString(final String infoString) { - final byte[] infoStringBytes = infoString.getBytes(Charset - .forName("UTF-8")); - return this.setInfoString(infoStringBytes); - } - - /** - * Returns the value of information string. - * - * @return the value of information string. - */ - public byte[] getInfoString() { - return Arrays.copyOf(this.infoString, this.infoString.length); - } - - @Override - public byte[] serialize() { - if (this.type != LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE) { - return super.serialize(); - } - final int valueLength = LLDPOrganizationalTLV.OUI_LENGTH - + LLDPOrganizationalTLV.SUBTYPE_LENGTH + this.infoString.length; - this.value = new byte[valueLength]; - final ByteBuffer bb = ByteBuffer.wrap(this.value); - bb.put(this.oui); - bb.put(this.subType); - bb.put(this.infoString); - return super.serialize(); - } - - @Override - public LLDPTLV deserialize(final ByteBuffer bb) throws DeserializationException { - super.deserialize(bb); - if (this.getType() != LLDPOrganizationalTLV.ORGANIZATIONAL_TLV_TYPE) { - return this; - } - - if (this.getLength() <= OUI_LENGTH + SUBTYPE_LENGTH) { - throw new DeserializationException( - "TLV length is less than required for organizational TLV"); - } - - final ByteBuffer optionalField = ByteBuffer.wrap(this.value); - - final byte[] oui = new byte[LLDPOrganizationalTLV.OUI_LENGTH]; - optionalField.get(oui); - this.setOUI(oui); - - this.setSubType(optionalField.get()); - - final byte[] infoString = new byte[this.getLength() - - LLDPOrganizationalTLV.OUI_LENGTH - - LLDPOrganizationalTLV.SUBTYPE_LENGTH]; - optionalField.get(infoString); - this.setInfoString(infoString); - return this; - } - - @Override - public int hashCode() { - final int prime = 1423; - int result = 1; - result = prime * result + this.type; - result = prime * result + this.length; - result = prime * result + Arrays.hashCode(this.oui); - result = prime * result + this.subType; - result = prime * result + Arrays.hashCode(this.infoString); - return result; - } - - @Override - public boolean equals(final Object o) { - if (o == this) { - return true; - } - - if (!(o instanceof LLDPOrganizationalTLV)) { - return false; - } - - final LLDPOrganizationalTLV other = (LLDPOrganizationalTLV) o; - if (this.type != other.type) { - return false; - } - if (this.length != other.length) { - return false; - } - if (!Arrays.equals(this.oui, other.oui)) { - return false; - } - if (this.subType != other.subType) { - return false; - } - if (!Arrays.equals(this.infoString, other.infoString)) { - return false; - } - - return true; - } -} |