optical circuit experimenter changes
diff --git a/java_gen/java_type.py b/java_gen/java_type.py
index 6b97f69..5ff987d 100644
--- a/java_gen/java_type.py
+++ b/java_gen/java_type.py
@@ -492,6 +492,9 @@
.op(read="OFBufferId.of(bb.readInt())", write="bb.writeInt($name.getInt())", default="OFBufferId.NO_BUFFER")
lag_id = JType("LagId") \
.op(version=ANY, read="LagId.read4Bytes(bb)", write="$name.write4Bytes(bb)", default="LagId.NONE")
+
+sig_id = JType("CircuitSignalID") \
+ .op(version=ANY, read="CircuitSignalID.read6Bytes(bb)", write="$name.write6Bytes(bb)", default="CircuitSignalID.NONE")
vrf = JType("VRF") \
.op(version=ANY, read="VRF.read4Bytes(bb)", write="$name.write4Bytes(bb)", default="VRF.ZERO")
class_id = JType("ClassId") \
@@ -551,6 +554,7 @@
'of_checksum_128_t': u128,
'of_bsn_vport_t': bsn_vport,
'of_app_code_t': app_code,
+ 'of_sig_id_t': sig_id,
}
## Map that defines exceptions from the standard loxi->java mapping scheme
@@ -698,6 +702,10 @@
'of_bsn_log': { 'data': var_string },
'of_features_reply' : { 'auxiliary_id' : of_aux_id},
+ 'of_oxm_och_sigtype' : { 'value' : u8obj },
+ 'of_oxm_och_sigtype_basic' : { 'value' : u8obj },
+ 'of_oxm_och_sigid' : {'value' : sig_id},
+ 'of_oxm_och_sigid_basic' : {'value' : sig_id},
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
index 1acc1a2..01a1fa5 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
@@ -27,6 +27,7 @@
import org.projectfloodlight.openflow.types.UDF;
import org.projectfloodlight.openflow.types.VRF;
import org.projectfloodlight.openflow.types.VlanPcp;
+import org.projectfloodlight.openflow.types.CircuitSignalID;
@SuppressWarnings("unchecked")
public class MatchField<F extends OFValueType<F>> {
@@ -235,15 +236,24 @@
public final static MatchField<ClassId> BSN_VLAN_XLATE_PORT_GROUP_ID =
new MatchField<ClassId>("bsn_vlan_xlate_port_group_id", MatchFields.BSN_VLAN_XLATE_PORT_GROUP_ID);
-
- public final static MatchField<U64> OCH_SIGID =
- new MatchField<U64>("och_sigid",
+
+ public final static MatchField<CircuitSignalID> OCH_SIGID =
+ new MatchField<CircuitSignalID>("och_sigid",
MatchFields.OCH_SIGID);
- public final static MatchField<U64> OCH_SIGTYPE =
- new MatchField<U64>("och_sigid",
+ public final static MatchField<U8> OCH_SIGTYPE =
+ new MatchField<U8>("och_sigtype",
MatchFields.OCH_SIGTYPE);
+
+ public final static MatchField<CircuitSignalID> OCH_SIGID_BASIC =
+ new MatchField<CircuitSignalID>("och_sigid_basic",
+ MatchFields.OCH_SIGID);
+ public final static MatchField<U8> OCH_SIGTYPE_BASIC =
+ new MatchField<U8>("och_sigtype_basic",
+ MatchFields.OCH_SIGTYPE_BASIC);
+
+
public String getName() {
return name;
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
index 43a7785..ccf56b2 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
@@ -58,5 +58,8 @@
BSN_TCP_FLAGS,
BSN_VLAN_XLATE_PORT_GROUP_ID,
OCH_SIGID,
- OCH_SIGTYPE;
+ OCH_SIGTYPE,
+ OCH_SIGID_BASIC,
+ OCH_SIGTYPE_BASIC,
+;
}
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/CircuitSignalID.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/CircuitSignalID.java
new file mode 100644
index 0000000..f347387
--- /dev/null
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/types/CircuitSignalID.java
@@ -0,0 +1,122 @@
+package org.projectfloodlight.openflow.types;
+
+import com.google.common.collect.ComparisonChain;
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.projectfloodlight.openflow.exceptions.OFParseError;
+
+import com.google.common.hash.PrimitiveSink;
+
+
+public class CircuitSignalID implements OFValueType<CircuitSignalID> {
+ static final int length = 6;
+
+ private byte gridType;
+ private byte channelSpacing ;
+ private short channelNumber;
+ private short spectralWidth;
+
+ public static final CircuitSignalID NONE = new CircuitSignalID((byte)0,
+ (byte)0,
+ (short)0,
+ (short)0);
+
+
+ public CircuitSignalID(byte gridType, byte channelSpacing,
+ short channelNumber,
+ short spectralWidth)
+ {
+ this.gridType = gridType;
+ this.channelSpacing = channelSpacing;
+ this.channelNumber = channelNumber;
+ this.spectralWidth = spectralWidth;
+
+ }
+
+ @Override
+ public int getLength() {
+ return length;
+ }
+
+
+ public void write6Bytes(ChannelBuffer c) {
+ c.writeByte(gridType);
+ c.writeByte(channelSpacing);
+ c.writeShort(channelNumber);
+ c.writeShort(spectralWidth);
+ }
+
+ public static CircuitSignalID read6Bytes(ChannelBuffer c) throws OFParseError {
+ return new CircuitSignalID((byte)c.readUnsignedByte(),
+ (byte)c.readUnsignedByte(),
+ (short)c.readUnsignedShort(),
+ (short)c.readUnsignedShort());
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ CircuitSignalID that = (CircuitSignalID) o;
+
+ if (channelNumber != that.channelNumber) return false;
+ if (channelSpacing != that.channelSpacing) return false;
+ if (gridType != that.gridType) return false;
+ if (spectralWidth != that.spectralWidth) return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = (int) gridType;
+ result = 31 * result + (int) channelSpacing;
+ result = 31 * result + (int) channelNumber;
+ result = 31 * result + (int) spectralWidth;
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "CircuitSignalID{" +
+ "gridType=" + gridType +
+ ", channelSpacing=" + channelSpacing +
+ ", channelNumber=" + channelNumber +
+ ", spectralWidth=" + spectralWidth +
+ '}';
+ }
+
+ @Override
+ public CircuitSignalID applyMask(CircuitSignalID mask) {
+ return new CircuitSignalID((byte) (this.gridType & mask.gridType),
+ (byte) (this.channelSpacing & mask
+ .channelSpacing),
+ (short) (this.channelNumber & mask
+ .channelNumber),
+ (short) (this.spectralWidth & mask
+ .spectralWidth));
+ }
+
+
+ @Override
+ public int compareTo(CircuitSignalID o) {
+ return ComparisonChain.start()
+ .compare(gridType,o.gridType)
+ .compare(channelSpacing,o.channelSpacing)
+ .compare(channelNumber,o.channelNumber)
+ .compare(spectralWidth,o.spectralWidth)
+ .result();
+ }
+
+
+ @Override
+ public void putTo(PrimitiveSink sink) {
+ sink.putByte(gridType);
+ sink.putByte(channelSpacing);
+ sink.putShort(channelNumber);
+ sink.putShort(spectralWidth);
+ }
+
+
+
+}
diff --git a/java_gen/pre-written/src/test/java/org/projectfloodlight/protocol/match/MatchFieldIteration13Test.java b/java_gen/pre-written/src/test/java/org/projectfloodlight/protocol/match/MatchFieldIteration13Test.java
index 9656406..1bd3efe 100644
--- a/java_gen/pre-written/src/test/java/org/projectfloodlight/protocol/match/MatchFieldIteration13Test.java
+++ b/java_gen/pre-written/src/test/java/org/projectfloodlight/protocol/match/MatchFieldIteration13Test.java
@@ -5,7 +5,7 @@
import org.projectfloodlight.openflow.protocol.OFVersion;
import org.projectfloodlight.openflow.protocol.match.Match;
import org.projectfloodlight.openflow.protocol.match.MatchField;
-import org.projectfloodlight.openflow.types.U64;
+import org.projectfloodlight.openflow.types.U8;
public class MatchFieldIteration13Test extends MatchFieldIterationBase {
public MatchFieldIteration13Test() {
@@ -16,7 +16,7 @@
public void matchCircuitFields()
{
Match.Builder builder = factory.buildMatchV3().setExact(MatchField
- .OCH_SIGTYPE, U64.ZERO);
+ .OCH_SIGTYPE, U8.ZERO);
}
}