diff options
Diffstat (limited to 'framework/src/onos/utils/misc/src/main/java/org/onlab/packet/RADIUSAttribute.java')
-rw-r--r-- | framework/src/onos/utils/misc/src/main/java/org/onlab/packet/RADIUSAttribute.java | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/RADIUSAttribute.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/RADIUSAttribute.java new file mode 100644 index 00000000..9687e377 --- /dev/null +++ b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/RADIUSAttribute.java @@ -0,0 +1,142 @@ +/* + * + * * Copyright 2015 AT&T Foundry + * * + * * 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; + +/** + * An attribute in a RADIUS packet. + */ +public class RADIUSAttribute { + protected byte type; + protected byte length; + protected byte[] value; + + // RADIUS attribute types + public static final byte RADIUS_ATTR_USERNAME = 1; + public static final byte RADIUS_ATTR_NAS_IP = 4; + public static final byte RADIUS_ATTR_NAS_PORT = 5; + public static final byte RADIUS_ATTR_FRAMED_MTU = 12; + public static final byte RADIUS_ATTR_STATE = 24; + public static final byte RADIUS_ATTR_VENDOR_SPECIFIC = 26; + public static final byte RADIUS_ATTR_CALLING_STATION_ID = 31; + public static final byte RADIUS_ATTR_NAS_ID = 32; + public static final byte RADIUS_ATTR_ACCT_SESSION_ID = 44; + public static final byte RADIUS_ATTR_NAS_PORT_TYPE = 61; + public static final byte RADIUS_ATTR_EAP_MESSAGE = 79; + public static final byte RADIUS_ATTR_MESSAGE_AUTH = 80; + public static final byte RADIUS_ATTR_NAS_PORT_ID = 87; + + /** + * Default constructor. + */ + public RADIUSAttribute() { + } + + /** + * Constructs a RADIUS attribute with the give type, length and value. + * + * @param type type + * @param length length + * @param value value + */ + public RADIUSAttribute(final byte type, final byte length, final byte[] value) { + this.type = type; + this.length = length; + this.value = value; + } + + /** + * Checks if the attribute type is valid. + * + * @return whether the type is valid or not + */ + public boolean isValidType() { + return this.type == RADIUS_ATTR_USERNAME || + this.type == RADIUS_ATTR_NAS_IP || + this.type == RADIUS_ATTR_NAS_PORT || + this.type == RADIUS_ATTR_VENDOR_SPECIFIC || + this.type == RADIUS_ATTR_CALLING_STATION_ID || + this.type == RADIUS_ATTR_NAS_ID || + this.type == RADIUS_ATTR_ACCT_SESSION_ID || + this.type == RADIUS_ATTR_NAS_PORT_TYPE || + this.type == RADIUS_ATTR_EAP_MESSAGE || + this.type == RADIUS_ATTR_MESSAGE_AUTH || + this.type == RADIUS_ATTR_NAS_PORT_ID; + } + + /** + * Gets the attribute type. + * + * @return the type + */ + public byte getType() { + return this.type; + } + + /** + * Sets the attribute type. + * + * @param type the code to set + * @return this + */ + public RADIUSAttribute setType(final byte type) { + this.type = type; + return this; + } + + /** + * Gets the attribute length. + * + * @return the length + */ + public byte getLength() { + return this.length; + } + + /** + * Sets the attribute length. + * + * @param length the length to set + * @return this + */ + public RADIUSAttribute setLength(final byte length) { + this.length = length; + return this; + } + + /** + * Gets the attribute value. + * + * @return the value + */ + public byte[] getValue() { + return this.value; + } + + /** + * Sets the attribute value. + * + * @param value the data to set + * @return this + */ + public RADIUSAttribute setValue(final byte[] value) { + this.value = value; + return this; + } + +} |