aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/EAPOL.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/utils/misc/src/main/java/org/onlab/packet/EAPOL.java')
-rw-r--r--framework/src/onos/utils/misc/src/main/java/org/onlab/packet/EAPOL.java199
1 files changed, 0 insertions, 199 deletions
diff --git a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/EAPOL.java b/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/EAPOL.java
deleted file mode 100644
index 1820cc31..00000000
--- a/framework/src/onos/utils/misc/src/main/java/org/onlab/packet/EAPOL.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- *
- * * 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;
-
-import java.nio.ByteBuffer;
-
-import static org.onlab.packet.PacketUtils.checkHeaderLength;
-import static org.onlab.packet.PacketUtils.checkInput;
-
-/**
- * EAPOL (Extensible Authentication Protocol over LAN) header.
- */
-public class EAPOL extends BasePacket {
-
- private byte version = 0x01;
- private byte eapolType;
- private short packetLength;
-
- private static final int HEADER_LENGTH = 4;
-
- // EAPOL Packet Type
- public static final byte EAPOL_PACKET = 0x0;
- public static final byte EAPOL_START = 0x1;
- public static final byte EAPOL_LOGOFF = 0x2;
- public static final byte EAPOL_KEY = 0x3;
- public static final byte EAPOL_ASF = 0x4;
-
- public static final MacAddress PAE_GROUP_ADDR = MacAddress.valueOf(new byte[] {
- (byte) 0x01, (byte) 0x80, (byte) 0xc2, (byte) 0x00, (byte) 0x00, (byte) 0x03
- });
-
- /**
- * Gets the version.
- *
- * @return version
- */
- public byte getVersion() {
- return this.version;
- }
-
- /**
- * Sets the version.
- *
- * @param version EAPOL version
- * @return this
- */
- public EAPOL setVersion(final byte version) {
- this.version = version;
- return this;
- }
-
- /**
- * Gets the type.
- *
- * @return EAPOL type
- */
- public byte getEapolType() {
- return this.eapolType;
- }
-
- /**
- * Sets the EAPOL type.
- *
- * @param eapolType EAPOL type
- * @return this
- */
- public EAPOL setEapolType(final byte eapolType) {
- this.eapolType = eapolType;
- return this;
- }
-
- /**
- * Gets the packet length.
- *
- * @return packet length
- */
- public short getPacketLength() {
- return this.packetLength;
- }
-
- /**
- * Sets the packet length.
- *
- * @param packetLen packet length
- * @return this
- */
- public EAPOL setPacketLength(final short packetLen) {
- this.packetLength = packetLen;
- return this;
- }
-
- /**
- * Serializes the packet, based on the code/type using the payload
- * to compute its length.
- *
- * @return this
- */
- @Override
- public byte[] serialize() {
- byte[] payloadData = null;
-
- if (this.payload != null) {
- this.payload.setParent(this);
- payloadData = this.payload.serialize();
- }
-
- // prepare the buffer to hold the version (1), packet type (1),
- // packet length (2) and the eap payload.
- // if there is no payload, packet length is 0
- byte[] data = new byte[4 + this.packetLength];
- final ByteBuffer bb = ByteBuffer.wrap(data);
- bb.put(this.version);
- bb.put(this.eapolType);
- bb.putShort(this.packetLength);
-
- // put the EAP payload
- if (payloadData != null) {
- bb.put(payloadData);
- }
-
- return data;
- }
-
- @Override
- public int hashCode() {
- final int prime = 3889;
- int result = super.hashCode();
- result = prime * result + this.version;
- result = prime * result + this.eapolType;
- result = prime * result + this.packetLength;
- return result;
- }
-
- /**
- * Deserializer for EAPOL packets.
- *
- * @return deserializer
- */
- public static Deserializer<EAPOL> deserializer() {
- return (data, offset, length) -> {
- checkInput(data, offset, length, HEADER_LENGTH);
-
- EAPOL eapol = new EAPOL();
- final ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
- eapol.setVersion(bb.get());
- eapol.setEapolType(bb.get());
- eapol.setPacketLength(bb.getShort());
-
- if (eapol.packetLength > 0) {
- checkHeaderLength(length, HEADER_LENGTH + eapol.packetLength);
- // deserialize the EAP Payload
- eapol.payload = EAP.deserializer().deserialize(data,
- bb.position(), bb.limit() - bb.position());
-
- eapol.payload.setParent(eapol);
- }
-
- return eapol;
- };
- }
-
- @Override
- public IPacket deserialize(final byte[] data, final int offset,
- final int length) {
- final ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
-
- // deserialize the EAPOL header
- this.version = bb.get();
- this.eapolType = bb.get();
- this.packetLength = bb.getShort();
-
- if (this.packetLength > 0) {
- // deserialize the EAP Payload
- this.payload = new EAP();
-
- this.payload = this.payload.deserialize(data, bb.position(), length - 4);
- this.payload.setParent(this);
- }
-
- return this;
- }
-}
-