blob: b261d4141a565afb8432994d3cb0c10bbce7fd6d [file] [log] [blame]
package org.openflow.types;
import org.jboss.netty.buffer.ChannelBuffer;
import org.openflow.exceptions.OFParseError;
public enum IpEcn implements OFValueType {
ECN_00((byte)0),
ECN_01((byte)1),
ECN_10((byte)2),
ECN_11((byte)3);
static final int LENGTH = 1;
private final byte ecn;
private IpEcn(byte ecn) {
this.ecn = ecn;
}
public static IpEcn of(byte ecn) {
switch (ecn) {
case 0:
return ECN_00;
case 1:
return ECN_01;
case 2:
return ECN_10;
case 3:
return ECN_11;
default:
throw new IllegalArgumentException("Illegal IP ECN value: " + ecn);
}
}
@Override
public int getLength() {
return LENGTH;
}
@Override
public String toString() {
return (ecn < 3 ? "0" : "") + Integer.toBinaryString(ecn);
}
public void writeByte(ChannelBuffer c) {
c.writeByte(this.ecn);
}
public static IpEcn readByte(ChannelBuffer c) throws OFParseError {
return IpEcn.of((byte)(c.readUnsignedByte()));
}
}