Moving /of to /openflow
diff --git a/openflow/api/pom.xml b/openflow/api/pom.xml
new file mode 100644
index 0000000..7a1619e
--- /dev/null
+++ b/openflow/api/pom.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-of</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-of-api</artifactId>
+ <packaging>bundle</packaging>
+
+ <description>ONOS OpenFlow controller subsystem API</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.projectfloodlight</groupId>
+ <artifactId>openflowj</artifactId>
+ <version>0.3.8-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>io.netty</groupId>
+ <artifactId>netty</artifactId>
+ <version>3.9.0.Final</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>2.3</version>
+ <configuration>
+ <artifactSet>
+ <excludes>
+ <exclude>io.netty:netty</exclude>
+ <exclude>com.google.guava:guava</exclude>
+ <exclude>org.slf4j:slfj-api</exclude>
+ <exclude>ch.qos.logback:logback-core</exclude>
+ <exclude>ch.qos.logback:logback-classic</exclude>
+ <exclude>com.google.code.findbugs:annotations</exclude>
+ </excludes>
+ </artifactSet>
+ </configuration>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <instructions>
+ <Export-Package>
+ org.onlab.onos.of.*,org.projectfloodlight.openflow.*
+ </Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/DefaultOpenFlowPacketContext.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/DefaultOpenFlowPacketContext.java
new file mode 100644
index 0000000..45f615a
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/DefaultOpenFlowPacketContext.java
@@ -0,0 +1,120 @@
+package org.onlab.onos.of.controller;
+
+import static org.slf4j.LoggerFactory.getLogger;
+
+import java.util.Collections;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.onlab.packet.Ethernet;
+import org.projectfloodlight.openflow.protocol.OFPacketIn;
+import org.projectfloodlight.openflow.protocol.OFPacketOut;
+import org.projectfloodlight.openflow.protocol.action.OFAction;
+import org.projectfloodlight.openflow.protocol.action.OFActionOutput;
+import org.projectfloodlight.openflow.protocol.match.MatchField;
+import org.projectfloodlight.openflow.types.OFBufferId;
+import org.projectfloodlight.openflow.types.OFPort;
+import org.slf4j.Logger;
+
+public final class DefaultOpenFlowPacketContext implements OpenFlowPacketContext {
+
+ private final Logger log = getLogger(getClass());
+
+ private final AtomicBoolean free = new AtomicBoolean(true);
+ private final AtomicBoolean isBuilt = new AtomicBoolean(false);
+ private final OpenFlowSwitch sw;
+ private final OFPacketIn pktin;
+ private OFPacketOut pktout = null;
+
+ private DefaultOpenFlowPacketContext(OpenFlowSwitch s, OFPacketIn pkt) {
+ this.sw = s;
+ this.pktin = pkt;
+ }
+
+ @Override
+ public void send() {
+ if (block() && isBuilt.get()) {
+ sw.sendMsg(pktout);
+ }
+ }
+
+ @Override
+ public void build(OFPort outPort) {
+ if (isBuilt.getAndSet(true)) {
+ return;
+ }
+ OFPacketOut.Builder builder = sw.factory().buildPacketOut();
+ OFAction act = buildOutput(outPort.getPortNumber());
+ pktout = builder.setXid(pktin.getXid())
+ .setInPort(pktin.getInPort())
+ .setBufferId(pktin.getBufferId())
+ .setActions(Collections.singletonList(act))
+ .build();
+ }
+
+ @Override
+ public void build(Ethernet ethFrame, OFPort outPort) {
+ if (isBuilt.getAndSet(true)) {
+ return;
+ }
+ OFPacketOut.Builder builder = sw.factory().buildPacketOut();
+ OFAction act = buildOutput(outPort.getPortNumber());
+ pktout = builder.setXid(pktin.getXid())
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setInPort(pktin.getInPort())
+ .setActions(Collections.singletonList(act))
+ .setData(ethFrame.serialize())
+ .build();
+ }
+
+ @Override
+ public Ethernet parsed() {
+ Ethernet eth = new Ethernet();
+ eth.deserialize(pktin.getData(), 0, pktin.getTotalLen());
+ return eth;
+ }
+
+ @Override
+ public Dpid dpid() {
+ return new Dpid(sw.getId());
+ }
+
+ public static OpenFlowPacketContext packetContextFromPacketIn(OpenFlowSwitch s,
+ OFPacketIn pkt) {
+ return new DefaultOpenFlowPacketContext(s, pkt);
+ }
+
+ @Override
+ public Integer inPort() {
+ try {
+ return pktin.getInPort().getPortNumber();
+ } catch (UnsupportedOperationException e) {
+ return pktin.getMatch().get(MatchField.IN_PORT).getPortNumber();
+ }
+ }
+
+ @Override
+ public byte[] unparsed() {
+
+ return pktin.getData().clone();
+
+ }
+
+ private OFActionOutput buildOutput(Integer port) {
+ OFActionOutput act = sw.factory().actions()
+ .buildOutput()
+ .setPort(OFPort.of(port))
+ .build();
+ return act;
+ }
+
+ @Override
+ public boolean block() {
+ return free.getAndSet(false);
+ }
+
+ @Override
+ public boolean isHandled() {
+ return !free.get();
+ }
+
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/Dpid.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/Dpid.java
new file mode 100644
index 0000000..ca3d8e6
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/Dpid.java
@@ -0,0 +1,119 @@
+package org.onlab.onos.of.controller;
+
+import org.projectfloodlight.openflow.util.HexString;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static org.onlab.util.Tools.fromHex;
+import static org.onlab.util.Tools.toHex;
+
+/**
+ * The class representing a network switch DPID.
+ * This class is immutable.
+ */
+public final class Dpid {
+
+ private static final String SCHEME = "of";
+ private static final long UNKNOWN = 0;
+ private final long value;
+
+ /**
+ * Default constructor.
+ */
+ public Dpid() {
+ this.value = Dpid.UNKNOWN;
+ }
+
+ /**
+ * Constructor from a long value.
+ *
+ * @param value the value to use.
+ */
+ public Dpid(long value) {
+ this.value = value;
+ }
+
+ /**
+ * Constructor from a string.
+ *
+ * @param value the value to use.
+ */
+ public Dpid(String value) {
+ this.value = HexString.toLong(value);
+ }
+
+ /**
+ * Get the value of the DPID.
+ *
+ * @return the value of the DPID.
+ */
+ public long value() {
+ return value;
+ }
+
+ /**
+ * Convert the DPID value to a ':' separated hexadecimal string.
+ *
+ * @return the DPID value as a ':' separated hexadecimal string.
+ */
+ @Override
+ public String toString() {
+ return HexString.toHexString(this.value);
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ if (!(other instanceof Dpid)) {
+ return false;
+ }
+
+ Dpid otherDpid = (Dpid) other;
+
+ return value == otherDpid.value;
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 17;
+ hash += 31 * hash + (int) (value ^ value >>> 32);
+ return hash;
+ }
+
+ /**
+ * Returns DPID created from the given device URI.
+ *
+ * @param uri device URI
+ * @return dpid
+ */
+ public static Dpid dpid(URI uri) {
+ checkArgument(uri.getScheme().equals(SCHEME), "Unsupported URI scheme");
+ return new Dpid(fromHex(uri.getSchemeSpecificPart()));
+ }
+
+ /**
+ * Produces device URI from the given DPID.
+ *
+ * @param dpid device dpid
+ * @return device URI
+ */
+ public static URI uri(Dpid dpid) {
+ return uri(dpid.value);
+ }
+
+ /**
+ * Produces device URI from the given DPID long.
+ *
+ * @param value device dpid as long
+ * @return device URI
+ */
+ public static URI uri(long value) {
+ try {
+ return new URI(SCHEME, toHex(value), null);
+ } catch (URISyntaxException e) {
+ return null;
+ }
+ }
+
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowController.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowController.java
new file mode 100644
index 0000000..ab80eee
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowController.java
@@ -0,0 +1,101 @@
+package org.onlab.onos.of.controller;
+
+import org.projectfloodlight.openflow.protocol.OFMessage;
+
+/**
+ * Abstraction of an OpenFlow controller. Serves as a one stop
+ * shop for obtaining OpenFlow devices and (un)register listeners
+ * on OpenFlow events
+ */
+public interface OpenFlowController {
+
+ /**
+ * Returns all switches known to this OF controller.
+ * @return Iterable of dpid elements
+ */
+ public Iterable<OpenFlowSwitch> getSwitches();
+
+ /**
+ * Returns all master switches known to this OF controller.
+ * @return Iterable of dpid elements
+ */
+ public Iterable<OpenFlowSwitch> getMasterSwitches();
+
+ /**
+ * Returns all equal switches known to this OF controller.
+ * @return Iterable of dpid elements
+ */
+ public Iterable<OpenFlowSwitch> getEqualSwitches();
+
+
+ /**
+ * Returns the actual switch for the given Dpid.
+ * @param dpid the switch to fetch
+ * @return the interface to this switch
+ */
+ public OpenFlowSwitch getSwitch(Dpid dpid);
+
+ /**
+ * Returns the actual master switch for the given Dpid, if one exists.
+ * @param dpid the switch to fetch
+ * @return the interface to this switch
+ */
+ public OpenFlowSwitch getMasterSwitch(Dpid dpid);
+
+ /**
+ * Returns the actual equal switch for the given Dpid, if one exists.
+ * @param dpid the switch to fetch
+ * @return the interface to this switch
+ */
+ public OpenFlowSwitch getEqualSwitch(Dpid dpid);
+
+ /**
+ * Register a listener for meta events that occur to OF
+ * devices.
+ * @param listener the listener to notify
+ */
+ public void addListener(OpenFlowSwitchListener listener);
+
+ /**
+ * Unregister a listener.
+ *
+ * @param listener the listener to unregister
+ */
+ public void removeListener(OpenFlowSwitchListener listener);
+
+ /**
+ * Register a listener for packet events.
+ * @param priority the importance of this listener, lower values are more important
+ * @param listener the listener to notify
+ */
+ public void addPacketListener(int priority, PacketListener listener);
+
+ /**
+ * Unregister a listener.
+ *
+ * @param listener the listener to unregister
+ */
+ public void removePacketListener(PacketListener listener);
+
+ /**
+ * Send a message to a particular switch.
+ * @param dpid the switch to send to.
+ * @param msg the message to send
+ */
+ public void write(Dpid dpid, OFMessage msg);
+
+ /**
+ * Process a message and notify the appropriate listeners.
+ *
+ * @param dpid the dpid the message arrived on
+ * @param msg the message to process.
+ */
+ public void processPacket(Dpid dpid, OFMessage msg);
+
+ /**
+ * Sets the role for a given switch.
+ * @param role the desired role
+ * @param dpid the switch to set the role for.
+ */
+ public void setRole(Dpid dpid, RoleState role);
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowPacketContext.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowPacketContext.java
new file mode 100644
index 0000000..0e90f95
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowPacketContext.java
@@ -0,0 +1,69 @@
+package org.onlab.onos.of.controller;
+
+import org.onlab.packet.Ethernet;
+import org.projectfloodlight.openflow.types.OFPort;
+
+/**
+ * A representation of a packet context which allows any provider
+ * to view the packet in event but may block the response to the
+ * event if blocked has been called.
+ */
+public interface OpenFlowPacketContext {
+
+ //TODO: may want to support sending packet out other switches than
+ // the one it came in on.
+ /**
+ * Blocks further responses (ie. send() calls) on this
+ * packet in event.
+ */
+ public boolean block();
+
+ /**
+ * Checks whether the packet has been handled.
+ * @return true if handled, false otherwise.
+ */
+ public boolean isHandled();
+
+ /**
+ * Provided build has been called send the packet
+ * out the switch it came in on.
+ */
+ public void send();
+
+ /**
+ * Build the packet out in response to this packet in event.
+ * @param outPort the out port to send to packet out of.
+ */
+ public void build(OFPort outPort);
+
+ /**
+ * Build the packet out in response to this packet in event.
+ * @param ethFrame the actual packet to send out.
+ * @param outPort the out port to send to packet out of.
+ */
+ public void build(Ethernet ethFrame, OFPort outPort);
+
+ /**
+ * Provided a handle onto the parsed payload.
+ * @return the parsed form of the payload.
+ */
+ public Ethernet parsed();
+
+ /**
+ * Provide an unparsed copy of the data.
+ * @return the unparsed form of the payload.
+ */
+ public byte[] unparsed();
+
+ /**
+ * Provide the dpid of the switch where the packet in arrived.
+ * @return the dpid of the switch.
+ */
+ public Dpid dpid();
+
+ /**
+ * Provide the port on which the packet arrived.
+ * @return the port
+ */
+ public Integer inPort();
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowSwitch.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowSwitch.java
new file mode 100644
index 0000000..f16bb88
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowSwitch.java
@@ -0,0 +1,108 @@
+package org.onlab.onos.of.controller;
+
+import java.util.List;
+
+import org.projectfloodlight.openflow.protocol.OFFactory;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFPortDesc;
+
+/**
+ * Represents to provider facing side of a switch.
+ */
+public interface OpenFlowSwitch {
+
+ /**
+ * Writes the message to the driver.
+ *
+ * @param msg the message to write
+ */
+ public void sendMsg(OFMessage msg);
+
+ /**
+ * Writes to the OFMessage list to the driver.
+ *
+ * @param msgs the messages to be written
+ */
+ public void sendMsg(List<OFMessage> msgs);
+
+ /**
+ * Handle a message from the switch.
+ * @param fromSwitch the message to handle
+ */
+ public void handleMessage(OFMessage fromSwitch);
+
+ /**
+ * Sets the role for this switch.
+ * @param role the role to set.
+ */
+ public void setRole(RoleState role);
+
+ /**
+ * Fetch the role for this switch.
+ * @return the role.
+ */
+ public RoleState getRole();
+
+ /**
+ * Fetches the ports of this switch.
+ * @return unmodifiable list of the ports.
+ */
+ public List<OFPortDesc> getPorts();
+
+ /**
+ * Provides the factory for this OF version.
+ * @return OF version specific factory.
+ */
+ public OFFactory factory();
+
+ /**
+ * Gets a string version of the ID for this switch.
+ *
+ * @return string version of the ID
+ */
+ public String getStringId();
+
+ /**
+ * Gets the datapathId of the switch.
+ *
+ * @return the switch dpid in long format
+ */
+ public long getId();
+
+ /**
+ * fetch the manufacturer description.
+ * @return the description
+ */
+ public String manfacturerDescription();
+
+ /**
+ * fetch the datapath description.
+ * @return the description
+ */
+ public String datapathDescription();
+
+ /**
+ * fetch the hardware description.
+ * @return the description
+ */
+ public String hardwareDescription();
+
+ /**
+ * fetch the software description.
+ * @return the description
+ */
+ public String softwareDescription();
+
+ /**
+ * fetch the serial number.
+ * @return the serial
+ */
+ public String serialNumber();
+
+ /**
+ * Disconnects the switch by closing the TCP connection. Results in a call
+ * to the channel handler's channelDisconnected method for cleanup
+ */
+ public void disconnectSwitch();
+
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowSwitchListener.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowSwitchListener.java
new file mode 100644
index 0000000..ae5e3a8
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/OpenFlowSwitchListener.java
@@ -0,0 +1,28 @@
+package org.onlab.onos.of.controller;
+
+import org.projectfloodlight.openflow.protocol.OFPortStatus;
+
+/**
+ * Allows for providers interested in Switch events to be notified.
+ */
+public interface OpenFlowSwitchListener {
+
+ /**
+ * Notify that the switch was added.
+ * @param dpid the switch where the event occurred
+ */
+ public void switchAdded(Dpid dpid);
+
+ /**
+ * Notify that the switch was removed.
+ * @param dpid the switch where the event occurred.
+ */
+ public void switchRemoved(Dpid dpid);
+
+ /**
+ * Notify that a port has changed.
+ * @param dpid the switch on which the change happened.
+ * @param status the new state of the port.
+ */
+ public void portChanged(Dpid dpid, OFPortStatus status);
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/PacketListener.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/PacketListener.java
new file mode 100644
index 0000000..6bd39b8
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/PacketListener.java
@@ -0,0 +1,14 @@
+package org.onlab.onos.of.controller;
+
+/**
+ * Notifies providers about Packet in events.
+ */
+public interface PacketListener {
+
+ /**
+ * Handles the packet.
+ *
+ * @param pktCtx the packet context
+ */
+ public void handlePacket(OpenFlowPacketContext pktCtx);
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/RoleState.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/RoleState.java
new file mode 100644
index 0000000..db8efd1
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/RoleState.java
@@ -0,0 +1,25 @@
+package org.onlab.onos.of.controller;
+
+import org.projectfloodlight.openflow.protocol.OFControllerRole;
+
+/**
+ * The role of the controller as it pertains to a particular switch.
+ * Note that this definition of the role enum is different from the
+ * OF1.3 definition. It is maintained here to be backward compatible to
+ * earlier versions of the controller code. This enum is translated
+ * to the OF1.3 enum, before role messages are sent to the switch.
+ * See sendRoleRequestMessage method in OFSwitchImpl
+ */
+public enum RoleState {
+ EQUAL(OFControllerRole.ROLE_EQUAL),
+ MASTER(OFControllerRole.ROLE_MASTER),
+ SLAVE(OFControllerRole.ROLE_SLAVE);
+
+ private RoleState(OFControllerRole nxRole) {
+ nxRole.ordinal();
+ }
+
+}
+
+
+
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/AbstractOpenFlowSwitch.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/AbstractOpenFlowSwitch.java
new file mode 100644
index 0000000..d7e0186
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/AbstractOpenFlowSwitch.java
@@ -0,0 +1,346 @@
+/**
+ * Copyright 2011, Big Switch Networks, Inc.
+ * Originally created by David Erickson, Stanford University
+ *
+ * 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.onos.of.controller.driver;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.jboss.netty.channel.Channel;
+import org.onlab.onos.of.controller.Dpid;
+import org.onlab.onos.of.controller.RoleState;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFErrorMsg;
+import org.projectfloodlight.openflow.protocol.OFExperimenter;
+import org.projectfloodlight.openflow.protocol.OFFactories;
+import org.projectfloodlight.openflow.protocol.OFFactory;
+import org.projectfloodlight.openflow.protocol.OFFeaturesReply;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFPortDesc;
+import org.projectfloodlight.openflow.protocol.OFPortDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFRoleReply;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * An abstract representation of an OpenFlow switch. Can be extended by others
+ * to serve as a base for their vendor specific representation of a switch.
+ */
+public abstract class AbstractOpenFlowSwitch implements OpenFlowSwitchDriver {
+
+ private static Logger log =
+ LoggerFactory.getLogger(AbstractOpenFlowSwitch.class);
+
+ protected Channel channel;
+
+ private boolean connected;
+ protected boolean startDriverHandshakeCalled = false;
+ private final Dpid dpid;
+ private OpenFlowAgent agent;
+ private final AtomicInteger xidCounter = new AtomicInteger(0);
+
+ private OFVersion ofVersion;
+
+ protected OFPortDescStatsReply ports;
+
+ protected boolean tableFull;
+
+ private RoleHandler roleMan;
+
+ protected RoleState role;
+
+ protected OFFeaturesReply features;
+ protected OFDescStatsReply desc;
+
+ /**
+ * Given a dpid build this switch.
+ * @param dp the dpid
+ */
+ protected AbstractOpenFlowSwitch(Dpid dp) {
+ this.dpid = dp;
+ }
+
+ public AbstractOpenFlowSwitch(Dpid dpid, OFDescStatsReply desc) {
+ this.dpid = dpid;
+ this.desc = desc;
+ }
+
+ //************************
+ // Channel related
+ //************************
+
+ @Override
+ public final void disconnectSwitch() {
+ this.channel.close();
+ }
+
+ @Override
+ public final void sendMsg(OFMessage m) {
+ this.write(m);
+ }
+
+ @Override
+ public final void sendMsg(List<OFMessage> msgs) {
+ this.write(msgs);
+ }
+
+ @Override
+ public abstract void write(OFMessage msg);
+
+ @Override
+ public abstract void write(List<OFMessage> msgs);
+
+ @Override
+ public final boolean isConnected() {
+ return this.connected;
+ }
+
+ @Override
+ public final void setConnected(boolean connected) {
+ this.connected = connected;
+ };
+
+ @Override
+ public final void setChannel(Channel channel) {
+ this.channel = channel;
+ };
+
+ //************************
+ // Switch features related
+ //************************
+
+ @Override
+ public final long getId() {
+ return this.dpid.value();
+ };
+
+ @Override
+ public final String getStringId() {
+ return this.dpid.toString();
+ }
+
+ @Override
+ public final void setOFVersion(OFVersion ofV) {
+ this.ofVersion = ofV;
+ }
+
+ @Override
+ public void setTableFull(boolean full) {
+ this.tableFull = full;
+ }
+
+ @Override
+ public void setFeaturesReply(OFFeaturesReply featuresReply) {
+ this.features = featuresReply;
+ }
+
+ @Override
+ public abstract Boolean supportNxRole();
+
+ //************************
+ // Message handling
+ //************************
+ /**
+ * Handle the message coming from the dataplane.
+ *
+ * @param m the actual message
+ */
+ @Override
+ public final void handleMessage(OFMessage m) {
+ this.agent.processMessage(dpid, m);
+ }
+
+ @Override
+ public RoleState getRole() {
+ return role;
+ };
+
+ @Override
+ public final boolean connectSwitch() {
+ return this.agent.addConnectedSwitch(dpid, this);
+ }
+
+ @Override
+ public final boolean activateMasterSwitch() {
+ return this.agent.addActivatedMasterSwitch(dpid, this);
+ }
+
+ @Override
+ public final boolean activateEqualSwitch() {
+ return this.agent.addActivatedEqualSwitch(dpid, this);
+ }
+
+ @Override
+ public final void transitionToEqualSwitch() {
+ this.agent.transitionToEqualSwitch(dpid);
+ }
+
+ @Override
+ public final void transitionToMasterSwitch() {
+ this.agent.transitionToMasterSwitch(dpid);
+ }
+
+ @Override
+ public final void removeConnectedSwitch() {
+ this.agent.removeConnectedSwitch(dpid);
+ }
+
+ @Override
+ public OFFactory factory() {
+ return OFFactories.getFactory(ofVersion);
+ }
+
+ @Override
+ public void setPortDescReply(OFPortDescStatsReply portDescReply) {
+ this.ports = portDescReply;
+ }
+
+ @Override
+ public abstract void startDriverHandshake();
+
+ @Override
+ public abstract boolean isDriverHandshakeComplete();
+
+ @Override
+ public abstract void processDriverHandshakeMessage(OFMessage m);
+
+ @Override
+ public void setRole(RoleState role) {
+ try {
+ log.info("Sending role {} to switch {}", role, getStringId());
+ if (this.roleMan.sendRoleRequest(role, RoleRecvStatus.MATCHED_SET_ROLE)) {
+ this.role = role;
+ }
+ } catch (IOException e) {
+ log.error("Unable to write to switch {}.", this.dpid);
+ }
+ }
+
+ // Role Handling
+
+ @Override
+ public void handleRole(OFMessage m) throws SwitchStateException {
+ RoleReplyInfo rri = roleMan.extractOFRoleReply((OFRoleReply) m);
+ RoleRecvStatus rrs = roleMan.deliverRoleReply(rri);
+ if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) {
+ if (rri.getRole() == RoleState.MASTER) {
+ this.transitionToMasterSwitch();
+ } else if (rri.getRole() == RoleState.EQUAL ||
+ rri.getRole() == RoleState.MASTER) {
+ this.transitionToEqualSwitch();
+ }
+ }
+ }
+
+ @Override
+ public void handleNiciraRole(OFMessage m) throws SwitchStateException {
+ RoleState r = this.roleMan.extractNiciraRoleReply((OFExperimenter) m);
+ if (r == null) {
+ // The message wasn't really a Nicira role reply. We just
+ // dispatch it to the OFMessage listeners in this case.
+ this.handleMessage(m);
+ }
+
+ RoleRecvStatus rrs = this.roleMan.deliverRoleReply(
+ new RoleReplyInfo(r, null, m.getXid()));
+ if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) {
+ if (r == RoleState.MASTER) {
+ this.transitionToMasterSwitch();
+ } else if (r == RoleState.EQUAL ||
+ r == RoleState.SLAVE) {
+ this.transitionToEqualSwitch();
+ }
+ }
+ }
+
+ @Override
+ public boolean handleRoleError(OFErrorMsg error) {
+ try {
+ return RoleRecvStatus.OTHER_EXPECTATION != this.roleMan.deliverError(error);
+ } catch (SwitchStateException e) {
+ this.disconnectSwitch();
+ }
+ return true;
+ }
+
+ @Override
+ public void reassertRole() {
+ if (this.getRole() == RoleState.MASTER) {
+ this.setRole(RoleState.MASTER);
+ }
+ }
+
+ @Override
+ public final void setAgent(OpenFlowAgent ag) {
+ if (this.agent == null) {
+ this.agent = ag;
+ }
+ }
+
+ @Override
+ public final void setRoleHandler(RoleHandler roleHandler) {
+ if (this.roleMan == null) {
+ this.roleMan = roleHandler;
+ }
+ }
+
+ @Override
+ public void setSwitchDescription(OFDescStatsReply d) {
+ this.desc = d;
+ }
+
+ @Override
+ public int getNextTransactionId() {
+ return this.xidCounter.getAndIncrement();
+ }
+
+ @Override
+ public List<OFPortDesc> getPorts() {
+ return Collections.unmodifiableList(ports.getEntries());
+ }
+
+ @Override
+ public String manfacturerDescription() {
+ return this.desc.getMfrDesc();
+ }
+
+
+ @Override
+ public String datapathDescription() {
+ return this.desc.getDpDesc();
+ }
+
+
+ @Override
+ public String hardwareDescription() {
+ return this.desc.getHwDesc();
+ }
+
+ @Override
+ public String softwareDescription() {
+ return this.desc.getSwDesc();
+ }
+
+ @Override
+ public String serialNumber() {
+ return this.desc.getSerialNum();
+ }
+
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowAgent.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowAgent.java
new file mode 100644
index 0000000..0d37666
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowAgent.java
@@ -0,0 +1,77 @@
+package org.onlab.onos.of.controller.driver;
+
+import org.onlab.onos.of.controller.Dpid;
+import org.onlab.onos.of.controller.OpenFlowSwitch;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+
+/**
+ * Responsible for keeping track of the current set of switches
+ * connected to the system. As well as whether they are in Master
+ * role or not.
+ *
+ */
+public interface OpenFlowAgent {
+
+ /**
+ * Add a switch that has just connected to the system.
+ * @param dpid the dpid to add
+ * @param sw the actual switch object.
+ * @return true if added, false otherwise.
+ */
+ public boolean addConnectedSwitch(Dpid dpid, OpenFlowSwitch sw);
+
+ /**
+ * Checks if the activation for this switch is valid.
+ * @param dpid the dpid to check
+ * @return true if valid, false otherwise
+ */
+ public boolean validActivation(Dpid dpid);
+
+ /**
+ * Called when a switch is activated, with this controller's role as MASTER.
+ * @param dpid the dpid to add.
+ * @param sw the actual switch
+ * @return true if added, false otherwise.
+ */
+ public boolean addActivatedMasterSwitch(Dpid dpid, OpenFlowSwitch sw);
+
+ /**
+ * Called when a switch is activated, with this controller's role as EQUAL.
+ * @param dpid the dpid to add.
+ * @param sw the actual switch
+ * @return true if added, false otherwise.
+ */
+ public boolean addActivatedEqualSwitch(Dpid dpid, OpenFlowSwitch sw);
+
+ /**
+ * Called when this controller's role for a switch transitions from equal
+ * to master. For 1.0 switches, we internally refer to the role 'slave' as
+ * 'equal' - so this transition is equivalent to 'addActivatedMasterSwitch'.
+ * @param dpid the dpid to transistion.
+ */
+ public void transitionToMasterSwitch(Dpid dpid);
+
+ /**
+ * Called when this controller's role for a switch transitions to equal.
+ * For 1.0 switches, we internally refer to the role 'slave' as
+ * 'equal'.
+ * @param dpid the dpid to transistion.
+ */
+ public void transitionToEqualSwitch(Dpid dpid);
+
+ /**
+ * Clear all state in controller switch maps for a switch that has
+ * disconnected from the local controller. Also release control for
+ * that switch from the global repository. Notify switch listeners.
+ * @param dpid the dpid to remove.
+ */
+ public void removeConnectedSwitch(Dpid dpid);
+
+ /**
+ * Process a message coming from a switch.
+ *
+ * @param dpid the dpid the message came on.
+ * @param m the message to process
+ */
+ public void processMessage(Dpid dpid, OFMessage m);
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowSwitchDriver.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowSwitchDriver.java
new file mode 100644
index 0000000..be99973
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowSwitchDriver.java
@@ -0,0 +1,197 @@
+package org.onlab.onos.of.controller.driver;
+
+import java.util.List;
+
+import org.jboss.netty.channel.Channel;
+import org.onlab.onos.of.controller.OpenFlowSwitch;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFErrorMsg;
+import org.projectfloodlight.openflow.protocol.OFFeaturesReply;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFPortDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+
+/**
+ * Represents the driver side of an OpenFlow switch.
+ * This interface should never be exposed to consumers.
+ *
+ */
+public interface OpenFlowSwitchDriver extends OpenFlowSwitch {
+
+ /**
+ * Sets the OpenFlow agent to be used. This method
+ * can only be called once.
+ * @param agent the agent to set.
+ */
+ public void setAgent(OpenFlowAgent agent);
+
+ /**
+ * Sets the Role handler object.
+ * This method can only be called once.
+ * @param roleHandler the roleHandler class
+ */
+ public void setRoleHandler(RoleHandler roleHandler);
+
+ /**
+ * Reasserts this controllers role to the switch.
+ * Useful in cases where the switch no longer agrees
+ * that this controller has the role it claims.
+ */
+ public void reassertRole();
+
+ /**
+ * Handle the situation where the role request triggers an error.
+ * @param error the error to handle.
+ * @return true if handled, false if not.
+ */
+ public boolean handleRoleError(OFErrorMsg error);
+
+ /**
+ * If this driver know of Nicira style role messages, these should
+ * be handled here.
+ * @param m the role message to handle.
+ * @throws SwitchStateException if the message received was
+ * not a nicira role or was malformed.
+ */
+ public void handleNiciraRole(OFMessage m) throws SwitchStateException;
+
+ /**
+ * Handle OF 1.x (where x > 0) role messages.
+ * @param m the role message to handle
+ * @throws SwitchStateException if the message received was
+ * not a nicira role or was malformed.
+ */
+ public void handleRole(OFMessage m) throws SwitchStateException;
+
+ /**
+ * Starts the driver specific handshake process.
+ */
+ public void startDriverHandshake();
+
+ /**
+ * Checks whether the driver specific handshake is complete.
+ * @return true is finished, false if not.
+ */
+ public boolean isDriverHandshakeComplete();
+
+ /**
+ * Process a message during the driver specific handshake.
+ * @param m the message to process.
+ */
+ public void processDriverHandshakeMessage(OFMessage m);
+
+ /**
+ * Announce to the OpenFlow agent that this switch has connected.
+ * @return true if successful, false if duplicate switch.
+ */
+ public boolean connectSwitch();
+
+ /**
+ * Activate this MASTER switch-controller relationship in the OF agent.
+ * @return true is successful, false is switch has not
+ * connected or is unknown to the system.
+ */
+ public boolean activateMasterSwitch();
+
+ /**
+ * Activate this EQUAL switch-controller relationship in the OF agent.
+ * @return true is successful, false is switch has not
+ * connected or is unknown to the system.
+ */
+ public boolean activateEqualSwitch();
+
+ /**
+ * Transition this switch-controller relationship to an EQUAL state.
+ */
+ public void transitionToEqualSwitch();
+
+ /**
+ * Transition this switch-controller relationship to an Master state.
+ */
+ public void transitionToMasterSwitch();
+
+ /**
+ * Remove this switch from the openflow agent.
+ */
+ public void removeConnectedSwitch();
+
+ /**
+ * Sets the ports on this switch.
+ * @param portDescReply the port set and descriptions
+ */
+ public void setPortDescReply(OFPortDescStatsReply portDescReply);
+
+ /**
+ * Sets the features reply for this switch.
+ * @param featuresReply the features to set.
+ */
+ public void setFeaturesReply(OFFeaturesReply featuresReply);
+
+ /**
+ * Sets the switch description.
+ * @param desc the descriptions
+ */
+ public void setSwitchDescription(OFDescStatsReply desc);
+
+ /**
+ * Gets the next transaction id to use.
+ * @return the xid
+ */
+ public int getNextTransactionId();
+
+
+ /**
+ * Does this switch support Nicira Role messages.
+ * @return true if supports, false otherwise.
+ */
+ public Boolean supportNxRole();
+
+ /**
+ * Sets the OF version for this switch.
+ * @param ofV the version to set.
+ */
+ public void setOFVersion(OFVersion ofV);
+
+ /**
+ * Sets this switch has having a full flowtable.
+ * @param full true if full, false otherswise.
+ */
+ public void setTableFull(boolean full);
+
+ /**
+ * Sets the associated Netty channel for this switch.
+ * @param channel the Netty channel
+ */
+ public void setChannel(Channel channel);
+
+ /**
+ * Sets whether the switch is connected.
+ *
+ * @param connected whether the switch is connected
+ */
+ public void setConnected(boolean connected);
+
+ /**
+ * Checks if the switch is still connected.
+ *
+ * @return whether the switch is still connected
+ */
+ public boolean isConnected();
+
+ /**
+ * Writes the message to the output stream
+ * in a driver specific manner.
+ *
+ * @param msg the message to write
+ */
+ public void write(OFMessage msg);
+
+ /**
+ * Writes to the OFMessage list to the output stream
+ * in a driver specific manner.
+ *
+ * @param msgs the messages to be written
+ */
+ public void write(List<OFMessage> msgs);
+
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowSwitchDriverFactory.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowSwitchDriverFactory.java
new file mode 100644
index 0000000..4e84d28
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/OpenFlowSwitchDriverFactory.java
@@ -0,0 +1,24 @@
+package org.onlab.onos.of.controller.driver;
+
+import org.onlab.onos.of.controller.Dpid;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+
+/**
+ * Switch factory which returns concrete switch objects for the
+ * physical openflow switch in use.
+ *
+ */
+public interface OpenFlowSwitchDriverFactory {
+
+
+ /**
+ * Constructs the real openflow switch representation.
+ * @param dpid the dpid for this switch.
+ * @param desc its description.
+ * @param ofv the OF version in use
+ * @return the openflow switch representation.
+ */
+ public OpenFlowSwitchDriver getOFSwitchImpl(Dpid dpid,
+ OFDescStatsReply desc, OFVersion ofv);
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleHandler.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleHandler.java
new file mode 100644
index 0000000..bfded52
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleHandler.java
@@ -0,0 +1,94 @@
+package org.onlab.onos.of.controller.driver;
+
+import java.io.IOException;
+
+import org.onlab.onos.of.controller.RoleState;
+import org.projectfloodlight.openflow.protocol.OFErrorMsg;
+import org.projectfloodlight.openflow.protocol.OFExperimenter;
+import org.projectfloodlight.openflow.protocol.OFRoleReply;
+
+/**
+ * Role handling.
+ *
+ */
+public interface RoleHandler {
+
+ /**
+ * Extract the role from an OFVendor message.
+ *
+ * Extract the role from an OFVendor message if the message is a
+ * Nicira role reply. Otherwise return null.
+ *
+ * @param experimenterMsg The vendor message to parse.
+ * @return The role in the message if the message is a Nicira role
+ * reply, null otherwise.
+ * @throws SwitchStateException If the message is a Nicira role reply
+ * but the numeric role value is unknown.
+ */
+ public RoleState extractNiciraRoleReply(OFExperimenter experimenterMsg)
+ throws SwitchStateException;
+
+ /**
+ * Send a role request with the given role to the switch and update
+ * the pending request and timestamp.
+ * Sends an OFPT_ROLE_REQUEST to an OF1.3 switch, OR
+ * Sends an NX_ROLE_REQUEST to an OF1.0 switch if configured to support it
+ * in the IOFSwitch driver. If not supported, this method sends nothing
+ * and returns 'false'. The caller should take appropriate action.
+ *
+ * One other optimization we do here is that for OF1.0 switches with
+ * Nicira role message support, we force the Role.EQUAL to become
+ * Role.SLAVE, as there is no defined behavior for the Nicira role OTHER.
+ * We cannot expect it to behave like SLAVE. We don't have this problem with
+ * OF1.3 switches, because Role.EQUAL is well defined and we can simulate
+ * SLAVE behavior by using ASYNC messages.
+ *
+ * @param role
+ * @throws IOException
+ * @return false if and only if the switch does not support role-request
+ * messages, according to the switch driver; true otherwise.
+ */
+ public boolean sendRoleRequest(RoleState role, RoleRecvStatus exp)
+ throws IOException;
+
+ /**
+ * Extract the role information from an OF1.3 Role Reply Message.
+ * @param rrmsg role reply message
+ * @return RoleReplyInfo object
+ * @throws SwitchStateException
+ */
+ public RoleReplyInfo extractOFRoleReply(OFRoleReply rrmsg)
+ throws SwitchStateException;
+
+ /**
+ * Deliver a received role reply.
+ *
+ * Check if a request is pending and if the received reply matches the
+ * the expected pending reply (we check both role and xid) we set
+ * the role for the switch/channel.
+ *
+ * If a request is pending but doesn't match the reply we ignore it, and
+ * return
+ *
+ * If no request is pending we disconnect with a SwitchStateException
+ *
+ * @param rri information about role-reply in format that
+ * controller can understand.
+ * @throws SwitchStateException if no request is pending
+ */
+ public RoleRecvStatus deliverRoleReply(RoleReplyInfo rri)
+ throws SwitchStateException;
+
+
+ /**
+ * Called if we receive an error message. If the xid matches the
+ * pending request we handle it otherwise we ignore it.
+ *
+ * Note: since we only keep the last pending request we might get
+ * error messages for earlier role requests that we won't be able
+ * to handle
+ */
+ public RoleRecvStatus deliverError(OFErrorMsg error)
+ throws SwitchStateException;
+
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleRecvStatus.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleRecvStatus.java
new file mode 100644
index 0000000..0a10978
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleRecvStatus.java
@@ -0,0 +1,37 @@
+package org.onlab.onos.of.controller.driver;
+
+/**
+ * When we remove a pending role request we use this enum to indicate how we
+ * arrived at the decision. When we send a role request to the switch, we
+ * also use this enum to indicate what we expect back from the switch, so the
+ * role changer can match the reply to our expectation.
+ */
+public enum RoleRecvStatus {
+ /** The switch returned an error indicating that roles are not.
+ * supported*/
+ UNSUPPORTED,
+ /** The request timed out. */
+ NO_REPLY,
+ /** The reply was old, there is a newer request pending. */
+ OLD_REPLY,
+ /**
+ * The reply's role matched the role that this controller set in the
+ * request message - invoked either initially at startup or to reassert
+ * current role.
+ */
+ MATCHED_CURRENT_ROLE,
+ /**
+ * The reply's role matched the role that this controller set in the
+ * request message - this is the result of a callback from the
+ * global registry, followed by a role request sent to the switch.
+ */
+ MATCHED_SET_ROLE,
+ /**
+ * The reply's role was a response to the query made by this controller.
+ */
+ REPLY_QUERY,
+ /** We received a role reply message from the switch
+ * but the expectation was unclear, or there was no expectation.
+ */
+ OTHER_EXPECTATION,
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleReplyInfo.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleReplyInfo.java
new file mode 100644
index 0000000..cc3c483
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/RoleReplyInfo.java
@@ -0,0 +1,27 @@
+package org.onlab.onos.of.controller.driver;
+
+import org.onlab.onos.of.controller.RoleState;
+import org.projectfloodlight.openflow.types.U64;
+
+/**
+ * Helper class returns role reply information in the format understood
+ * by the controller.
+ */
+public class RoleReplyInfo {
+ private final RoleState role;
+ private final U64 genId;
+ private final long xid;
+
+ public RoleReplyInfo(RoleState role, U64 genId, long xid) {
+ this.role = role;
+ this.genId = genId;
+ this.xid = xid;
+ }
+ public RoleState getRole() { return role; }
+ public U64 getGenId() { return genId; }
+ public long getXid() { return xid; }
+ @Override
+ public String toString() {
+ return "[Role:" + role + " GenId:" + genId + " Xid:" + xid + "]";
+ }
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeAlreadyStarted.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeAlreadyStarted.java
new file mode 100644
index 0000000..16ed93a
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeAlreadyStarted.java
@@ -0,0 +1,14 @@
+package org.onlab.onos.of.controller.driver;
+
+/**
+ * Thrown when IOFSwitch.startDriverHandshake() is called more than once.
+ *
+ */
+public class SwitchDriverSubHandshakeAlreadyStarted extends
+ SwitchDriverSubHandshakeException {
+ private static final long serialVersionUID = -5491845708752443501L;
+
+ public SwitchDriverSubHandshakeAlreadyStarted() {
+ super();
+ }
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeCompleted.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeCompleted.java
new file mode 100644
index 0000000..1c6dac9
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeCompleted.java
@@ -0,0 +1,19 @@
+package org.onlab.onos.of.controller.driver;
+
+import org.projectfloodlight.openflow.protocol.OFMessage;
+
+
+/**
+ * Indicates that a message was passed to a switch driver's subhandshake
+ * handling code but the driver has already completed the sub-handshake.
+ *
+ */
+public class SwitchDriverSubHandshakeCompleted
+ extends SwitchDriverSubHandshakeException {
+ private static final long serialVersionUID = -8817822245846375995L;
+
+ public SwitchDriverSubHandshakeCompleted(OFMessage m) {
+ super("Sub-Handshake is already complete but received message "
+ + m.getType());
+ }
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeException.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeException.java
new file mode 100644
index 0000000..1c9a710
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeException.java
@@ -0,0 +1,26 @@
+package org.onlab.onos.of.controller.driver;
+
+/**
+ * Base class for exception thrown by switch driver sub-handshake processing.
+ *
+ */
+public class SwitchDriverSubHandshakeException extends RuntimeException {
+ private static final long serialVersionUID = -6257836781419604438L;
+
+ protected SwitchDriverSubHandshakeException() {
+ super();
+ }
+
+ protected SwitchDriverSubHandshakeException(String arg0, Throwable arg1) {
+ super(arg0, arg1);
+ }
+
+ protected SwitchDriverSubHandshakeException(String arg0) {
+ super(arg0);
+ }
+
+ protected SwitchDriverSubHandshakeException(Throwable arg0) {
+ super(arg0);
+ }
+
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeNotStarted.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeNotStarted.java
new file mode 100644
index 0000000..0f34b0e
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeNotStarted.java
@@ -0,0 +1,15 @@
+package org.onlab.onos.of.controller.driver;
+
+/**
+ * Thrown when a switch driver's sub-handshake has not been started but an
+ * operation requiring the sub-handshake has been attempted.
+ *
+ */
+public class SwitchDriverSubHandshakeNotStarted extends
+ SwitchDriverSubHandshakeException {
+ private static final long serialVersionUID = -5491845708752443501L;
+
+ public SwitchDriverSubHandshakeNotStarted() {
+ super();
+ }
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeStateException.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeStateException.java
new file mode 100644
index 0000000..09e737e
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchDriverSubHandshakeStateException.java
@@ -0,0 +1,15 @@
+package org.onlab.onos.of.controller.driver;
+
+/**
+ * Thrown when a switch driver's sub-handshake state-machine receives an
+ * unexpected OFMessage and/or is in an invald state.
+ *
+ */
+public class SwitchDriverSubHandshakeStateException extends
+ SwitchDriverSubHandshakeException {
+ private static final long serialVersionUID = -8249926069195147051L;
+
+ public SwitchDriverSubHandshakeStateException(String msg) {
+ super(msg);
+ }
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchStateException.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchStateException.java
new file mode 100644
index 0000000..55b12de
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/SwitchStateException.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright 2011, Big Switch Networks, Inc.
+ * Originally created by David Erickson, Stanford University
+ *
+ * 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.onos.of.controller.driver;
+
+/**
+ * This exception indicates an error or unexpected message during
+ * message handling. E.g., if an OFMessage is received that is illegal or
+ * unexpected given the current handshake state.
+ *
+ * We don't allow wrapping other exception in a switch state exception. We
+ * only log the SwitchStateExceptions message so the causing exceptions
+ * stack trace is generally not available.
+ *
+ */
+public class SwitchStateException extends Exception {
+
+ private static final long serialVersionUID = 9153954512470002631L;
+
+ public SwitchStateException() {
+ super();
+ }
+
+ public SwitchStateException(String arg0, Throwable arg1) {
+ super(arg0, arg1);
+ }
+
+ public SwitchStateException(String arg0) {
+ super(arg0);
+ }
+
+ public SwitchStateException(Throwable arg0) {
+ super(arg0);
+ }
+
+}
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/package-info.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/package-info.java
new file mode 100644
index 0000000..f64ba6c
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/driver/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * OpenFlow controller switch driver API.
+ */
+package org.onlab.onos.of.controller.driver;
diff --git a/openflow/api/src/main/java/org/onlab/onos/of/controller/package-info.java b/openflow/api/src/main/java/org/onlab/onos/of/controller/package-info.java
new file mode 100644
index 0000000..888bcce
--- /dev/null
+++ b/openflow/api/src/main/java/org/onlab/onos/of/controller/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * OpenFlow controller API.
+ */
+package org.onlab.onos.of.controller;
diff --git a/openflow/api/src/test/java/org/onlab/onos/of/controller/OpenflowControllerAdapter.java b/openflow/api/src/test/java/org/onlab/onos/of/controller/OpenflowControllerAdapter.java
new file mode 100644
index 0000000..09c0fbe
--- /dev/null
+++ b/openflow/api/src/test/java/org/onlab/onos/of/controller/OpenflowControllerAdapter.java
@@ -0,0 +1,66 @@
+package org.onlab.onos.of.controller;
+
+import org.projectfloodlight.openflow.protocol.OFMessage;
+
+/**
+ * Test adapter for the OpenFlow controller interface.
+ */
+public class OpenflowControllerAdapter implements OpenFlowController {
+ @Override
+ public Iterable<OpenFlowSwitch> getSwitches() {
+ return null;
+ }
+
+ @Override
+ public Iterable<OpenFlowSwitch> getMasterSwitches() {
+ return null;
+ }
+
+ @Override
+ public Iterable<OpenFlowSwitch> getEqualSwitches() {
+ return null;
+ }
+
+ @Override
+ public OpenFlowSwitch getSwitch(Dpid dpid) {
+ return null;
+ }
+
+ @Override
+ public OpenFlowSwitch getMasterSwitch(Dpid dpid) {
+ return null;
+ }
+
+ @Override
+ public OpenFlowSwitch getEqualSwitch(Dpid dpid) {
+ return null;
+ }
+
+ @Override
+ public void addListener(OpenFlowSwitchListener listener) {
+ }
+
+ @Override
+ public void removeListener(OpenFlowSwitchListener listener) {
+ }
+
+ @Override
+ public void addPacketListener(int priority, PacketListener listener) {
+ }
+
+ @Override
+ public void removePacketListener(PacketListener listener) {
+ }
+
+ @Override
+ public void write(Dpid dpid, OFMessage msg) {
+ }
+
+ @Override
+ public void processPacket(Dpid dpid, OFMessage msg) {
+ }
+
+ @Override
+ public void setRole(Dpid dpid, RoleState role) {
+ }
+}
diff --git a/openflow/ctl/pom.xml b/openflow/ctl/pom.xml
new file mode 100644
index 0000000..88bdcd9
--- /dev/null
+++ b/openflow/ctl/pom.xml
@@ -0,0 +1,122 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-of</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-of-ctl</artifactId>
+ <packaging>bundle</packaging>
+
+ <description>ONOS OpenFlow controller subsystem API</description>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <powermock.version>1.5.5</powermock.version>
+ <restlet.version>2.1.4</restlet.version>
+ <cobertura-maven-plugin.version>2.6</cobertura-maven-plugin.version>
+ <!-- Following 2 findbugs version needs to be updated in sync to match the
+ findbugs version used in findbugs-plugin -->
+ <findbugs.version>3.0.0</findbugs.version>
+ <findbugs-plugin.version>3.0.0</findbugs-plugin.version>
+ <findbugs.effort>Max</findbugs.effort>
+ <findbugs.excludeFilterFile>${project.basedir}/conf/findbugs/exclude.xml
+ </findbugs.excludeFilterFile>
+ <checkstyle-plugin.version>2.12</checkstyle-plugin.version>
+ <!-- To publish javadoc to github,
+ uncomment com.github.github site-maven-plugin and
+ see https://github.com/OPENNETWORKINGLAB/ONOS/pull/425
+ <github.global.server>github</github.global.server>
+ -->
+ <metrics.version>3.0.2</metrics.version>
+ <maven.surefire.plugin.version>2.16</maven.surefire.plugin.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-of-api</artifactId>
+ </dependency>
+ <!-- ONOS's direct dependencies -->
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.scr.annotations</artifactId>
+ <version>1.9.6</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-core</artifactId>
+ <version>1.1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.5</version>
+ </dependency>
+ <dependency>
+ <!-- findbugs suppression annotation and @GuardedBy, etc. -->
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>annotations</artifactId>
+ <version>${findbugs.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.projectfloodlight</groupId>
+ <artifactId>openflowj</artifactId>
+ <version>0.3.8-SNAPSHOT</version>
+ </dependency>
+ <!-- Floodlight's dependencies -->
+ <dependency>
+ <!-- dependency to old version of netty? -->
+ <groupId>io.netty</groupId>
+ <artifactId>netty</artifactId>
+ <version>3.9.2.Final</version>
+ </dependency>
+ <!-- Dependency for libraries used for testing -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.11</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.easymock</groupId>
+ <artifactId>easymock</artifactId>
+ <version>3.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-junit4</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-easymock</artifactId>
+ <version>${powermock.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ </plugin>
+
+ </plugins>
+ </build>
+
+</project>
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/Controller.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/Controller.java
new file mode 100644
index 0000000..061f5bf
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/Controller.java
@@ -0,0 +1,227 @@
+/**
+ * Copyright 2011, Big Switch Networks, Inc.
+ * Originally created by David Erickson, Stanford University
+ *
+ * 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.onos.of.controller.impl;
+
+import java.lang.management.ManagementFactory;
+import java.lang.management.RuntimeMXBean;
+import java.net.InetSocketAddress;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.Executors;
+
+import org.jboss.netty.bootstrap.ServerBootstrap;
+import org.jboss.netty.channel.ChannelPipelineFactory;
+import org.jboss.netty.channel.group.ChannelGroup;
+import org.jboss.netty.channel.group.DefaultChannelGroup;
+import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
+import org.onlab.onos.of.controller.Dpid;
+import org.onlab.onos.of.controller.driver.OpenFlowAgent;
+import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriver;
+import org.onlab.onos.of.drivers.impl.DriverManager;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFFactories;
+import org.projectfloodlight.openflow.protocol.OFFactory;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * The main controller class. Handles all setup and network listeners
+ * - Distributed ownership control of switch through IControllerRegistryService
+ */
+public class Controller {
+
+ protected static final Logger log = LoggerFactory.getLogger(Controller.class);
+ static final String ERROR_DATABASE =
+ "The controller could not communicate with the system database.";
+ protected static final OFFactory FACTORY13 = OFFactories.getFactory(OFVersion.OF_13);
+ protected static final OFFactory FACTORY10 = OFFactories.getFactory(OFVersion.OF_10);
+
+ // The controllerNodeIPsCache maps Controller IDs to their IP address.
+ // It's only used by handleControllerNodeIPsChanged
+ protected HashMap<String, String> controllerNodeIPsCache;
+
+ private ChannelGroup cg;
+
+ // Configuration options
+ protected int openFlowPort = 6633;
+ protected int workerThreads = 0;
+
+ // Start time of the controller
+ protected long systemStartTime;
+
+ private OpenFlowAgent agent;
+
+ private NioServerSocketChannelFactory execFactory;
+
+ // Perf. related configuration
+ protected static final int SEND_BUFFER_SIZE = 4 * 1024 * 1024;
+
+ // ***************
+ // Getters/Setters
+ // ***************
+
+ public OFFactory getOFMessageFactory10() {
+ return FACTORY10;
+ }
+
+
+ public OFFactory getOFMessageFactory13() {
+ return FACTORY13;
+ }
+
+
+
+ public Map<String, String> getControllerNodeIPs() {
+ // We return a copy of the mapping so we can guarantee that
+ // the mapping return is the same as one that will be (or was)
+ // dispatched to IHAListeners
+ HashMap<String, String> retval = new HashMap<String, String>();
+ synchronized (controllerNodeIPsCache) {
+ retval.putAll(controllerNodeIPsCache);
+ }
+ return retval;
+ }
+
+
+ public long getSystemStartTime() {
+ return (this.systemStartTime);
+ }
+
+ // **************
+ // Initialization
+ // **************
+
+ /**
+ * Tell controller that we're ready to accept switches loop.
+ */
+ public void run() {
+
+ try {
+ final ServerBootstrap bootstrap = createServerBootStrap();
+
+ bootstrap.setOption("reuseAddr", true);
+ bootstrap.setOption("child.keepAlive", true);
+ bootstrap.setOption("child.tcpNoDelay", true);
+ bootstrap.setOption("child.sendBufferSize", Controller.SEND_BUFFER_SIZE);
+
+ ChannelPipelineFactory pfact =
+ new OpenflowPipelineFactory(this, null);
+ bootstrap.setPipelineFactory(pfact);
+ InetSocketAddress sa = new InetSocketAddress(openFlowPort);
+ cg = new DefaultChannelGroup();
+ cg.add(bootstrap.bind(sa));
+
+ log.info("Listening for switch connections on {}", sa);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
+ }
+
+ private ServerBootstrap createServerBootStrap() {
+
+ if (workerThreads == 0) {
+ execFactory = new NioServerSocketChannelFactory(
+ Executors.newCachedThreadPool(),
+ Executors.newCachedThreadPool());
+ return new ServerBootstrap(execFactory);
+ } else {
+ execFactory = new NioServerSocketChannelFactory(
+ Executors.newCachedThreadPool(),
+ Executors.newCachedThreadPool(), workerThreads);
+ return new ServerBootstrap(execFactory);
+ }
+ }
+
+ public void setConfigParams(Map<String, String> configParams) {
+ String ofPort = configParams.get("openflowport");
+ if (ofPort != null) {
+ this.openFlowPort = Integer.parseInt(ofPort);
+ }
+ log.debug("OpenFlow port set to {}", this.openFlowPort);
+ String threads = configParams.get("workerthreads");
+ if (threads != null) {
+ this.workerThreads = Integer.parseInt(threads);
+ }
+ log.debug("Number of worker threads set to {}", this.workerThreads);
+ }
+
+
+ /**
+ * Initialize internal data structures.
+ */
+ public void init(Map<String, String> configParams) {
+ // These data structures are initialized here because other
+ // module's startUp() might be called before ours
+ this.controllerNodeIPsCache = new HashMap<String, String>();
+
+ setConfigParams(configParams);
+ this.systemStartTime = System.currentTimeMillis();
+
+
+ }
+
+ // **************
+ // Utility methods
+ // **************
+
+ public Map<String, Long> getMemory() {
+ Map<String, Long> m = new HashMap<String, Long>();
+ Runtime runtime = Runtime.getRuntime();
+ m.put("total", runtime.totalMemory());
+ m.put("free", runtime.freeMemory());
+ return m;
+ }
+
+
+ public Long getUptime() {
+ RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean();
+ return rb.getUptime();
+ }
+
+ /**
+ * Forward to the driver-manager to get an IOFSwitch instance.
+ * @param desc
+ * @return switch instance
+ */
+ protected OpenFlowSwitchDriver getOFSwitchInstance(long dpid,
+ OFDescStatsReply desc, OFVersion ofv) {
+ OpenFlowSwitchDriver sw = DriverManager.getSwitch(new Dpid(dpid),
+ desc, ofv);
+ sw.setAgent(agent);
+ sw.setRoleHandler(new RoleManager(sw));
+ return sw;
+ }
+
+ public void start(OpenFlowAgent ag) {
+ log.info("Starting OpenFlow IO");
+ this.agent = ag;
+ this.init(new HashMap<String, String>());
+ this.run();
+ }
+
+
+ public void stop() {
+ log.info("Stopping OpenFlow IO");
+ execFactory.shutdown();
+ cg.close();
+ }
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/HandshakeTimeoutException.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/HandshakeTimeoutException.java
new file mode 100644
index 0000000..f3eac5f
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/HandshakeTimeoutException.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright 2011, Big Switch Networks, Inc.
+ * Originally created by David Erickson, Stanford University
+ *
+ * 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.onos.of.controller.impl;
+
+/**
+ * Exception is thrown when the handshake fails to complete.
+ * before a specified time
+ *
+ */
+public class HandshakeTimeoutException extends Exception {
+
+ private static final long serialVersionUID = 6859880268940337312L;
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/HandshakeTimeoutHandler.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/HandshakeTimeoutHandler.java
new file mode 100644
index 0000000..de7853a
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/HandshakeTimeoutHandler.java
@@ -0,0 +1,94 @@
+/**
+* Copyright 2011, Big Switch Networks, Inc.
+* Originally created by David Erickson, Stanford University
+*
+* 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.onos.of.controller.impl;
+
+import java.util.concurrent.TimeUnit;
+
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.ChannelStateEvent;
+import org.jboss.netty.channel.Channels;
+import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
+import org.jboss.netty.util.Timeout;
+import org.jboss.netty.util.Timer;
+import org.jboss.netty.util.TimerTask;
+
+/**
+ * Trigger a timeout if a switch fails to complete handshake soon enough.
+ */
+public class HandshakeTimeoutHandler
+ extends SimpleChannelUpstreamHandler {
+ static final HandshakeTimeoutException EXCEPTION =
+ new HandshakeTimeoutException();
+
+ final OFChannelHandler channelHandler;
+ final Timer timer;
+ final long timeoutNanos;
+ volatile Timeout timeout;
+
+ public HandshakeTimeoutHandler(OFChannelHandler channelHandler,
+ Timer timer,
+ long timeoutSeconds) {
+ super();
+ this.channelHandler = channelHandler;
+ this.timer = timer;
+ this.timeoutNanos = TimeUnit.SECONDS.toNanos(timeoutSeconds);
+
+ }
+
+ @Override
+ public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e)
+ throws Exception {
+ if (timeoutNanos > 0) {
+ timeout = timer.newTimeout(new HandshakeTimeoutTask(ctx),
+ timeoutNanos, TimeUnit.NANOSECONDS);
+ }
+ ctx.sendUpstream(e);
+ }
+
+ @Override
+ public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e)
+ throws Exception {
+ if (timeout != null) {
+ timeout.cancel();
+ timeout = null;
+ }
+ }
+
+ private final class HandshakeTimeoutTask implements TimerTask {
+
+ private final ChannelHandlerContext ctx;
+
+ HandshakeTimeoutTask(ChannelHandlerContext ctx) {
+ this.ctx = ctx;
+ }
+
+ @Override
+ public void run(Timeout t) throws Exception {
+ if (t.isCancelled()) {
+ return;
+ }
+
+ if (!ctx.getChannel().isOpen()) {
+ return;
+ }
+ if (!channelHandler.isHandshakeComplete()) {
+ Channels.fireExceptionCaught(ctx, EXCEPTION);
+ }
+ }
+ }
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFChannelHandler.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFChannelHandler.java
new file mode 100644
index 0000000..adcb990
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFChannelHandler.java
@@ -0,0 +1,1225 @@
+//CHECKSTYLE:OFF
+package org.onlab.onos.of.controller.impl;
+
+import java.io.IOException;
+import java.nio.channels.ClosedChannelException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.RejectedExecutionException;
+
+import org.jboss.netty.channel.Channel;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.channel.ChannelStateEvent;
+import org.jboss.netty.channel.ExceptionEvent;
+import org.jboss.netty.channel.MessageEvent;
+import org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler;
+import org.jboss.netty.handler.timeout.IdleStateEvent;
+import org.jboss.netty.handler.timeout.ReadTimeoutException;
+import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriver;
+import org.onlab.onos.of.controller.driver.SwitchStateException;
+import org.projectfloodlight.openflow.exceptions.OFParseError;
+import org.projectfloodlight.openflow.protocol.OFAsyncGetReply;
+import org.projectfloodlight.openflow.protocol.OFBadRequestCode;
+import org.projectfloodlight.openflow.protocol.OFBarrierReply;
+import org.projectfloodlight.openflow.protocol.OFBarrierRequest;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFDescStatsRequest;
+import org.projectfloodlight.openflow.protocol.OFEchoReply;
+import org.projectfloodlight.openflow.protocol.OFEchoRequest;
+import org.projectfloodlight.openflow.protocol.OFErrorMsg;
+import org.projectfloodlight.openflow.protocol.OFErrorType;
+import org.projectfloodlight.openflow.protocol.OFExperimenter;
+import org.projectfloodlight.openflow.protocol.OFFactory;
+import org.projectfloodlight.openflow.protocol.OFFeaturesReply;
+import org.projectfloodlight.openflow.protocol.OFFlowModFailedCode;
+import org.projectfloodlight.openflow.protocol.OFFlowRemoved;
+import org.projectfloodlight.openflow.protocol.OFGetConfigReply;
+import org.projectfloodlight.openflow.protocol.OFGetConfigRequest;
+import org.projectfloodlight.openflow.protocol.OFHello;
+import org.projectfloodlight.openflow.protocol.OFHelloElem;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFPacketIn;
+import org.projectfloodlight.openflow.protocol.OFPortDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFPortDescStatsRequest;
+import org.projectfloodlight.openflow.protocol.OFPortStatus;
+import org.projectfloodlight.openflow.protocol.OFQueueGetConfigReply;
+import org.projectfloodlight.openflow.protocol.OFRoleReply;
+import org.projectfloodlight.openflow.protocol.OFSetConfig;
+import org.projectfloodlight.openflow.protocol.OFStatsReply;
+import org.projectfloodlight.openflow.protocol.OFStatsReplyFlags;
+import org.projectfloodlight.openflow.protocol.OFStatsType;
+import org.projectfloodlight.openflow.protocol.OFType;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.projectfloodlight.openflow.protocol.errormsg.OFBadRequestErrorMsg;
+import org.projectfloodlight.openflow.protocol.errormsg.OFFlowModFailedErrorMsg;
+import org.projectfloodlight.openflow.types.U32;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Channel handler deals with the switch connection and dispatches
+ * switch messages to the appropriate locations.
+ */
+class OFChannelHandler extends IdleStateAwareChannelHandler {
+ private static final Logger log = LoggerFactory.getLogger(OFChannelHandler.class);
+ private final Controller controller;
+ private OpenFlowSwitchDriver sw;
+ private long thisdpid; // channelHandler cached value of connected switch id
+ private Channel channel;
+ // State needs to be volatile because the HandshakeTimeoutHandler
+ // needs to check if the handshake is complete
+ private volatile ChannelState state;
+
+ // When a switch with a duplicate dpid is found (i.e we already have a
+ // connected switch with the same dpid), the new switch is immediately
+ // disconnected. At that point netty callsback channelDisconnected() which
+ // proceeds to cleaup switch state - we need to ensure that it does not cleanup
+ // switch state for the older (still connected) switch
+ private volatile Boolean duplicateDpidFound;
+
+ // Temporary storage for switch-features and port-description
+ private OFFeaturesReply featuresReply;
+ private OFPortDescStatsReply portDescReply;
+ // a concurrent ArrayList to temporarily store port status messages
+ // before we are ready to deal with them
+ private final CopyOnWriteArrayList<OFPortStatus> pendingPortStatusMsg;
+
+ //Indicates the openflow version used by this switch
+ protected OFVersion ofVersion;
+ protected OFFactory factory13;
+ protected OFFactory factory10;
+
+ /** transaction Ids to use during handshake. Since only one thread
+ * calls into an OFChannelHandler instance, we don't need atomic.
+ * We will count down
+ */
+ private int handshakeTransactionIds = -1;
+
+ /**
+ * Create a new unconnected OFChannelHandler.
+ * @param controller
+ */
+ OFChannelHandler(Controller controller) {
+ this.controller = controller;
+ this.state = ChannelState.INIT;
+ this.pendingPortStatusMsg = new CopyOnWriteArrayList<OFPortStatus>();
+ factory13 = controller.getOFMessageFactory13();
+ factory10 = controller.getOFMessageFactory10();
+ duplicateDpidFound = Boolean.FALSE;
+ }
+
+
+
+ // XXX S consider if necessary
+ public void disconnectSwitch() {
+ sw.disconnectSwitch();
+ }
+
+
+
+ //*************************
+ // Channel State Machine
+ //*************************
+
+ /**
+ * The state machine for handling the switch/channel state. All state
+ * transitions should happen from within the state machine (and not from other
+ * parts of the code)
+ */
+ enum ChannelState {
+ /**
+ * Initial state before channel is connected.
+ */
+ INIT(false) {
+ @Override
+ void processOFMessage(OFChannelHandler h, OFMessage m)
+ throws IOException, SwitchStateException {
+ illegalMessageReceived(h, m);
+ }
+
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m)
+ throws IOException {
+ // need to implement since its abstract but it will never
+ // be called
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException {
+ unhandledMessageReceived(h, m);
+ }
+ },
+
+ /**
+ * We send a OF 1.3 HELLO to the switch and wait for a Hello from the switch.
+ * Once we receive the reply, we decide on OF 1.3 or 1.0 switch - no other
+ * protocol version is accepted.
+ * We send an OFFeaturesRequest depending on the protocol version selected
+ * Next state is WAIT_FEATURES_REPLY
+ */
+ WAIT_HELLO(false) {
+ @Override
+ void processOFHello(OFChannelHandler h, OFHello m)
+ throws IOException {
+ // TODO We could check for the optional bitmap, but for now
+ // we are just checking the version number.
+ if (m.getVersion() == OFVersion.OF_13) {
+ log.info("Received {} Hello from {}", m.getVersion(),
+ h.channel.getRemoteAddress());
+ h.ofVersion = OFVersion.OF_13;
+ } else if (m.getVersion() == OFVersion.OF_10) {
+ log.info("Received {} Hello from {} - switching to OF "
+ + "version 1.0", m.getVersion(),
+ h.channel.getRemoteAddress());
+ h.ofVersion = OFVersion.OF_10;
+ } else {
+ log.error("Received Hello of version {} from switch at {}. "
+ + "This controller works with OF1.0 and OF1.3 "
+ + "switches. Disconnecting switch ...",
+ m.getVersion(), h.channel.getRemoteAddress());
+ h.channel.disconnect();
+ return;
+ }
+ h.sendHandshakeFeaturesRequestMessage();
+ h.setState(WAIT_FEATURES_REPLY);
+ }
+ @Override
+ void processOFFeaturesReply(OFChannelHandler h, OFFeaturesReply m)
+ throws IOException, SwitchStateException {
+ illegalMessageReceived(h, m);
+ }
+ @Override
+ void processOFStatisticsReply(OFChannelHandler h,
+ OFStatsReply m)
+ throws IOException, SwitchStateException {
+ illegalMessageReceived(h, m);
+ }
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m) {
+ logErrorDisconnect(h, m);
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException {
+ unhandledMessageReceived(h, m);
+ }
+ },
+
+
+ /**
+ * We are waiting for a features reply message. Once we receive it, the
+ * behavior depends on whether this is a 1.0 or 1.3 switch. For 1.0,
+ * we send a SetConfig request, barrier, and GetConfig request and the
+ * next state is WAIT_CONFIG_REPLY. For 1.3, we send a Port description
+ * request and the next state is WAIT_PORT_DESC_REPLY.
+ */
+ WAIT_FEATURES_REPLY(false) {
+ @Override
+ void processOFFeaturesReply(OFChannelHandler h, OFFeaturesReply m)
+ throws IOException {
+ h.thisdpid = m.getDatapathId().getLong();
+ log.info("Received features reply for switch at {} with dpid {}",
+ h.getSwitchInfoString(), h.thisdpid);
+
+ h.featuresReply = m; //temp store
+ if (h.ofVersion == OFVersion.OF_10) {
+ h.sendHandshakeSetConfig();
+ h.setState(WAIT_CONFIG_REPLY);
+ } else {
+ //version is 1.3, must get switchport information
+ h.sendHandshakeOFPortDescRequest();
+ h.setState(WAIT_PORT_DESC_REPLY);
+ }
+ }
+ @Override
+ void processOFStatisticsReply(OFChannelHandler h,
+ OFStatsReply m)
+ throws IOException, SwitchStateException {
+ illegalMessageReceived(h, m);
+ }
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m) {
+ logErrorDisconnect(h, m);
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException {
+ unhandledMessageReceived(h, m);
+ }
+ },
+
+ /**
+ * We are waiting for a description of the 1.3 switch ports.
+ * Once received, we send a SetConfig request
+ * Next State is WAIT_CONFIG_REPLY
+ */
+ WAIT_PORT_DESC_REPLY(false) {
+
+ @Override
+ void processOFStatisticsReply(OFChannelHandler h, OFStatsReply m)
+ throws SwitchStateException {
+ // Read port description
+ if (m.getStatsType() != OFStatsType.PORT_DESC) {
+ log.warn("Expecting port description stats but received stats "
+ + "type {} from {}. Ignoring ...", m.getStatsType(),
+ h.channel.getRemoteAddress());
+ return;
+ }
+ if (m.getFlags().contains(OFStatsReplyFlags.REPLY_MORE)) {
+ log.warn("Stats reply indicates more stats from sw {} for "
+ + "port description - not currently handled",
+ h.getSwitchInfoString());
+ }
+ h.portDescReply = (OFPortDescStatsReply) m; // temp store
+ log.info("Received port desc reply for switch at {}",
+ h.getSwitchInfoString());
+ try {
+ h.sendHandshakeSetConfig();
+ } catch (IOException e) {
+ log.error("Unable to send setConfig after PortDescReply. "
+ + "Error: {}", e.getMessage());
+ }
+ h.setState(WAIT_CONFIG_REPLY);
+ }
+
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m)
+ throws IOException, SwitchStateException {
+ logErrorDisconnect(h, m);
+
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException, SwitchStateException {
+ unhandledMessageReceived(h, m);
+
+ }
+ },
+
+ /**
+ * We are waiting for a config reply message. Once we receive it
+ * we send a DescriptionStatsRequest to the switch.
+ * Next state: WAIT_DESCRIPTION_STAT_REPLY
+ */
+ WAIT_CONFIG_REPLY(false) {
+ @Override
+ void processOFGetConfigReply(OFChannelHandler h, OFGetConfigReply m)
+ throws IOException {
+ if (m.getMissSendLen() == 0xffff) {
+ log.trace("Config Reply from switch {} confirms "
+ + "miss length set to 0xffff",
+ h.getSwitchInfoString());
+ } else {
+ // FIXME: we can't really deal with switches that don't send
+ // full packets. Shouldn't we drop the connection here?
+ log.warn("Config Reply from switch {} has"
+ + "miss length set to {}",
+ h.getSwitchInfoString(),
+ m.getMissSendLen());
+ }
+ h.sendHandshakeDescriptionStatsRequest();
+ h.setState(WAIT_DESCRIPTION_STAT_REPLY);
+ }
+
+ @Override
+ void processOFBarrierReply(OFChannelHandler h, OFBarrierReply m) {
+ // do nothing;
+ }
+
+ @Override
+ void processOFFeaturesReply(OFChannelHandler h, OFFeaturesReply m)
+ throws IOException, SwitchStateException {
+ illegalMessageReceived(h, m);
+ }
+ @Override
+ void processOFStatisticsReply(OFChannelHandler h,
+ OFStatsReply m)
+ throws IOException, SwitchStateException {
+ log.error("Received multipart(stats) message sub-type {}",
+ m.getStatsType());
+ illegalMessageReceived(h, m);
+ }
+
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m) {
+ logErrorDisconnect(h, m);
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException {
+ h.pendingPortStatusMsg.add(m);
+ }
+ },
+
+
+ /**
+ * We are waiting for a OFDescriptionStat message from the switch.
+ * Once we receive any stat message we try to parse it. If it's not
+ * a description stats message we disconnect. If its the expected
+ * description stats message, we:
+ * - use the switch driver to bind the switch and get an IOFSwitch instance
+ * - setup the IOFSwitch instance
+ * - add switch controller and send the initial role
+ * request to the switch.
+ * Next state: WAIT_INITIAL_ROLE
+ * In the typical case, where switches support role request messages
+ * the next state is where we expect the role reply message.
+ * In the special case that where the switch does not support any kind
+ * of role request messages, we don't send a role message, but we do
+ * request mastership from the registry service. This controller
+ * should become master once we hear back from the registry service.
+ * All following states will have a h.sw instance!
+ */
+ WAIT_DESCRIPTION_STAT_REPLY(false) {
+ @Override
+ void processOFStatisticsReply(OFChannelHandler h, OFStatsReply m)
+ throws SwitchStateException {
+ // Read description, if it has been updated
+ if (m.getStatsType() != OFStatsType.DESC) {
+ log.warn("Expecting Description stats but received stats "
+ + "type {} from {}. Ignoring ...", m.getStatsType(),
+ h.channel.getRemoteAddress());
+ return;
+ }
+ log.info("Received switch description reply from switch at {}",
+ h.channel.getRemoteAddress());
+ OFDescStatsReply drep = (OFDescStatsReply) m;
+ // Here is where we differentiate between different kinds of switches
+ h.sw = h.controller.getOFSwitchInstance(h.thisdpid, drep, h.ofVersion);
+
+ h.sw.setOFVersion(h.ofVersion);
+ h.sw.setFeaturesReply(h.featuresReply);
+ h.sw.setPortDescReply(h.portDescReply);
+ h.sw.setConnected(true);
+ h.sw.setChannel(h.channel);
+ boolean success = h.sw.connectSwitch();
+
+ if (!success) {
+ disconnectDuplicate(h);
+ return;
+ }
+ // set switch information
+
+
+
+ log.info("Switch {} bound to class {}, description {}",
+ new Object[] {h.sw, h.sw.getClass(), drep });
+ //Put switch in EQUAL mode until we hear back from the global registry
+ //log.debug("Setting new switch {} to EQUAL and sending Role request",
+ // h.sw.getStringId());
+ //h.sw.activateEqualSwitch();
+ //h.setSwitchRole(RoleState.EQUAL);
+
+ h.sw.startDriverHandshake();
+ h.setState(WAIT_SWITCH_DRIVER_SUB_HANDSHAKE);
+
+ }
+
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m) {
+ logErrorDisconnect(h, m);
+ }
+
+ @Override
+ void processOFFeaturesReply(OFChannelHandler h, OFFeaturesReply m)
+ throws IOException, SwitchStateException {
+ illegalMessageReceived(h, m);
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException {
+ h.pendingPortStatusMsg.add(m);
+ }
+ },
+
+
+ /**
+ * We are waiting for the respective switch driver to complete its
+ * configuration. Notice that we do not consider this to be part of the main
+ * switch-controller handshake. But we do consider it as a step that comes
+ * before we declare the switch as available to the controller.
+ * Next State: depends on the role of this controller for this switch - either
+ * MASTER or EQUAL.
+ */
+ WAIT_SWITCH_DRIVER_SUB_HANDSHAKE(true) {
+
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m)
+ throws IOException {
+ // will never be called. We override processOFMessage
+ }
+
+ @Override
+ void processOFMessage(OFChannelHandler h, OFMessage m)
+ throws IOException, SwitchStateException {
+ if (m.getType() == OFType.ECHO_REQUEST) {
+ processOFEchoRequest(h, (OFEchoRequest) m);
+ } else if (m.getType() == OFType.ROLE_REPLY) {
+ h.sw.handleRole(m);
+ } else if (m.getType() == OFType.ERROR) {
+ if (!h.sw.handleRoleError((OFErrorMsg)m)) {
+ h.sw.processDriverHandshakeMessage(m);
+ if (h.sw.isDriverHandshakeComplete()) {
+ h.setState(ACTIVE);
+ }
+ }
+ } else {
+ if (m.getType() == OFType.EXPERIMENTER &&
+ ((OFExperimenter) m).getExperimenter() ==
+ RoleManager.NICIRA_EXPERIMENTER) {
+ h.sw.handleNiciraRole(m);
+ } else {
+ h.sw.processDriverHandshakeMessage(m);
+ if (h.sw.isDriverHandshakeComplete()) {
+ h.setState(ACTIVE);
+ }
+ }
+ }
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException, SwitchStateException {
+ h.pendingPortStatusMsg.add(m);
+ }
+ },
+
+
+ /**
+ * This controller is in MASTER role for this switch. We enter this state
+ * after requesting and winning control from the global registry.
+ * The main handshake as well as the switch-driver sub-handshake
+ * is complete at this point.
+ * // XXX S reconsider below
+ * In the (near) future we may deterministically assign controllers to
+ * switches at startup.
+ * We only leave this state if the switch disconnects or
+ * if we send a role request for SLAVE /and/ receive the role reply for
+ * SLAVE.
+ */
+ ACTIVE(true) {
+ @Override
+ void processOFError(OFChannelHandler h, OFErrorMsg m)
+ throws IOException, SwitchStateException {
+ // if we get here, then the error message is for something else
+ if (m.getErrType() == OFErrorType.BAD_REQUEST &&
+ ((OFBadRequestErrorMsg) m).getCode() ==
+ OFBadRequestCode.EPERM) {
+ // We are the master controller and the switch returned
+ // a permission error. This is a likely indicator that
+ // the switch thinks we are slave. Reassert our
+ // role
+ // FIXME: this could be really bad during role transitions
+ // if two controllers are master (even if its only for
+ // a brief period). We might need to see if these errors
+ // persist before we reassert
+ log.warn("Received permission error from switch {} while" +
+ "being master. Reasserting master role.",
+ h.getSwitchInfoString());
+ h.sw.reassertRole();
+ } else if (m.getErrType() == OFErrorType.FLOW_MOD_FAILED &&
+ ((OFFlowModFailedErrorMsg) m).getCode() ==
+ OFFlowModFailedCode.ALL_TABLES_FULL) {
+ h.sw.setTableFull(true);
+ } else {
+ logError(h, m);
+ }
+ h.dispatchMessage(m);
+ }
+
+ @Override
+ void processOFStatisticsReply(OFChannelHandler h,
+ OFStatsReply m) {
+ h.dispatchMessage(m);
+ }
+
+ @Override
+ void processOFExperimenter(OFChannelHandler h, OFExperimenter m)
+ throws SwitchStateException {
+ h.sw.handleNiciraRole(m);
+ }
+
+ @Override
+ void processOFRoleReply(OFChannelHandler h, OFRoleReply m)
+ throws SwitchStateException {
+ h.sw.handleRole(m);
+ }
+
+ @Override
+ void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws SwitchStateException {
+ handlePortStatusMessage(h, m, true);
+ h.dispatchMessage(m);
+ }
+
+ @Override
+ void processOFPacketIn(OFChannelHandler h, OFPacketIn m) {
+ h.dispatchMessage(m);
+ }
+
+ @Override
+ void processOFFlowRemoved(OFChannelHandler h,
+ OFFlowRemoved m) {
+ h.dispatchMessage(m);
+ }
+
+ @Override
+ void processOFBarrierReply(OFChannelHandler h, OFBarrierReply m) {
+ h.dispatchMessage(m);
+ }
+
+ };
+
+ private final boolean handshakeComplete;
+ ChannelState(boolean handshakeComplete) {
+ this.handshakeComplete = handshakeComplete;
+ }
+
+ /**
+ * Is this a state in which the handshake has completed?
+ * @return true if the handshake is complete
+ */
+ public boolean isHandshakeComplete() {
+ return handshakeComplete;
+ }
+
+ /**
+ * Get a string specifying the switch connection, state, and
+ * message received. To be used as message for SwitchStateException
+ * or log messages
+ * @param h The channel handler (to get switch information_
+ * @param m The OFMessage that has just been received
+ * @param details A string giving more details about the exact nature
+ * of the problem.
+ * @return display string
+ */
+ // needs to be protected because enum members are actually subclasses
+ protected String getSwitchStateMessage(OFChannelHandler h,
+ OFMessage m,
+ String details) {
+ return String.format("Switch: [%s], State: [%s], received: [%s]"
+ + ", details: %s",
+ h.getSwitchInfoString(),
+ this.toString(),
+ m.getType().toString(),
+ details);
+ }
+
+ /**
+ * We have an OFMessage we didn't expect given the current state and
+ * we want to treat this as an error.
+ * We currently throw an exception that will terminate the connection
+ * However, we could be more forgiving
+ * @param h the channel handler that received the message
+ * @param m the message
+ * @throws SwitchStateException
+ * @throws SwitchStateExeption we always through the execption
+ */
+ // needs to be protected because enum members are acutally subclasses
+ protected void illegalMessageReceived(OFChannelHandler h, OFMessage m)
+ throws SwitchStateException {
+ String msg = getSwitchStateMessage(h, m,
+ "Switch should never send this message in the current state");
+ throw new SwitchStateException(msg);
+
+ }
+
+ /**
+ * We have an OFMessage we didn't expect given the current state and
+ * we want to ignore the message.
+ * @param h the channel handler the received the message
+ * @param m the message
+ */
+ protected void unhandledMessageReceived(OFChannelHandler h,
+ OFMessage m) {
+ if (log.isDebugEnabled()) {
+ String msg = getSwitchStateMessage(h, m,
+ "Ignoring unexpected message");
+ log.debug(msg);
+ }
+ }
+
+ /**
+ * Log an OpenFlow error message from a switch.
+ * @param h The switch that sent the error
+ * @param error The error message
+ */
+ protected void logError(OFChannelHandler h, OFErrorMsg error) {
+ log.error("{} from switch {} in state {}",
+ new Object[] {
+ error,
+ h.getSwitchInfoString(),
+ this.toString()});
+ }
+
+ /**
+ * Log an OpenFlow error message from a switch and disconnect the
+ * channel.
+ *
+ * @param h the IO channel for this switch.
+ * @param error The error message
+ */
+ protected void logErrorDisconnect(OFChannelHandler h, OFErrorMsg error) {
+ logError(h, error);
+ h.channel.disconnect();
+ }
+
+ /**
+ * log an error message for a duplicate dpid and disconnect this channel.
+ * @param h the IO channel for this switch.
+ */
+ protected void disconnectDuplicate(OFChannelHandler h) {
+ log.error("Duplicated dpid or incompleted cleanup - "
+ + "disconnecting channel {}", h.getSwitchInfoString());
+ h.duplicateDpidFound = Boolean.TRUE;
+ h.channel.disconnect();
+ }
+
+
+
+ /**
+ * Handles all pending port status messages before a switch is declared
+ * activated in MASTER or EQUAL role. Note that since this handling
+ * precedes the activation (and therefore notification to IOFSwitchListerners)
+ * the changes to ports will already be visible once the switch is
+ * activated. As a result, no notifications are sent out for these
+ * pending portStatus messages.
+ * @param h
+ * @throws SwitchStateException
+ */
+ protected void handlePendingPortStatusMessages(OFChannelHandler h) {
+ try {
+ handlePendingPortStatusMessages(h, 0);
+ } catch (SwitchStateException e) {
+ log.error(e.getMessage());
+ }
+ }
+
+ private void handlePendingPortStatusMessages(OFChannelHandler h, int index)
+ throws SwitchStateException {
+ if (h.sw == null) {
+ String msg = "State machine error: switch is null. Should never " +
+ "happen";
+ throw new SwitchStateException(msg);
+ }
+ ArrayList<OFPortStatus> temp = new ArrayList<OFPortStatus>();
+ for (OFPortStatus ps: h.pendingPortStatusMsg) {
+ temp.add(ps);
+ handlePortStatusMessage(h, ps, false);
+ }
+ temp.clear();
+ // expensive but ok - we don't expect too many port-status messages
+ // note that we cannot use clear(), because of the reasons below
+ h.pendingPortStatusMsg.removeAll(temp);
+ // the iterator above takes a snapshot of the list - so while we were
+ // dealing with the pending port-status messages, we could have received
+ // newer ones. Handle them recursively, but break the recursion after
+ // five steps to avoid an attack.
+ if (!h.pendingPortStatusMsg.isEmpty() && ++index < 5) {
+ handlePendingPortStatusMessages(h, index);
+ }
+ }
+
+ /**
+ * Handle a port status message.
+ *
+ * Handle a port status message by updating the port maps in the
+ * IOFSwitch instance and notifying Controller about the change so
+ * it can dispatch a switch update.
+ *
+ * @param h The OFChannelHhandler that received the message
+ * @param m The PortStatus message we received
+ * @param doNotify if true switch port changed events will be
+ * dispatched
+ * @throws SwitchStateException
+ *
+ */
+ protected void handlePortStatusMessage(OFChannelHandler h, OFPortStatus m,
+ boolean doNotify) throws SwitchStateException {
+ if (h.sw == null) {
+ String msg = getSwitchStateMessage(h, m,
+ "State machine error: switch is null. Should never " +
+ "happen");
+ throw new SwitchStateException(msg);
+ }
+
+ h.sw.handleMessage(m);
+ }
+
+
+ /**
+ * Process an OF message received on the channel and
+ * update state accordingly.
+ *
+ * The main "event" of the state machine. Process the received message,
+ * send follow up message if required and update state if required.
+ *
+ * Switches on the message type and calls more specific event handlers
+ * for each individual OF message type. If we receive a message that
+ * is supposed to be sent from a controller to a switch we throw
+ * a SwitchStateExeption.
+ *
+ * The more specific handlers can also throw SwitchStateExceptions
+ *
+ * @param h The OFChannelHandler that received the message
+ * @param m The message we received.
+ * @throws SwitchStateException
+ * @throws IOException
+ */
+ void processOFMessage(OFChannelHandler h, OFMessage m)
+ throws IOException, SwitchStateException {
+ switch(m.getType()) {
+ case HELLO:
+ processOFHello(h, (OFHello) m);
+ break;
+ case BARRIER_REPLY:
+ processOFBarrierReply(h, (OFBarrierReply) m);
+ break;
+ case ECHO_REPLY:
+ processOFEchoReply(h, (OFEchoReply) m);
+ break;
+ case ECHO_REQUEST:
+ processOFEchoRequest(h, (OFEchoRequest) m);
+ break;
+ case ERROR:
+ processOFError(h, (OFErrorMsg) m);
+ break;
+ case FEATURES_REPLY:
+ processOFFeaturesReply(h, (OFFeaturesReply) m);
+ break;
+ case FLOW_REMOVED:
+ processOFFlowRemoved(h, (OFFlowRemoved) m);
+ break;
+ case GET_CONFIG_REPLY:
+ processOFGetConfigReply(h, (OFGetConfigReply) m);
+ break;
+ case PACKET_IN:
+ processOFPacketIn(h, (OFPacketIn) m);
+ break;
+ case PORT_STATUS:
+ processOFPortStatus(h, (OFPortStatus) m);
+ break;
+ case QUEUE_GET_CONFIG_REPLY:
+ processOFQueueGetConfigReply(h, (OFQueueGetConfigReply) m);
+ break;
+ case STATS_REPLY: // multipart_reply in 1.3
+ processOFStatisticsReply(h, (OFStatsReply) m);
+ break;
+ case EXPERIMENTER:
+ processOFExperimenter(h, (OFExperimenter) m);
+ break;
+ case ROLE_REPLY:
+ processOFRoleReply(h, (OFRoleReply) m);
+ break;
+ case GET_ASYNC_REPLY:
+ processOFGetAsyncReply(h, (OFAsyncGetReply) m);
+ break;
+
+ // The following messages are sent to switches. The controller
+ // should never receive them
+ case SET_CONFIG:
+ case GET_CONFIG_REQUEST:
+ case PACKET_OUT:
+ case PORT_MOD:
+ case QUEUE_GET_CONFIG_REQUEST:
+ case BARRIER_REQUEST:
+ case STATS_REQUEST: // multipart request in 1.3
+ case FEATURES_REQUEST:
+ case FLOW_MOD:
+ case GROUP_MOD:
+ case TABLE_MOD:
+ case GET_ASYNC_REQUEST:
+ case SET_ASYNC:
+ case METER_MOD:
+ default:
+ illegalMessageReceived(h, m);
+ break;
+ }
+ }
+
+ /*-----------------------------------------------------------------
+ * Default implementation for message handlers in any state.
+ *
+ * Individual states must override these if they want a behavior
+ * that differs from the default.
+ *
+ * In general, these handlers simply ignore the message and do
+ * nothing.
+ *
+ * There are some exceptions though, since some messages really
+ * are handled the same way in every state (e.g., ECHO_REQUST) or
+ * that are only valid in a single state (e.g., HELLO, GET_CONFIG_REPLY
+ -----------------------------------------------------------------*/
+
+ void processOFHello(OFChannelHandler h, OFHello m)
+ throws IOException, SwitchStateException {
+ // we only expect hello in the WAIT_HELLO state
+ illegalMessageReceived(h, m);
+ }
+
+ void processOFBarrierReply(OFChannelHandler h, OFBarrierReply m)
+ throws IOException {
+ // Silently ignore.
+ }
+
+ void processOFEchoRequest(OFChannelHandler h, OFEchoRequest m)
+ throws IOException {
+ if (h.ofVersion == null) {
+ log.error("No OF version set for {}. Not sending Echo REPLY",
+ h.channel.getRemoteAddress());
+ return;
+ }
+ OFFactory factory = (h.ofVersion == OFVersion.OF_13) ?
+ h.controller.getOFMessageFactory13() : h.controller.getOFMessageFactory10();
+ OFEchoReply reply = factory
+ .buildEchoReply()
+ .setXid(m.getXid())
+ .setData(m.getData())
+ .build();
+ h.channel.write(Collections.singletonList(reply));
+ }
+
+ void processOFEchoReply(OFChannelHandler h, OFEchoReply m)
+ throws IOException {
+ // Do nothing with EchoReplies !!
+ }
+
+ // no default implementation for OFError
+ // every state must override it
+ abstract void processOFError(OFChannelHandler h, OFErrorMsg m)
+ throws IOException, SwitchStateException;
+
+
+ void processOFFeaturesReply(OFChannelHandler h, OFFeaturesReply m)
+ throws IOException, SwitchStateException {
+ unhandledMessageReceived(h, m);
+ }
+
+ void processOFFlowRemoved(OFChannelHandler h, OFFlowRemoved m)
+ throws IOException {
+ unhandledMessageReceived(h, m);
+ }
+
+ void processOFGetConfigReply(OFChannelHandler h, OFGetConfigReply m)
+ throws IOException, SwitchStateException {
+ // we only expect config replies in the WAIT_CONFIG_REPLY state
+ illegalMessageReceived(h, m);
+ }
+
+ void processOFPacketIn(OFChannelHandler h, OFPacketIn m)
+ throws IOException {
+ unhandledMessageReceived(h, m);
+ }
+
+ // no default implementation. Every state needs to handle it.
+ abstract void processOFPortStatus(OFChannelHandler h, OFPortStatus m)
+ throws IOException, SwitchStateException;
+
+ void processOFQueueGetConfigReply(OFChannelHandler h,
+ OFQueueGetConfigReply m)
+ throws IOException {
+ unhandledMessageReceived(h, m);
+ }
+
+ void processOFStatisticsReply(OFChannelHandler h, OFStatsReply m)
+ throws IOException, SwitchStateException {
+ unhandledMessageReceived(h, m);
+ }
+
+ void processOFExperimenter(OFChannelHandler h, OFExperimenter m)
+ throws IOException, SwitchStateException {
+ // TODO: it might make sense to parse the vendor message here
+ // into the known vendor messages we support and then call more
+ // specific event handlers
+ unhandledMessageReceived(h, m);
+ }
+
+ void processOFRoleReply(OFChannelHandler h, OFRoleReply m)
+ throws SwitchStateException, IOException {
+ unhandledMessageReceived(h, m);
+ }
+
+ void processOFGetAsyncReply(OFChannelHandler h,
+ OFAsyncGetReply m) {
+ unhandledMessageReceived(h, m);
+ }
+
+ }
+
+
+
+ //*************************
+ // Channel handler methods
+ //*************************
+
+ @Override
+ public void channelConnected(ChannelHandlerContext ctx,
+ ChannelStateEvent e) throws Exception {
+ channel = e.getChannel();
+ log.info("New switch connection from {}",
+ channel.getRemoteAddress());
+ sendHandshakeHelloMessage();
+ setState(ChannelState.WAIT_HELLO);
+ }
+
+ @Override
+ public void channelDisconnected(ChannelHandlerContext ctx,
+ ChannelStateEvent e) throws Exception {
+ log.info("Switch disconnected callback for sw:{}. Cleaning up ...",
+ getSwitchInfoString());
+ if (thisdpid != 0) {
+ if (!duplicateDpidFound) {
+ // if the disconnected switch (on this ChannelHandler)
+ // was not one with a duplicate-dpid, it is safe to remove all
+ // state for it at the controller. Notice that if the disconnected
+ // switch was a duplicate-dpid, calling the method below would clear
+ // all state for the original switch (with the same dpid),
+ // which we obviously don't want.
+ sw.removeConnectedSwitch();
+ } else {
+ // A duplicate was disconnected on this ChannelHandler,
+ // this is the same switch reconnecting, but the original state was
+ // not cleaned up - XXX check liveness of original ChannelHandler
+ duplicateDpidFound = Boolean.FALSE;
+ }
+ } else {
+ log.warn("no dpid in channelHandler registered for "
+ + "disconnected switch {}", getSwitchInfoString());
+ }
+ }
+
+ @Override
+ public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e)
+ throws Exception {
+ if (e.getCause() instanceof ReadTimeoutException) {
+ // switch timeout
+ log.error("Disconnecting switch {} due to read timeout",
+ getSwitchInfoString());
+ ctx.getChannel().close();
+ } else if (e.getCause() instanceof HandshakeTimeoutException) {
+ log.error("Disconnecting switch {}: failed to complete handshake",
+ getSwitchInfoString());
+ ctx.getChannel().close();
+ } else if (e.getCause() instanceof ClosedChannelException) {
+ log.debug("Channel for sw {} already closed", getSwitchInfoString());
+ } else if (e.getCause() instanceof IOException) {
+ log.error("Disconnecting switch {} due to IO Error: {}",
+ getSwitchInfoString(), e.getCause().getMessage());
+ if (log.isDebugEnabled()) {
+ // still print stack trace if debug is enabled
+ log.debug("StackTrace for previous Exception: ", e.getCause());
+ }
+ ctx.getChannel().close();
+ } else if (e.getCause() instanceof SwitchStateException) {
+ log.error("Disconnecting switch {} due to switch state error: {}",
+ getSwitchInfoString(), e.getCause().getMessage());
+ if (log.isDebugEnabled()) {
+ // still print stack trace if debug is enabled
+ log.debug("StackTrace for previous Exception: ", e.getCause());
+ }
+ ctx.getChannel().close();
+ } else if (e.getCause() instanceof OFParseError) {
+ log.error("Disconnecting switch "
+ + getSwitchInfoString() +
+ " due to message parse failure",
+ e.getCause());
+ ctx.getChannel().close();
+ } else if (e.getCause() instanceof RejectedExecutionException) {
+ log.warn("Could not process message: queue full");
+ } else {
+ log.error("Error while processing message from switch "
+ + getSwitchInfoString()
+ + "state " + this.state, e.getCause());
+ ctx.getChannel().close();
+ }
+ }
+
+ @Override
+ public String toString() {
+ return getSwitchInfoString();
+ }
+
+ @Override
+ public void channelIdle(ChannelHandlerContext ctx, IdleStateEvent e)
+ throws Exception {
+ OFFactory factory = (ofVersion == OFVersion.OF_13) ? factory13 : factory10;
+ OFMessage m = factory.buildEchoRequest().build();
+ log.info("Sending Echo Request on idle channel: {}",
+ e.getChannel().getPipeline().getLast().toString());
+ e.getChannel().write(Collections.singletonList(m));
+ // XXX S some problems here -- echo request has no transaction id, and
+ // echo reply is not correlated to the echo request.
+ }
+
+ @Override
+ public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
+ throws Exception {
+ if (e.getMessage() instanceof List) {
+ @SuppressWarnings("unchecked")
+ List<OFMessage> msglist = (List<OFMessage>) e.getMessage();
+
+
+ for (OFMessage ofm : msglist) {
+ // Do the actual packet processing
+ state.processOFMessage(this, ofm);
+ }
+ } else {
+ state.processOFMessage(this, (OFMessage) e.getMessage());
+ }
+ }
+
+
+
+ //*************************
+ // Channel utility methods
+ //*************************
+
+ /**
+ * Is this a state in which the handshake has completed?
+ * @return true if the handshake is complete
+ */
+ public boolean isHandshakeComplete() {
+ return this.state.isHandshakeComplete();
+ }
+
+ private void dispatchMessage(OFMessage m) {
+ sw.handleMessage(m);
+ }
+
+ /**
+ * Return a string describing this switch based on the already available
+ * information (DPID and/or remote socket).
+ * @return display string
+ */
+ private String getSwitchInfoString() {
+ if (sw != null) {
+ return sw.toString();
+ }
+ String channelString;
+ if (channel == null || channel.getRemoteAddress() == null) {
+ channelString = "?";
+ } else {
+ channelString = channel.getRemoteAddress().toString();
+ }
+ String dpidString;
+ if (featuresReply == null) {
+ dpidString = "?";
+ } else {
+ dpidString = featuresReply.getDatapathId().toString();
+ }
+ return String.format("[%s DPID[%s]]", channelString, dpidString);
+ }
+
+ /**
+ * Update the channels state. Only called from the state machine.
+ * TODO: enforce restricted state transitions
+ * @param state
+ */
+ private void setState(ChannelState state) {
+ this.state = state;
+ }
+
+ /**
+ * Send hello message to the switch using the handshake transactions ids.
+ * @throws IOException
+ */
+ private void sendHandshakeHelloMessage() throws IOException {
+ // The OF protocol requires us to start things off by sending the highest
+ // version of the protocol supported.
+
+ // bitmap represents OF1.0 (ofp_version=0x01) and OF1.3 (ofp_version=0x04)
+ // see Sec. 7.5.1 of the OF1.3.4 spec
+ U32 bitmap = U32.ofRaw(0x00000012);
+ OFHelloElem hem = factory13.buildHelloElemVersionbitmap()
+ .setBitmaps(Collections.singletonList(bitmap))
+ .build();
+ OFMessage.Builder mb = factory13.buildHello()
+ .setXid(this.handshakeTransactionIds--)
+ .setElements(Collections.singletonList(hem));
+ log.info("Sending OF_13 Hello to {}", channel.getRemoteAddress());
+ channel.write(Collections.singletonList(mb.build()));
+ }
+
+ /**
+ * Send featuresRequest msg to the switch using the handshake transactions ids.
+ * @throws IOException
+ */
+ private void sendHandshakeFeaturesRequestMessage() throws IOException {
+ OFFactory factory = (ofVersion == OFVersion.OF_13) ? factory13 : factory10;
+ OFMessage m = factory.buildFeaturesRequest()
+ .setXid(this.handshakeTransactionIds--)
+ .build();
+ channel.write(Collections.singletonList(m));
+ }
+
+ /**
+ * Send the configuration requests to tell the switch we want full
+ * packets.
+ * @throws IOException
+ */
+ private void sendHandshakeSetConfig() throws IOException {
+ OFFactory factory = (ofVersion == OFVersion.OF_13) ? factory13 : factory10;
+ //log.debug("Sending CONFIG_REQUEST to {}", channel.getRemoteAddress());
+ List<OFMessage> msglist = new ArrayList<OFMessage>(3);
+
+ // Ensure we receive the full packet via PacketIn
+ // FIXME: We don't set the reassembly flags.
+ OFSetConfig sc = factory
+ .buildSetConfig()
+ .setMissSendLen((short) 0xffff)
+ .setXid(this.handshakeTransactionIds--)
+ .build();
+ msglist.add(sc);
+
+ // Barrier
+ OFBarrierRequest br = factory
+ .buildBarrierRequest()
+ .setXid(this.handshakeTransactionIds--)
+ .build();
+ msglist.add(br);
+
+ // Verify (need barrier?)
+ OFGetConfigRequest gcr = factory
+ .buildGetConfigRequest()
+ .setXid(this.handshakeTransactionIds--)
+ .build();
+ msglist.add(gcr);
+ channel.write(msglist);
+ }
+
+ /**
+ * send a description state request.
+ * @throws IOException
+ */
+ private void sendHandshakeDescriptionStatsRequest() throws IOException {
+ // Get Description to set switch-specific flags
+ OFFactory factory = (ofVersion == OFVersion.OF_13) ? factory13 : factory10;
+ OFDescStatsRequest dreq = factory
+ .buildDescStatsRequest()
+ .setXid(handshakeTransactionIds--)
+ .build();
+ channel.write(Collections.singletonList(dreq));
+ }
+
+ private void sendHandshakeOFPortDescRequest() throws IOException {
+ // Get port description for 1.3 switch
+ OFPortDescStatsRequest preq = factory13
+ .buildPortDescStatsRequest()
+ .setXid(handshakeTransactionIds--)
+ .build();
+ channel.write(Collections.singletonList(preq));
+ }
+
+ ChannelState getStateForTesting() {
+ return state;
+ }
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFMessageDecoder.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFMessageDecoder.java
new file mode 100644
index 0000000..d310613
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFMessageDecoder.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright 2011, Big Switch Networks, Inc.
+ * Originally created by David Erickson, Stanford University
+ *
+ * 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.onos.of.controller.impl;
+
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.channel.Channel;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.handler.codec.frame.FrameDecoder;
+import org.projectfloodlight.openflow.protocol.OFFactories;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFMessageReader;
+
+/**
+ * Decode an openflow message from a Channel, for use in a netty pipeline.
+ */
+public class OFMessageDecoder extends FrameDecoder {
+
+ @Override
+ protected Object decode(ChannelHandlerContext ctx, Channel channel,
+ ChannelBuffer buffer) throws Exception {
+ if (!channel.isConnected()) {
+ // In testing, I see decode being called AFTER decode last.
+ // This check avoids that from reading corrupted frames
+ return null;
+ }
+
+ // Note that a single call to decode results in reading a single
+ // OFMessage from the channel buffer, which is passed on to, and processed
+ // by, the controller (in OFChannelHandler).
+ // This is different from earlier behavior (with the original openflowj),
+ // where we parsed all the messages in the buffer, before passing on
+ // a list of the parsed messages to the controller.
+ // The performance *may or may not* not be as good as before.
+ OFMessageReader<OFMessage> reader = OFFactories.getGenericReader();
+ OFMessage message = reader.readFrom(buffer);
+
+ return message;
+ }
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFMessageEncoder.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFMessageEncoder.java
new file mode 100644
index 0000000..35d84b4
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OFMessageEncoder.java
@@ -0,0 +1,59 @@
+/**
+ * Copyright 2011, Big Switch Networks, Inc.
+ * Originally created by David Erickson, Stanford University
+ *
+ * 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.onos.of.controller.impl;
+
+import java.util.List;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.jboss.netty.channel.Channel;
+import org.jboss.netty.channel.ChannelHandlerContext;
+import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+
+
+/**
+ * Encode an openflow message for output into a ChannelBuffer, for use in a
+ * netty pipeline.
+ */
+public class OFMessageEncoder extends OneToOneEncoder {
+
+ @Override
+ protected Object encode(ChannelHandlerContext ctx, Channel channel,
+ Object msg) throws Exception {
+ if (!(msg instanceof List)) {
+ return msg;
+ }
+
+ @SuppressWarnings("unchecked")
+ List<OFMessage> msglist = (List<OFMessage>) msg;
+ /* XXX S can't get length of OFMessage in loxigen's openflowj??
+ int size = 0;
+ for (OFMessage ofm : msglist) {
+ size += ofm.getLengthU();
+ }*/
+
+ ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+
+ for (OFMessage ofm : msglist) {
+ ofm.writeTo(buf);
+ }
+ return buf;
+ }
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OpenFlowControllerImpl.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OpenFlowControllerImpl.java
new file mode 100644
index 0000000..a8b0673
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OpenFlowControllerImpl.java
@@ -0,0 +1,292 @@
+package org.onlab.onos.of.controller.impl;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
+
+import org.apache.felix.scr.annotations.Activate;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Deactivate;
+import org.apache.felix.scr.annotations.Service;
+import org.onlab.onos.of.controller.DefaultOpenFlowPacketContext;
+import org.onlab.onos.of.controller.Dpid;
+import org.onlab.onos.of.controller.OpenFlowController;
+import org.onlab.onos.of.controller.OpenFlowPacketContext;
+import org.onlab.onos.of.controller.OpenFlowSwitch;
+import org.onlab.onos.of.controller.OpenFlowSwitchListener;
+import org.onlab.onos.of.controller.PacketListener;
+import org.onlab.onos.of.controller.RoleState;
+import org.onlab.onos.of.controller.driver.OpenFlowAgent;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFPacketIn;
+import org.projectfloodlight.openflow.protocol.OFPortStatus;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.collect.ArrayListMultimap;
+import com.google.common.collect.Multimap;
+
+@Component(immediate = true)
+@Service
+public class OpenFlowControllerImpl implements OpenFlowController {
+
+ private static final Logger log =
+ LoggerFactory.getLogger(OpenFlowControllerImpl.class);
+
+ protected ConcurrentHashMap<Dpid, OpenFlowSwitch> connectedSwitches =
+ new ConcurrentHashMap<Dpid, OpenFlowSwitch>();
+ protected ConcurrentHashMap<Dpid, OpenFlowSwitch> activeMasterSwitches =
+ new ConcurrentHashMap<Dpid, OpenFlowSwitch>();
+ protected ConcurrentHashMap<Dpid, OpenFlowSwitch> activeEqualSwitches =
+ new ConcurrentHashMap<Dpid, OpenFlowSwitch>();
+
+ protected OpenFlowSwitchAgent agent = new OpenFlowSwitchAgent();
+ protected Set<OpenFlowSwitchListener> ofEventListener = new HashSet<>();
+
+ protected Multimap<Integer, PacketListener> ofPacketListener =
+ ArrayListMultimap.create();
+
+
+ private final Controller ctrl = new Controller();
+
+ @Activate
+ public void activate() {
+ ctrl.start(agent);
+ }
+
+ @Deactivate
+ public void deactivate() {
+ ctrl.stop();
+ }
+
+ @Override
+ public Iterable<OpenFlowSwitch> getSwitches() {
+ return connectedSwitches.values();
+ }
+
+ @Override
+ public Iterable<OpenFlowSwitch> getMasterSwitches() {
+ return activeMasterSwitches.values();
+ }
+
+ @Override
+ public Iterable<OpenFlowSwitch> getEqualSwitches() {
+ return activeEqualSwitches.values();
+ }
+
+ @Override
+ public OpenFlowSwitch getSwitch(Dpid dpid) {
+ return connectedSwitches.get(dpid);
+ }
+
+ @Override
+ public OpenFlowSwitch getMasterSwitch(Dpid dpid) {
+ return activeMasterSwitches.get(dpid);
+ }
+
+ @Override
+ public OpenFlowSwitch getEqualSwitch(Dpid dpid) {
+ return activeEqualSwitches.get(dpid);
+ }
+
+ @Override
+ public void addListener(OpenFlowSwitchListener listener) {
+ if (!ofEventListener.contains(listener)) {
+ this.ofEventListener.add(listener);
+ }
+ }
+
+ @Override
+ public void removeListener(OpenFlowSwitchListener listener) {
+ this.ofEventListener.remove(listener);
+ }
+
+ @Override
+ public void addPacketListener(int priority, PacketListener listener) {
+ ofPacketListener.put(priority, listener);
+ }
+
+ @Override
+ public void removePacketListener(PacketListener listener) {
+ ofPacketListener.values().remove(listener);
+ }
+
+ @Override
+ public void write(Dpid dpid, OFMessage msg) {
+ this.getSwitch(dpid).sendMsg(msg);
+ }
+
+ @Override
+ public void processPacket(Dpid dpid, OFMessage msg) {
+ switch (msg.getType()) {
+ case PORT_STATUS:
+ for (OpenFlowSwitchListener l : ofEventListener) {
+ l.portChanged(dpid, (OFPortStatus) msg);
+ }
+ break;
+ case PACKET_IN:
+ OpenFlowPacketContext pktCtx = DefaultOpenFlowPacketContext
+ .packetContextFromPacketIn(this.getSwitch(dpid),
+ (OFPacketIn) msg);
+ for (PacketListener p : ofPacketListener.values()) {
+ p.handlePacket(pktCtx);
+ }
+ break;
+ default:
+ log.warn("Handling message type {} not yet implemented {}",
+ msg.getType(), msg);
+ }
+ }
+
+ @Override
+ public void setRole(Dpid dpid, RoleState role) {
+ getSwitch(dpid).setRole(role);
+ }
+
+ /**
+ * Implementation of an OpenFlow Agent which is responsible for
+ * keeping track of connected switches and the state in which
+ * they are.
+ */
+ public class OpenFlowSwitchAgent implements OpenFlowAgent {
+
+ private final Logger log = LoggerFactory.getLogger(OpenFlowSwitchAgent.class);
+ private final Lock switchLock = new ReentrantLock();
+
+ @Override
+ public boolean addConnectedSwitch(Dpid dpid, OpenFlowSwitch sw) {
+ if (connectedSwitches.get(dpid) != null) {
+ log.error("Trying to add connectedSwitch but found a previous "
+ + "value for dpid: {}", dpid);
+ return false;
+ } else {
+ log.error("Added switch {}", dpid);
+ connectedSwitches.put(dpid, sw);
+ for (OpenFlowSwitchListener l : ofEventListener) {
+ l.switchAdded(dpid);
+ }
+ return true;
+ }
+ }
+
+ @Override
+ public boolean validActivation(Dpid dpid) {
+ if (connectedSwitches.get(dpid) == null) {
+ log.error("Trying to activate switch but is not in "
+ + "connected switches: dpid {}. Aborting ..",
+ dpid);
+ return false;
+ }
+ if (activeMasterSwitches.get(dpid) != null ||
+ activeEqualSwitches.get(dpid) != null) {
+ log.error("Trying to activate switch but it is already "
+ + "activated: dpid {}. Found in activeMaster: {} "
+ + "Found in activeEqual: {}. Aborting ..", new Object[]{
+ dpid,
+ (activeMasterSwitches.get(dpid) == null) ? 'N' : 'Y',
+ (activeEqualSwitches.get(dpid) == null) ? 'N' : 'Y'});
+ return false;
+ }
+ return true;
+ }
+
+
+ @Override
+ public boolean addActivatedMasterSwitch(Dpid dpid, OpenFlowSwitch sw) {
+ switchLock.lock();
+ try {
+ if (!validActivation(dpid)) {
+ return false;
+ }
+ activeMasterSwitches.put(dpid, sw);
+ return true;
+ } finally {
+ switchLock.unlock();
+ }
+ }
+
+ @Override
+ public boolean addActivatedEqualSwitch(Dpid dpid, OpenFlowSwitch sw) {
+ switchLock.lock();
+ try {
+ if (!validActivation(dpid)) {
+ return false;
+ }
+ activeEqualSwitches.put(dpid, sw);
+ log.info("Added Activated EQUAL Switch {}", dpid);
+ return true;
+ } finally {
+ switchLock.unlock();
+ }
+ }
+
+ @Override
+ public void transitionToMasterSwitch(Dpid dpid) {
+ switchLock.lock();
+ try {
+ if (activeMasterSwitches.containsKey(dpid)) {
+ return;
+ }
+ OpenFlowSwitch sw = activeEqualSwitches.remove(dpid);
+ if (sw == null) {
+ sw = getSwitch(dpid);
+ if (sw == null) {
+ log.error("Transition to master called on sw {}, but switch "
+ + "was not found in controller-cache", dpid);
+ return;
+ }
+ }
+ log.info("Transitioned switch {} to MASTER", dpid);
+ activeMasterSwitches.put(dpid, sw);
+ } finally {
+ switchLock.unlock();
+ }
+ }
+
+
+ @Override
+ public void transitionToEqualSwitch(Dpid dpid) {
+ switchLock.lock();
+ try {
+ if (activeEqualSwitches.containsKey(dpid)) {
+ return;
+ }
+ OpenFlowSwitch sw = activeMasterSwitches.remove(dpid);
+ if (sw == null) {
+ sw = getSwitch(dpid);
+ if (sw == null) {
+ log.error("Transition to equal called on sw {}, but switch "
+ + "was not found in controller-cache", dpid);
+ return;
+ }
+ }
+ log.info("Transitioned switch {} to EQUAL", dpid);
+ activeEqualSwitches.put(dpid, sw);
+ } finally {
+ switchLock.unlock();
+ }
+
+ }
+
+ @Override
+ public void removeConnectedSwitch(Dpid dpid) {
+ connectedSwitches.remove(dpid);
+ OpenFlowSwitch sw = activeMasterSwitches.remove(dpid);
+ if (sw == null) {
+ sw = activeEqualSwitches.remove(dpid);
+ }
+ for (OpenFlowSwitchListener l : ofEventListener) {
+ l.switchRemoved(dpid);
+ }
+ }
+
+ @Override
+ public void processMessage(Dpid dpid, OFMessage m) {
+ processPacket(dpid, m);
+ }
+ }
+
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OpenflowPipelineFactory.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OpenflowPipelineFactory.java
new file mode 100644
index 0000000..1e34a3e
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/OpenflowPipelineFactory.java
@@ -0,0 +1,78 @@
+/**
+* Copyright 2011, Big Switch Networks, Inc.
+* Originally created by David Erickson, Stanford University
+*
+* 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.onos.of.controller.impl;
+
+import java.util.concurrent.ThreadPoolExecutor;
+
+import org.jboss.netty.channel.ChannelPipeline;
+import org.jboss.netty.channel.ChannelPipelineFactory;
+import org.jboss.netty.channel.Channels;
+import org.jboss.netty.handler.execution.ExecutionHandler;
+import org.jboss.netty.handler.timeout.IdleStateHandler;
+import org.jboss.netty.handler.timeout.ReadTimeoutHandler;
+import org.jboss.netty.util.ExternalResourceReleasable;
+import org.jboss.netty.util.HashedWheelTimer;
+import org.jboss.netty.util.Timer;
+
+/**
+ * Creates a ChannelPipeline for a server-side openflow channel.
+ */
+public class OpenflowPipelineFactory
+ implements ChannelPipelineFactory, ExternalResourceReleasable {
+
+ protected Controller controller;
+ protected ThreadPoolExecutor pipelineExecutor;
+ protected Timer timer;
+ protected IdleStateHandler idleHandler;
+ protected ReadTimeoutHandler readTimeoutHandler;
+
+ public OpenflowPipelineFactory(Controller controller,
+ ThreadPoolExecutor pipelineExecutor) {
+ super();
+ this.controller = controller;
+ this.pipelineExecutor = pipelineExecutor;
+ this.timer = new HashedWheelTimer();
+ this.idleHandler = new IdleStateHandler(timer, 20, 25, 0);
+ this.readTimeoutHandler = new ReadTimeoutHandler(timer, 30);
+ }
+
+ @Override
+ public ChannelPipeline getPipeline() throws Exception {
+ OFChannelHandler handler = new OFChannelHandler(controller);
+
+ ChannelPipeline pipeline = Channels.pipeline();
+ pipeline.addLast("ofmessagedecoder", new OFMessageDecoder());
+ pipeline.addLast("ofmessageencoder", new OFMessageEncoder());
+ pipeline.addLast("idle", idleHandler);
+ pipeline.addLast("timeout", readTimeoutHandler);
+ // XXX S ONOS: was 15 increased it to fix Issue #296
+ pipeline.addLast("handshaketimeout",
+ new HandshakeTimeoutHandler(handler, timer, 60));
+ if (pipelineExecutor != null) {
+ pipeline.addLast("pipelineExecutor",
+ new ExecutionHandler(pipelineExecutor));
+ }
+ pipeline.addLast("handler", handler);
+ return pipeline;
+ }
+
+ @Override
+ public void releaseExternalResources() {
+ timer.stop();
+ }
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/RoleManager.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/RoleManager.java
new file mode 100644
index 0000000..ee3a37f
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/RoleManager.java
@@ -0,0 +1,395 @@
+package org.onlab.onos.of.controller.impl;
+
+import java.io.IOException;
+import java.util.Collections;
+
+import org.onlab.onos.of.controller.RoleState;
+import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriver;
+import org.onlab.onos.of.controller.driver.RoleHandler;
+import org.onlab.onos.of.controller.driver.RoleRecvStatus;
+import org.onlab.onos.of.controller.driver.RoleReplyInfo;
+import org.onlab.onos.of.controller.driver.SwitchStateException;
+import org.projectfloodlight.openflow.protocol.OFControllerRole;
+import org.projectfloodlight.openflow.protocol.OFErrorMsg;
+import org.projectfloodlight.openflow.protocol.OFErrorType;
+import org.projectfloodlight.openflow.protocol.OFExperimenter;
+import org.projectfloodlight.openflow.protocol.OFFactories;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFNiciraControllerRole;
+import org.projectfloodlight.openflow.protocol.OFNiciraControllerRoleReply;
+import org.projectfloodlight.openflow.protocol.OFRoleReply;
+import org.projectfloodlight.openflow.protocol.OFRoleRequest;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.projectfloodlight.openflow.protocol.errormsg.OFBadRequestErrorMsg;
+import org.projectfloodlight.openflow.protocol.errormsg.OFRoleRequestFailedErrorMsg;
+import org.projectfloodlight.openflow.types.U64;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
+/**
+ * A utility class to handle role requests and replies for this channel.
+ * After a role request is submitted the role changer keeps track of the
+ * pending request, collects the reply (if any) and times out the request
+ * if necessary.
+ *
+ * To simplify role handling we only keep track of the /last/ pending
+ * role reply send to the switch. If multiple requests are pending and
+ * we receive replies for earlier requests we ignore them. However, this
+ * way of handling pending requests implies that we could wait forever if
+ * a new request is submitted before the timeout triggers. If necessary
+ * we could work around that though.
+ */
+class RoleManager implements RoleHandler {
+ protected static final long NICIRA_EXPERIMENTER = 0x2320;
+
+ private static Logger log = LoggerFactory.getLogger(RoleManager.class);
+ // indicates that a request is currently pending
+ // needs to be volatile to allow correct double-check idiom
+ private volatile boolean requestPending;
+ // the transaction Id of the pending request
+ private int pendingXid;
+ // the role that's pending
+ private RoleState pendingRole;
+
+ // the expectation set by the caller for the returned role
+ private RoleRecvStatus expectation;
+ private final OpenFlowSwitchDriver sw;
+
+
+ public RoleManager(OpenFlowSwitchDriver sw) {
+ this.requestPending = false;
+ this.pendingXid = -1;
+ this.pendingRole = null;
+ this.expectation = RoleRecvStatus.MATCHED_CURRENT_ROLE;
+ this.sw = sw;
+ }
+
+ /**
+ * Send NX role request message to the switch requesting the specified
+ * role.
+ *
+ * @param role role to request
+ */
+ private int sendNxRoleRequest(RoleState role) throws IOException {
+ // Convert the role enum to the appropriate role to send
+ OFNiciraControllerRole roleToSend = OFNiciraControllerRole.ROLE_OTHER;
+ switch (role) {
+ case MASTER:
+ roleToSend = OFNiciraControllerRole.ROLE_MASTER;
+ break;
+ case SLAVE:
+ case EQUAL:
+ default:
+ // ensuring that the only two roles sent to 1.0 switches with
+ // Nicira role support, are MASTER and SLAVE
+ roleToSend = OFNiciraControllerRole.ROLE_OTHER;
+ log.warn("Sending Nx Role.SLAVE to switch {}.", sw);
+ }
+ int xid = sw.getNextTransactionId();
+ OFExperimenter roleRequest = OFFactories.getFactory(OFVersion.OF_10)
+ .buildNiciraControllerRoleRequest()
+ .setXid(xid)
+ .setRole(roleToSend)
+ .build();
+ sw.write(Collections.<OFMessage>singletonList(roleRequest));
+ return xid;
+ }
+
+ private int sendOF13RoleRequest(RoleState role) throws IOException {
+ // Convert the role enum to the appropriate role to send
+ OFControllerRole roleToSend = OFControllerRole.ROLE_NOCHANGE;
+ switch (role) {
+ case EQUAL:
+ roleToSend = OFControllerRole.ROLE_EQUAL;
+ break;
+ case MASTER:
+ roleToSend = OFControllerRole.ROLE_MASTER;
+ break;
+ case SLAVE:
+ roleToSend = OFControllerRole.ROLE_SLAVE;
+ break;
+ default:
+ log.warn("Sending default role.noChange to switch {}."
+ + " Should only be used for queries.", sw);
+ }
+
+ int xid = sw.getNextTransactionId();
+ OFRoleRequest rrm = OFFactories.getFactory(OFVersion.OF_13)
+ .buildRoleRequest()
+ .setRole(roleToSend)
+ .setXid(xid)
+ //FIXME fix below when we actually use generation ids
+ .setGenerationId(U64.ZERO)
+ .build();
+ sw.sendMsg(rrm);
+ return xid;
+ }
+
+ @Override
+ public synchronized boolean sendRoleRequest(RoleState role, RoleRecvStatus exp)
+ throws IOException {
+ this.expectation = exp;
+
+ if (sw.factory().getVersion() == OFVersion.OF_10) {
+ Boolean supportsNxRole = sw.supportNxRole();
+ if (!supportsNxRole) {
+ log.debug("Switch driver indicates no support for Nicira "
+ + "role request messages. Not sending ...");
+ handleUnsentRoleMessage(role,
+ expectation);
+ return false;
+ }
+ // OF1.0 switch with support for NX_ROLE_REQUEST vendor extn.
+ // make Role.EQUAL become Role.SLAVE
+ role = (role == RoleState.EQUAL) ? RoleState.SLAVE : role;
+ pendingXid = sendNxRoleRequest(role);
+ pendingRole = role;
+ requestPending = true;
+ } else {
+ // OF1.3 switch, use OFPT_ROLE_REQUEST message
+ pendingXid = sendOF13RoleRequest(role);
+ pendingRole = role;
+ requestPending = true;
+ }
+ return true;
+ }
+
+ private void handleUnsentRoleMessage(RoleState role,
+ RoleRecvStatus exp) throws IOException {
+ // typically this is triggered for a switch where role messages
+ // are not supported - we confirm that the role being set is
+ // master
+ if (exp != RoleRecvStatus.MATCHED_SET_ROLE) {
+
+ log.error("Expected MASTER role from registry for switch "
+ + "which has no support for role-messages."
+ + "Received {}. It is possible that this switch "
+ + "is connected to other controllers, in which "
+ + "case it should support role messages - not "
+ + "moving forward.", role);
+
+ }
+
+ }
+
+
+ @Override
+ public synchronized RoleRecvStatus deliverRoleReply(RoleReplyInfo rri)
+ throws SwitchStateException {
+ if (!requestPending) {
+ RoleState currentRole = (sw != null) ? sw.getRole() : null;
+ if (currentRole != null) {
+ if (currentRole == rri.getRole()) {
+ // Don't disconnect if the role reply we received is
+ // for the same role we are already in.
+ log.debug("Received unexpected RoleReply from "
+ + "Switch: {}. "
+ + "Role in reply is same as current role of this "
+ + "controller for this sw. Ignoring ...",
+ sw.getStringId());
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ } else {
+ String msg = String.format("Switch: [%s], "
+ + "received unexpected RoleReply[%s]. "
+ + "No roles are pending, and this controller's "
+ + "current role:[%s] does not match reply. "
+ + "Disconnecting switch ... ",
+ sw.getStringId(),
+ rri, currentRole);
+ throw new SwitchStateException(msg);
+ }
+ }
+ log.debug("Received unexpected RoleReply {} from "
+ + "Switch: {}. "
+ + "This controller has no current role for this sw. "
+ + "Ignoring ...", new Object[] {rri,
+ sw.getStringId(), });
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ }
+
+ int xid = (int) rri.getXid();
+ RoleState role = rri.getRole();
+ // XXX S should check generation id meaningfully and other cases of expectations
+
+ if (pendingXid != xid) {
+ log.debug("Received older role reply from " +
+ "switch {} ({}). Ignoring. " +
+ "Waiting for {}, xid={}",
+ new Object[] {sw.getStringId(), rri,
+ pendingRole, pendingXid });
+ return RoleRecvStatus.OLD_REPLY;
+ }
+
+ if (pendingRole == role) {
+ log.debug("Received role reply message from {} that matched "
+ + "expected role-reply {} with expectations {}",
+ new Object[] {sw.getStringId(), role, expectation});
+
+ if (expectation == RoleRecvStatus.MATCHED_CURRENT_ROLE ||
+ expectation == RoleRecvStatus.MATCHED_SET_ROLE) {
+ return expectation;
+ } else {
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ }
+ }
+
+ // if xids match but role's don't, perhaps its a query (OF1.3)
+ if (expectation == RoleRecvStatus.REPLY_QUERY) {
+ return expectation;
+ }
+
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ }
+
+ /**
+ * Called if we receive an error message. If the xid matches the
+ * pending request we handle it otherwise we ignore it.
+ *
+ * Note: since we only keep the last pending request we might get
+ * error messages for earlier role requests that we won't be able
+ * to handle
+ */
+ @Override
+ public synchronized RoleRecvStatus deliverError(OFErrorMsg error)
+ throws SwitchStateException {
+ if (!requestPending) {
+ log.debug("Received an error msg from sw {}, but no pending "
+ + "requests in role-changer; not handling ...",
+ sw.getStringId());
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ }
+ if (pendingXid != error.getXid()) {
+ if (error.getErrType() == OFErrorType.ROLE_REQUEST_FAILED) {
+ log.debug("Received an error msg from sw {} for a role request,"
+ + " but not for pending request in role-changer; "
+ + " ignoring error {} ...",
+ sw.getStringId(), error);
+ }
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ }
+ // it is an error related to a currently pending role request message
+ if (error.getErrType() == OFErrorType.BAD_REQUEST) {
+ log.error("Received a error msg {} from sw {} for "
+ + "pending role request {}. Switch driver indicates "
+ + "role-messaging is supported. Possible issues in "
+ + "switch driver configuration?", new Object[] {
+ ((OFBadRequestErrorMsg) error).toString(),
+ sw.getStringId(), pendingRole
+ });
+ return RoleRecvStatus.UNSUPPORTED;
+ }
+
+ if (error.getErrType() == OFErrorType.ROLE_REQUEST_FAILED) {
+ OFRoleRequestFailedErrorMsg rrerr =
+ (OFRoleRequestFailedErrorMsg) error;
+ switch (rrerr.getCode()) {
+ case BAD_ROLE:
+ // switch says that current-role-req has bad role?
+ // for now we disconnect
+ // fall-thru
+ case STALE:
+ // switch says that current-role-req has stale gen-id?
+ // for now we disconnect
+ // fall-thru
+ case UNSUP:
+ // switch says that current-role-req has role that
+ // cannot be supported? for now we disconnect
+ String msgx = String.format("Switch: [%s], "
+ + "received Error to for pending role request [%s]. "
+ + "Error:[%s]. Disconnecting switch ... ",
+ sw.getStringId(),
+ pendingRole, rrerr);
+ throw new SwitchStateException(msgx);
+ default:
+ break;
+ }
+ }
+
+ // This error message was for a role request message but we dont know
+ // how to handle errors for nicira role request messages
+ return RoleRecvStatus.OTHER_EXPECTATION;
+ }
+
+ /**
+ * Extract the role from an OFVendor message.
+ *
+ * Extract the role from an OFVendor message if the message is a
+ * Nicira role reply. Otherwise return null.
+ *
+ * @param experimenterMsg message
+ * @return The role in the message if the message is a Nicira role
+ * reply, null otherwise.
+ * @throws SwitchStateException If the message is a Nicira role reply
+ * but the numeric role value is unknown.
+ */
+ @Override
+ public RoleState extractNiciraRoleReply(OFExperimenter experimenterMsg)
+ throws SwitchStateException {
+ int vendor = (int) experimenterMsg.getExperimenter();
+ if (vendor != 0x2320) {
+ return null;
+ }
+ OFNiciraControllerRoleReply nrr =
+ (OFNiciraControllerRoleReply) experimenterMsg;
+
+ RoleState role = null;
+ OFNiciraControllerRole ncr = nrr.getRole();
+ switch(ncr) {
+ case ROLE_MASTER:
+ role = RoleState.MASTER;
+ break;
+ case ROLE_OTHER:
+ role = RoleState.EQUAL;
+ break;
+ case ROLE_SLAVE:
+ role = RoleState.SLAVE;
+ break;
+ default: //handled below
+ }
+
+ if (role == null) {
+ String msg = String.format("Switch: [%s], "
+ + "received NX_ROLE_REPLY with invalid role "
+ + "value %s",
+ sw.getStringId(),
+ nrr.getRole());
+ throw new SwitchStateException(msg);
+ }
+ return role;
+ }
+
+ /**
+ * Extract the role information from an OF1.3 Role Reply Message.
+ *
+ * @param rrmsg the role message
+ * @return RoleReplyInfo object
+ * @throws SwitchStateException if the role information could not be extracted.
+ */
+ @Override
+ public RoleReplyInfo extractOFRoleReply(OFRoleReply rrmsg)
+ throws SwitchStateException {
+ OFControllerRole cr = rrmsg.getRole();
+ RoleState role = null;
+ switch(cr) {
+ case ROLE_EQUAL:
+ role = RoleState.EQUAL;
+ break;
+ case ROLE_MASTER:
+ role = RoleState.MASTER;
+ break;
+ case ROLE_SLAVE:
+ role = RoleState.SLAVE;
+ break;
+ case ROLE_NOCHANGE: // switch should send current role
+ default:
+ String msg = String.format("Unknown controller role %s "
+ + "received from switch %s", cr, sw);
+ throw new SwitchStateException(msg);
+ }
+
+ return new RoleReplyInfo(role, rrmsg.getGenerationId(), rrmsg.getXid());
+ }
+
+}
+
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/package-info.java b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/package-info.java
new file mode 100644
index 0000000..f5b4544
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/controller/impl/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * Implementation of the OpenFlow controller IO subsystem.
+ */
+package org.onlab.onos.of.controller.impl;
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/DriverManager.java b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/DriverManager.java
new file mode 100644
index 0000000..0dd897f
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/DriverManager.java
@@ -0,0 +1,124 @@
+package org.onlab.onos.of.drivers.impl;
+
+
+
+import java.util.Collections;
+import java.util.List;
+
+import org.onlab.onos.of.controller.Dpid;
+import org.onlab.onos.of.controller.driver.AbstractOpenFlowSwitch;
+import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriver;
+import org.onlab.onos.of.controller.driver.OpenFlowSwitchDriverFactory;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFPortDesc;
+import org.projectfloodlight.openflow.protocol.OFVersion;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A simple implementation of a driver manager that differentiates between
+ * connected switches using the OF Description Statistics Reply message.
+ */
+public final class DriverManager implements OpenFlowSwitchDriverFactory {
+
+ private static final Logger log = LoggerFactory.getLogger(DriverManager.class);
+
+ // Whether to use an OF 1.3 configured TTP, or to use an OF 1.0-style
+ // single table with packet-ins.
+ private static boolean cpqdUsePipeline13 = false;
+
+ /**
+ * Return an IOFSwitch object based on switch's manufacturer description
+ * from OFDescStatsReply.
+ *
+ * @param desc DescriptionStatistics reply from the switch
+ * @return A IOFSwitch instance if the driver found an implementation for
+ * the given description. Otherwise it returns OFSwitchImplBase
+ */
+ @Override
+ public OpenFlowSwitchDriver getOFSwitchImpl(Dpid dpid,
+ OFDescStatsReply desc, OFVersion ofv) {
+ String vendor = desc.getMfrDesc();
+ String hw = desc.getHwDesc();
+ if (vendor.startsWith("Stanford University, Ericsson Research and CPqD Research")
+ &&
+ hw.startsWith("OpenFlow 1.3 Reference Userspace Switch")) {
+ return new OFSwitchImplCPqD13(dpid, desc, cpqdUsePipeline13);
+ }
+
+ if (vendor.startsWith("Nicira") &&
+ hw.startsWith("Open vSwitch")) {
+ if (ofv == OFVersion.OF_10) {
+ return new OFSwitchImplOVS10(dpid, desc);
+ } else if (ofv == OFVersion.OF_13) {
+ return new OFSwitchImplOVS13(dpid, desc);
+ }
+ }
+
+ log.warn("DriverManager could not identify switch desc: {}. "
+ + "Assigning AbstractOpenFlowSwich", desc);
+ return new AbstractOpenFlowSwitch(dpid, desc) {
+
+ @Override
+ public void write(List<OFMessage> msgs) {
+ channel.write(msgs);
+ }
+
+ @Override
+ public void write(OFMessage msg) {
+ channel.write(Collections.singletonList(msg));
+
+ }
+
+ @Override
+ public Boolean supportNxRole() {
+ return false;
+ }
+
+ @Override
+ public void startDriverHandshake() {}
+
+ @Override
+ public void processDriverHandshakeMessage(OFMessage m) {}
+
+ @Override
+ public boolean isDriverHandshakeComplete() {
+ return true;
+ }
+
+ @Override
+ public List<OFPortDesc> getPorts() {
+ if (this.factory().getVersion() == OFVersion.OF_10) {
+ return Collections.unmodifiableList(features.getPorts());
+ } else {
+ return Collections.unmodifiableList(ports.getEntries());
+ }
+ }
+ };
+ }
+
+ /**
+ * Private constructor to avoid instantiation.
+ */
+ private DriverManager() {
+ }
+
+ /**
+ * Sets the configuration parameter which determines how the CPqD switch
+ * is set up. If usePipeline13 is true, a 1.3 pipeline will be set up on
+ * the switch. Otherwise, the switch will be set up in a 1.0 style with
+ * a single table where missed packets are sent to the controller.
+ *
+ * @param usePipeline13 whether to use a 1.3 pipeline or not
+ */
+ public static void setConfigForCpqd(boolean usePipeline13) {
+ cpqdUsePipeline13 = usePipeline13;
+ }
+
+ public static OpenFlowSwitchDriver getSwitch(Dpid dpid,
+ OFDescStatsReply desc, OFVersion ofv) {
+ return new DriverManager().getOFSwitchImpl(dpid, desc, ofv);
+ }
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplCPqD13.java b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplCPqD13.java
new file mode 100644
index 0000000..e80b751
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplCPqD13.java
@@ -0,0 +1,1222 @@
+package org.onlab.onos.of.drivers.impl;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.onlab.onos.of.controller.Dpid;
+import org.onlab.onos.of.controller.RoleState;
+import org.onlab.onos.of.controller.driver.AbstractOpenFlowSwitch;
+import org.onlab.onos.of.controller.driver.SwitchDriverSubHandshakeAlreadyStarted;
+import org.onlab.onos.of.controller.driver.SwitchDriverSubHandshakeCompleted;
+import org.onlab.onos.of.controller.driver.SwitchDriverSubHandshakeNotStarted;
+import org.projectfloodlight.openflow.protocol.OFAsyncGetReply;
+import org.projectfloodlight.openflow.protocol.OFBarrierRequest;
+import org.projectfloodlight.openflow.protocol.OFBucket;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFFactory;
+import org.projectfloodlight.openflow.protocol.OFGroupDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFGroupFeaturesStatsReply;
+import org.projectfloodlight.openflow.protocol.OFGroupType;
+import org.projectfloodlight.openflow.protocol.OFMatchV3;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFOxmList;
+import org.projectfloodlight.openflow.protocol.OFPortDesc;
+import org.projectfloodlight.openflow.protocol.OFStatsReply;
+import org.projectfloodlight.openflow.protocol.action.OFAction;
+import org.projectfloodlight.openflow.protocol.instruction.OFInstruction;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmEthDst;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmEthSrc;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmEthType;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmInPort;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmIpv4DstMasked;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmMetadataMasked;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmMplsLabel;
+import org.projectfloodlight.openflow.protocol.oxm.OFOxmVlanVid;
+import org.projectfloodlight.openflow.types.EthType;
+import org.projectfloodlight.openflow.types.IPv4Address;
+import org.projectfloodlight.openflow.types.MacAddress;
+import org.projectfloodlight.openflow.types.OFBufferId;
+import org.projectfloodlight.openflow.types.OFGroup;
+import org.projectfloodlight.openflow.types.OFMetadata;
+import org.projectfloodlight.openflow.types.OFPort;
+import org.projectfloodlight.openflow.types.OFVlanVidMatch;
+import org.projectfloodlight.openflow.types.TableId;
+import org.projectfloodlight.openflow.types.U32;
+import org.projectfloodlight.openflow.types.U64;
+import org.projectfloodlight.openflow.util.HexString;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * OFDescriptionStatistics Vendor (Manufacturer Desc.): Stanford University,
+ * Ericsson Research and CPqD Research. Make (Hardware Desc.) : OpenFlow 1.3
+ * Reference Userspace Switch Model (Datapath Desc.) : None Software : Serial :
+ * None
+ */
+public class OFSwitchImplCPqD13 extends AbstractOpenFlowSwitch {
+
+ private final Logger log =
+ LoggerFactory.getLogger(OFSwitchImplCPqD13.class);
+
+ private static final int VLAN_ID_OFFSET = 16;
+ private final AtomicBoolean driverHandshakeComplete;
+ private OFFactory factory;
+ private static final int OFPCML_NO_BUFFER = 0xffff;
+ // Configuration of asynch messages to controller. We need different
+ // asynch messages depending on role-equal or role-master.
+ // We don't want to get anything if we are slave.
+ private static final long SET_FLOW_REMOVED_MASK_MASTER = 0xf;
+ private static final long SET_PACKET_IN_MASK_MASTER = 0x7;
+ private static final long SET_PORT_STATUS_MASK_MASTER = 0x7;
+ private static final long SET_FLOW_REMOVED_MASK_EQUAL = 0x0;
+ private static final long SET_PACKET_IN_MASK_EQUAL = 0x0;
+ private static final long SET_PORT_STATUS_MASK_EQUAL = 0x7;
+ private static final long SET_ALL_SLAVE = 0x0;
+
+ private static final long TEST_FLOW_REMOVED_MASK = 0xf;
+ private static final long TEST_PACKET_IN_MASK = 0x7;
+ private static final long TEST_PORT_STATUS_MASK = 0x7;
+ private long barrierXidToWaitFor = -1;
+
+ private static final int TABLE_VLAN = 0;
+ private static final int TABLE_TMAC = 1;
+ private static final int TABLE_IPV4_UNICAST = 2;
+ private static final int TABLE_MPLS = 3;
+ private static final int TABLE_META = 4;
+ private static final int TABLE_ACL = 5;
+
+ private static final short MAX_PRIORITY = (short) 0xffff;
+ private static final short SLASH_24_PRIORITY = (short) 0xfff0;
+ private static final short MIN_PRIORITY = 0x0;
+ private static final U64 METADATA_MASK = U64.of(Long.MAX_VALUE << 1 | 0x1);
+
+ private final Map<Integer, OFGroup> l2groups;
+
+ private final boolean usePipeline13;
+
+ public OFSwitchImplCPqD13(Dpid dpid, OFDescStatsReply desc, boolean usePipeline13) {
+ super(dpid);
+ driverHandshakeComplete = new AtomicBoolean(false);
+ l2groups = new ConcurrentHashMap<Integer, OFGroup>();
+ setSwitchDescription(desc);
+
+ this.usePipeline13 = usePipeline13;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ return "OFSwitchImplCPqD13 [" + ((channel != null)
+ ? channel.getRemoteAddress() : "?")
+ + " DPID[" + ((this.getStringId() != null) ? this.getStringId() : "?") + "]]";
+ }
+
+ @Override
+ public void startDriverHandshake() {
+ log.debug("Starting driver handshake for sw {}", getStringId());
+ if (startDriverHandshakeCalled) {
+ throw new SwitchDriverSubHandshakeAlreadyStarted();
+ }
+ startDriverHandshakeCalled = true;
+ factory = this.factory();
+ if (!usePipeline13) {
+ // Send packet-in to controller if a packet misses the first table
+ populateTableMissEntry(0, true, false, false, 0);
+ } //else {
+ // configureSwitch();
+ //}
+ sendBarrier(true);
+ }
+
+ @Override
+ public boolean isDriverHandshakeComplete() {
+ if (!startDriverHandshakeCalled) {
+ throw new SwitchDriverSubHandshakeNotStarted();
+ }
+ return driverHandshakeComplete.get();
+ }
+
+ @Override
+ public void processDriverHandshakeMessage(OFMessage m) {
+ if (!startDriverHandshakeCalled || !startDriverHandshakeCalled) {
+ throw new SwitchDriverSubHandshakeNotStarted();
+ }
+ if (driverHandshakeComplete.get()) {
+ throw new SwitchDriverSubHandshakeCompleted(m);
+ }
+
+ switch (m.getType()) {
+ case BARRIER_REPLY:
+ if (m.getXid() == barrierXidToWaitFor) {
+ driverHandshakeComplete.set(true);
+ }
+ break;
+
+ case ERROR:
+ log.error("Switch {} Error {}", getStringId(), m);
+ break;
+
+ case GET_ASYNC_REPLY:
+ OFAsyncGetReply asrep = (OFAsyncGetReply) m;
+ decodeAsyncGetReply(asrep);
+ break;
+ case STATS_REPLY:
+ processStatsReply((OFStatsReply) m);
+ break;
+ case PACKET_IN:
+ case PORT_STATUS:
+ case QUEUE_GET_CONFIG_REPLY:
+ case ROLE_REPLY:
+ case FEATURES_REPLY:
+ case FLOW_REMOVED:
+ break;
+
+ default:
+ log.debug("Received message {} during switch-driver subhandshake "
+ + "from switch {} ... Ignoring message", m, getStringId());
+
+ }
+ }
+
+ private void configureSwitch() throws IOException {
+ // setAsyncConfig();
+ // getTableFeatures();
+ sendGroupFeaturesRequest();
+ setL2Groups();
+ sendBarrier(false);
+ setL3Groups();
+ setL25Groups();
+ sendGroupDescRequest();
+ populateTableVlan();
+ populateTableTMac();
+ populateIpTable();
+ populateMplsTable();
+ populateTableMissEntry(TABLE_ACL, false, false, false, -1);
+ sendBarrier(true);
+ }
+
+ private void setAsyncConfig() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>(3);
+ OFMessage setAC = null;
+
+ if (role == RoleState.MASTER) {
+ setAC = factory.buildAsyncSet()
+ .setFlowRemovedMaskEqualMaster(SET_FLOW_REMOVED_MASK_MASTER)
+ .setPacketInMaskEqualMaster(SET_PACKET_IN_MASK_MASTER)
+ .setPortStatusMaskEqualMaster(SET_PORT_STATUS_MASK_MASTER)
+ .setFlowRemovedMaskSlave(SET_ALL_SLAVE)
+ .setPacketInMaskSlave(SET_ALL_SLAVE)
+ .setPortStatusMaskSlave(SET_ALL_SLAVE)
+ .setXid(getNextTransactionId())
+ .build();
+ } else if (role == RoleState.EQUAL) {
+ setAC = factory.buildAsyncSet()
+ .setFlowRemovedMaskEqualMaster(SET_FLOW_REMOVED_MASK_EQUAL)
+ .setPacketInMaskEqualMaster(SET_PACKET_IN_MASK_EQUAL)
+ .setPortStatusMaskEqualMaster(SET_PORT_STATUS_MASK_EQUAL)
+ .setFlowRemovedMaskSlave(SET_ALL_SLAVE)
+ .setPacketInMaskSlave(SET_ALL_SLAVE)
+ .setPortStatusMaskSlave(SET_ALL_SLAVE)
+ .setXid(getNextTransactionId())
+ .build();
+ }
+ msglist.add(setAC);
+
+ OFMessage br = factory.buildBarrierRequest()
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(br);
+
+ OFMessage getAC = factory.buildAsyncGetRequest()
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(getAC);
+
+ sendMsg(msglist);
+ }
+
+ private void decodeAsyncGetReply(OFAsyncGetReply rep) {
+ long frm = rep.getFlowRemovedMaskEqualMaster();
+ //long frs = rep.getFlowRemovedMaskSlave();
+ long pim = rep.getPacketInMaskEqualMaster();
+ //long pis = rep.getPacketInMaskSlave();
+ long psm = rep.getPortStatusMaskEqualMaster();
+ //long pss = rep.getPortStatusMaskSlave();
+
+ if (role == RoleState.MASTER || role == RoleState.EQUAL) { // should separate
+ log.info("FRM:{}", HexString.toHexString((frm & TEST_FLOW_REMOVED_MASK)));
+ log.info("PIM:{}", HexString.toHexString((pim & TEST_PACKET_IN_MASK)));
+ log.info("PSM:{}", HexString.toHexString((psm & TEST_PORT_STATUS_MASK)));
+ }
+
+ }
+
+ private void getTableFeatures() throws IOException {
+ OFMessage gtf = factory.buildTableFeaturesStatsRequest()
+ .setXid(getNextTransactionId())
+ .build();
+ sendMsg(gtf);
+ }
+
+ private void sendGroupFeaturesRequest() throws IOException {
+ OFMessage gfr = factory.buildGroupFeaturesStatsRequest()
+ .setXid(getNextTransactionId())
+ .build();
+ sendMsg(gfr);
+ }
+
+ private void sendGroupDescRequest() throws IOException {
+ OFMessage gdr = factory.buildGroupDescStatsRequest()
+ .setXid(getNextTransactionId())
+ .build();
+ sendMsg(gdr);
+ }
+
+ /*Create L2 interface groups for all physical ports
+ Naming convention followed is the same as OF-DPA spec
+ eg. port 1 with allowed vlan 10, is enveloped in group with id,
+ 0x0 00a 0001, where the uppermost 4 bits identify an L2 interface,
+ the next 12 bits identify the vlan-id, and the lowermost 16 bits
+ identify the port number.*/
+ private void setL2Groups() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ for (OFPortDesc p : getPorts()) {
+ int pnum = p.getPortNo().getPortNumber();
+ int portVlan = getVlanConfig(pnum);
+ if (U32.of(pnum).compareTo(U32.of(OFPort.MAX.getPortNumber())) < 1) {
+ OFGroup gl2 = OFGroup.of(pnum | (portVlan << VLAN_ID_OFFSET));
+ OFAction out = factory.actions().buildOutput()
+ .setPort(p.getPortNo()).build();
+ OFAction popVlan = factory.actions().popVlan();
+ List<OFAction> actions = new ArrayList<OFAction>();
+ actions.add(popVlan);
+ actions.add(out);
+ OFBucket bucket = factory.buildBucket()
+ .setActions(actions).build();
+ List<OFBucket> buckets = Collections.singletonList(bucket);
+ OFMessage gmAdd = factory.buildGroupAdd()
+ .setGroup(gl2)
+ .setBuckets(buckets)
+ .setGroupType(OFGroupType.INDIRECT)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(gmAdd);
+ l2groups.put(pnum, gl2);
+ }
+ }
+ log.debug("Creating {} L2 groups in sw {}", msglist.size(), getStringId());
+ sendMsg(msglist);
+ }
+
+ private int getVlanConfig(int portnum) {
+ int portVlan = 10 * portnum;
+ if ((getId() == 0x1 && portnum == 6) ||
+ (getId() == 0x2) ||
+ (getId() == 0x3 && portnum == 2)) {
+ portVlan = 192; // 0xc0
+ }
+ return portVlan;
+ }
+
+ private MacAddress getRouterMacAddr() {
+ if (getId() == 0x3) {
+ return MacAddress.of("00:00:07:07:07:80"); // router mac
+ }
+ if (getId() == 0x1) {
+ return MacAddress.of("00:00:01:01:01:80");
+ }
+ // switch 0x2
+ return MacAddress.of("00:00:02:02:02:80");
+ }
+
+ // only for ports connected to other routers
+ private OFAction getDestAction(int portnum) {
+ OFAction setDA = null;
+ MacAddress dAddr = null;
+ if (getId() == 0x1 && portnum == 6) { // connected to switch 2
+ dAddr = MacAddress.of("00:00:02:02:02:80");
+ }
+ if (getId() == 0x2) {
+ if (portnum == 1) { // connected to sw 1
+ dAddr = MacAddress.of("00:00:01:01:01:80");
+ } else if (portnum == 2) { // connected to sw 3
+ dAddr = MacAddress.of("00:00:07:07:07:80");
+ }
+ }
+ if (getId() == 0x3) {
+ if (portnum == 2) { // connected to switch 2
+ dAddr = MacAddress.of("00:00:02:02:02:80");
+ }
+ }
+
+ if (dAddr != null) {
+ OFOxmEthDst dstAddr = factory.oxms().ethDst(dAddr);
+ setDA = factory.actions().buildSetField()
+ .setField(dstAddr).build();
+ }
+ return setDA;
+ }
+
+ /*
+ * L3 groups are created for all router ports and they all point to corresponding
+ * L2 groups. Only the ports that connect to other routers will have the
+ * DA set.
+ */
+ private void setL3Groups() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ for (OFGroup gl2 : l2groups.values()) {
+ int gnum = gl2.getGroupNumber();
+ int portnum = gnum & 0x0000ffff;
+ int vlanid = ((gnum & 0x0fff0000) >> VLAN_ID_OFFSET);
+ MacAddress sAddr = getRouterMacAddr();
+
+ OFGroup gl3 = OFGroup.of(0x20000000 | portnum);
+ OFAction group = factory.actions().buildGroup()
+ .setGroup(gl2).build();
+ OFOxmEthSrc srcAddr = factory.oxms().ethSrc(sAddr);
+ OFAction setSA = factory.actions().buildSetField()
+ .setField(srcAddr).build();
+ OFOxmVlanVid vid = factory.oxms().vlanVid(OFVlanVidMatch.ofVlan(vlanid));
+ OFAction setVlan = factory.actions().buildSetField()
+ .setField(vid).build();
+ OFAction decTtl = factory.actions().decNwTtl();
+
+ List<OFAction> actions = new ArrayList<OFAction>();
+ actions.add(decTtl); // decrement the IP TTL/do-checksum/check TTL
+ // and MTU
+ actions.add(setVlan); // set the vlan-id of the exit-port (and
+ // l2group)
+ actions.add(setSA); // set this routers mac address
+ // make L3Unicast group setDA for known (configured) ports
+ // that connect to other routers
+ OFAction setDA = getDestAction(portnum);
+ if (setDA != null) {
+ actions.add(setDA);
+ }
+ actions.add(group);
+
+ OFBucket bucket = factory.buildBucket()
+ .setActions(actions).build();
+ List<OFBucket> buckets = Collections.singletonList(bucket);
+ OFMessage gmAdd = factory.buildGroupAdd()
+ .setGroup(gl3)
+ .setBuckets(buckets)
+ .setGroupType(OFGroupType.INDIRECT)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(gmAdd);
+ }
+ sendMsg(msglist);
+ log.debug("Creating {} L3 groups in sw {}", msglist.size(), getStringId());
+ }
+
+ /*
+ * L2.5 or mpls-unicast groups are only created for those router ports
+ * connected to other router ports. They differ from the corresponding
+ * L3-unicast group only by the fact that they decrement the MPLS TTL
+ * instead of the IP ttl
+ */
+ private void setL25Groups() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ for (OFGroup gl2 : l2groups.values()) {
+ int gnum = gl2.getGroupNumber();
+ int portnum = gnum & 0x0000ffff;
+ int vlanid = ((gnum & 0x0fff0000) >> VLAN_ID_OFFSET);
+ MacAddress sAddr = getRouterMacAddr();
+ OFAction setDA = getDestAction(portnum);
+ // setDA will only be non-null for ports connected to routers
+ if (setDA != null) {
+ OFGroup gl3 = OFGroup.of(0xa0000000 | portnum); // different id
+ // for mpls
+ // group
+ OFAction group = factory.actions().buildGroup()
+ .setGroup(gl2).build();
+ OFOxmEthSrc srcAddr = factory.oxms().ethSrc(sAddr);
+ OFAction setSA = factory.actions().buildSetField()
+ .setField(srcAddr).build();
+ OFOxmVlanVid vid = factory.oxms().vlanVid(OFVlanVidMatch.ofVlan(vlanid));
+ OFAction setVlan = factory.actions().buildSetField()
+ .setField(vid).build();
+ OFAction decMplsTtl = factory.actions().decMplsTtl();
+ List<OFAction> actions = new ArrayList<OFAction>();
+ actions.add(decMplsTtl); // decrement the MPLS
+ // TTL/do-checksum/check TTL and MTU
+ actions.add(setVlan); // set the vlan-id of the exit-port (and
+ // l2group)
+ actions.add(setSA); // set this routers mac address
+ actions.add(setDA);
+ actions.add(group);
+ OFBucket bucket = factory.buildBucket()
+ .setActions(actions).build();
+ List<OFBucket> buckets = Collections.singletonList(bucket);
+ OFMessage gmAdd = factory.buildGroupAdd()
+ .setGroup(gl3)
+ .setBuckets(buckets)
+ .setGroupType(OFGroupType.INDIRECT)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(gmAdd);
+ }
+ }
+ sendMsg(msglist);
+ log.debug("Creating {} MPLS groups in sw {}", msglist.size(), getStringId());
+ }
+
+ /* Using ECMP groups
+ *
+ * OFGroup group47 = OFGroup.of(47);
+ OFAction outgroup1 = factory.actions()
+ .buildGroup()
+ .setGroup(group61)
+ .build();
+ OFBucket buc47_1 = factory.buildBucket()
+ .setWeight(1)
+ .setActions(Collections.singletonList(outgroup1))
+ .build();
+ OFAction outgroup2 = factory.actions()
+ .buildGroup()
+ .setGroup(group62)
+ .build();
+ OFBucket buc47_2 = factory.buildBucket()
+ .setWeight(1)
+ .setActions(Collections.singletonList(outgroup2))
+ .build();
+ List<OFBucket> buckets47 = new ArrayList<OFBucket>();
+ buckets47.add(buc47_1);
+ buckets47.add(buc47_2);
+ OFMessage gmS12 = factory.buildGroupAdd()
+ .setGroup(group47)
+ .setBuckets(buckets47)
+ .setGroupType(OFGroupType.SELECT)
+ .setXid(getNextTransactionId())
+ .build();
+ write(gmS12, null); */
+
+ private void processStatsReply(OFStatsReply sr) {
+ switch (sr.getStatsType()) {
+ case AGGREGATE:
+ break;
+ case DESC:
+ break;
+ case EXPERIMENTER:
+ break;
+ case FLOW:
+ break;
+ case GROUP_DESC:
+ processGroupDesc((OFGroupDescStatsReply) sr);
+ break;
+ case GROUP_FEATURES:
+ processGroupFeatures((OFGroupFeaturesStatsReply) sr);
+ break;
+ case METER_CONFIG:
+ break;
+ case METER_FEATURES:
+ break;
+ case PORT_DESC:
+ break;
+ case TABLE_FEATURES:
+ break;
+ default:
+ break;
+
+ }
+ }
+
+ private void processGroupFeatures(OFGroupFeaturesStatsReply gfsr) {
+ log.info("Sw: {} Group Features {}", getStringId(), gfsr);
+ }
+
+ private void processGroupDesc(OFGroupDescStatsReply gdsr) {
+ log.info("Sw: {} Group Desc {}", getStringId(), gdsr);
+ }
+
+ private void populateTableVlan() throws IOException {
+ // for all incoming ports assign configured port-vlans
+ // currently assign portnum*10 -> vlanid to access ports
+ // and vlan 192 to router to router ports
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ for (OFPortDesc p : getPorts()) {
+ int pnum = p.getPortNo().getPortNumber();
+ if (U32.of(pnum).compareTo(U32.of(OFPort.MAX.getPortNumber())) < 1) {
+ int vlanid = getVlanConfig(pnum);
+ OFOxmInPort oxp = factory.oxms().inPort(p.getPortNo());
+ OFOxmVlanVid oxv = factory.oxms()
+ .vlanVid(OFVlanVidMatch.UNTAGGED);
+ OFOxmList oxmList = OFOxmList.of(oxp, oxv);
+ OFMatchV3 match = factory.buildMatchV3()
+ .setOxmList(oxmList).build();
+ OFOxmVlanVid vidToSet = factory.oxms()
+ .vlanVid(OFVlanVidMatch.ofVlan(vlanid));
+ OFAction pushVlan = factory.actions().pushVlan(EthType.VLAN_FRAME);
+ OFAction setVlan = factory.actions().setField(vidToSet);
+ List<OFAction> actionlist = new ArrayList<OFAction>();
+ actionlist.add(pushVlan);
+ actionlist.add(setVlan);
+ OFInstruction appAction = factory.instructions().buildApplyActions()
+ .setActions(actionlist).build();
+ OFInstruction gotoTbl = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_TMAC)).build();
+ List<OFInstruction> instructions = new ArrayList<OFInstruction>();
+ instructions.add(appAction);
+ instructions.add(gotoTbl);
+ OFMessage flowEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_VLAN))
+ .setMatch(match)
+ .setInstructions(instructions)
+ .setPriority(1000) // does not matter - all rules
+ // exclusive
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(flowEntry);
+ }
+ }
+ // table-vlan has no table-miss entry, and so packets that miss are
+ // essentially dropped
+ sendMsg(msglist);
+ log.debug("Adding {} vlan-rules in sw {}", msglist.size(), getStringId());
+ }
+
+ private void populateTableTMac() throws IOException {
+ // match for ip packets
+ OFOxmEthType oxe = factory.oxms().ethType(EthType.IPv4);
+ OFOxmList oxmListIp = OFOxmList.of(oxe);
+ OFMatchV3 matchIp = factory.buildMatchV3()
+ .setOxmList(oxmListIp).build();
+ OFInstruction gotoTblIp = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_IPV4_UNICAST)).build();
+ List<OFInstruction> instructionsIp = Collections.singletonList(gotoTblIp);
+ OFMessage ipEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_TMAC))
+ .setMatch(matchIp)
+ .setInstructions(instructionsIp)
+ .setPriority(1000) // strict priority required lower than
+ // multicastMac
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+
+ // match for mpls packets
+ OFOxmEthType oxmpls = factory.oxms().ethType(EthType.MPLS_UNICAST);
+ OFOxmList oxmListMpls = OFOxmList.of(oxmpls);
+ OFMatchV3 matchMpls = factory.buildMatchV3()
+ .setOxmList(oxmListMpls).build();
+ OFInstruction gotoTblMpls = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_MPLS)).build();
+ List<OFInstruction> instructionsMpls = Collections.singletonList(gotoTblMpls);
+ OFMessage mplsEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_TMAC))
+ .setMatch(matchMpls)
+ .setInstructions(instructionsMpls)
+ .setPriority(1001) // strict priority required lower than
+ // multicastMac
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+
+ // match for everything else to send to controller. Essentially
+ // the table miss flow entry
+ populateTableMissEntry(TABLE_TMAC, true, false, false, -1);
+ log.debug("Adding termination-mac-rules in sw {}", getStringId());
+ List<OFMessage> msglist = new ArrayList<OFMessage>(2);
+ msglist.add(ipEntry);
+ msglist.add(mplsEntry);
+ sendMsg(msglist);
+ }
+
+ private List<String> getMyIps() { // send to controller
+ List<String> myIps = new ArrayList<String>();
+ if (getId() == 0x1) {
+ myIps.add("10.0.2.128");
+ myIps.add("10.0.3.128");
+ myIps.add("10.0.1.128");
+ myIps.add("192.168.0.1");
+ }
+ if (getId() == 0x2) {
+ myIps.add("192.168.0.2");
+ }
+ if (getId() == 0x3) {
+ myIps.add("192.168.0.3");
+ myIps.add("7.7.7.128");
+ }
+ return myIps;
+ }
+
+ private List<String> getMySubnetIps() { // send to controller
+ List<String> subnetIps = new ArrayList<String>();
+ if (getId() == 0x1) {
+ subnetIps.add("10.0.2.0");
+ subnetIps.add("10.0.3.0");
+ subnetIps.add("10.0.1.0");
+ }
+ // TODO needed?
+ //if (getId() == 0x2) {
+ //}
+ if (getId() == 0x3) {
+ subnetIps.add("7.7.7.0");
+ }
+ return subnetIps;
+ }
+
+ private static class RouteEntry {
+ String prefix;
+ String mask;
+ int nextHopPort;
+ String dstMac;
+ int label;
+
+ public RouteEntry(String prefix, String mask, int nextHopPort, int label) {
+ this.prefix = prefix;
+ this.mask = mask;
+ this.nextHopPort = nextHopPort;
+ this.label = label;
+ }
+
+ public RouteEntry(String prefix, int nextHopPort, String dstMac) {
+ this.prefix = prefix;
+ this.nextHopPort = nextHopPort;
+ this.dstMac = dstMac;
+ }
+ }
+
+ // send out of mpls-group where the next-hop mac-da is already set
+ private List<RouteEntry> getRouterNextHopIps() {
+ List<RouteEntry> routerNextHopIps = new ArrayList<RouteEntry>();
+ if (getId() == 0x1) {
+ routerNextHopIps
+ .add(new RouteEntry("192.168.0.2", "255.255.255.255", 6, 102));
+ routerNextHopIps
+ .add(new RouteEntry("192.168.0.3", "255.255.255.255", 6, 103));
+ routerNextHopIps.add(new RouteEntry("7.7.7.0", "255.255.255.0", 6, 103));
+ }
+ //if (getId() == 0x2) {
+ /* These are required for normal IP routing without labels.
+ routerNextHopIps.add(new RouteEntry("192.168.0.1","255.255.255.255",1));
+ routerNextHopIps.add(new RouteEntry("192.168.0.3","255.255.255.255",2));
+ routerNextHopIps.add(new RouteEntry("10.0.1.0","255.255.255.0",1));
+ routerNextHopIps.add(new RouteEntry("10.0.2.0","255.255.255.0",1));
+ routerNextHopIps.add(new RouteEntry("10.0.3.0","255.255.255.0",1));
+ routerNextHopIps.add(new RouteEntry("7.7.7.0","255.255.255.0",2));*/
+ //}
+ if (getId() == 0x3) {
+ routerNextHopIps
+ .add(new RouteEntry("192.168.0.2", "255.255.255.255", 2, 102));
+ routerNextHopIps
+ .add(new RouteEntry("192.168.0.1", "255.255.255.255", 2, 101));
+ routerNextHopIps.add(new RouteEntry("10.0.1.0", "255.255.255.0", 2, 101));
+ routerNextHopIps.add(new RouteEntry("10.0.2.0", "255.255.255.0", 2, 101));
+ routerNextHopIps.add(new RouteEntry("10.0.3.0", "255.255.255.0", 2, 101));
+ }
+ return routerNextHopIps;
+ }
+
+ // known host mac-addr, setDA/send out of l3group
+ private List<RouteEntry> getHostNextHopIps() {
+ List<RouteEntry> hostNextHopIps = new ArrayList<RouteEntry>();
+ if (getId() == 0x1) {
+ hostNextHopIps.add(new RouteEntry("10.0.2.1", 4, "00:00:00:00:02:01"));
+ hostNextHopIps.add(new RouteEntry("10.0.3.1", 5, "00:00:00:00:03:01"));
+ }
+ // TODO needed?
+ //if (getId() == 0x2) {
+ //}
+ if (getId() == 0x3) {
+ hostNextHopIps.add(new RouteEntry("7.7.7.7", 1, "00:00:07:07:07:07"));
+ }
+ return hostNextHopIps;
+ }
+
+ private void populateIpTable() throws IOException {
+ populateMyIps();
+ populateMySubnets();
+ populateRoutes();
+ populateHostRoutes();
+
+ // match for everything else to send to ACL table. Essentially
+ // the table miss flow entry
+ populateTableMissEntry(TABLE_IPV4_UNICAST, false, true,
+ true, TABLE_ACL);
+ }
+
+ private void populateMyIps() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ // first all my ip's as exact-matches
+ // write-action instruction to send to controller
+ List<String> myIps = getMyIps();
+ for (int i = 0; i < myIps.size(); i++) {
+ OFOxmEthType ethTypeIp = factory.oxms()
+ .ethType(EthType.IPv4);
+ OFOxmIpv4DstMasked ipPrefix = factory.oxms()
+ .ipv4DstMasked(IPv4Address.of(myIps.get(i)), IPv4Address.NO_MASK);
+ OFOxmList oxmListSlash32 = OFOxmList.of(ethTypeIp, ipPrefix);
+ OFMatchV3 match = factory.buildMatchV3()
+ .setOxmList(oxmListSlash32).build();
+ OFAction outc = factory.actions().buildOutput()
+ .setPort(OFPort.CONTROLLER).setMaxLen(OFPCML_NO_BUFFER)
+ .build();
+ OFInstruction writeInstr = factory.instructions().buildWriteActions()
+ .setActions(Collections.singletonList(outc)).build();
+ OFInstruction gotoInstr = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_ACL)).build();
+ List<OFInstruction> instructions = new ArrayList<OFInstruction>();
+ instructions.add(writeInstr);
+ instructions.add(gotoInstr);
+ OFMessage myIpEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_IPV4_UNICAST))
+ .setMatch(match)
+ .setInstructions(instructions)
+ .setPriority(MAX_PRIORITY) // highest priority for exact
+ // match
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(myIpEntry);
+ }
+ sendMsg(msglist);
+ log.debug("Adding {} my-ip-rules in sw {}", msglist.size(), getStringId());
+ }
+
+ private void populateMySubnets() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ // next prefix-based subnet-IP's configured on my interfaces
+ // need to ARP for exact-IP, so write-action instruction to send to
+ // controller
+ // this has different mask and priority than earlier case
+ List<String> subnetIps = getMySubnetIps();
+ for (int i = 0; i < subnetIps.size(); i++) {
+ OFOxmEthType ethTypeIp = factory.oxms()
+ .ethType(EthType.IPv4);
+ OFOxmIpv4DstMasked ipPrefix = factory.oxms().ipv4DstMasked(
+ IPv4Address.of(subnetIps.get(i)),
+ IPv4Address.of(0xffffff00)); // '/24' mask
+ OFOxmList oxmListSlash24 = OFOxmList.of(ethTypeIp, ipPrefix);
+ OFMatchV3 match = factory.buildMatchV3()
+ .setOxmList(oxmListSlash24).build();
+ OFAction outc = factory.actions().buildOutput()
+ .setPort(OFPort.CONTROLLER).setMaxLen(OFPCML_NO_BUFFER)
+ .build();
+ OFInstruction writeInstr = factory.instructions().buildWriteActions()
+ .setActions(Collections.singletonList(outc)).build();
+ OFInstruction gotoInstr = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_ACL)).build();
+ List<OFInstruction> instructions = new ArrayList<OFInstruction>();
+ instructions.add(writeInstr);
+ instructions.add(gotoInstr);
+ OFMessage myIpEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_IPV4_UNICAST))
+ .setMatch(match)
+ .setInstructions(instructions)
+ .setPriority(SLASH_24_PRIORITY)
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(myIpEntry);
+ }
+ sendMsg(msglist);
+ log.debug("Adding {} subnet-ip-rules in sw {}", msglist.size(), getStringId());
+ msglist.clear();
+ }
+
+ private void populateRoutes() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ // addresses where I know the next-hop's mac-address because it is a
+ // router port - so I have an L3 interface to it (and an MPLS interface)
+ List<RouteEntry> routerNextHopIps = getRouterNextHopIps();
+ for (int i = 0; i < routerNextHopIps.size(); i++) {
+ OFOxmEthType ethTypeIp = factory.oxms()
+ .ethType(EthType.IPv4);
+ OFOxmIpv4DstMasked ipPrefix = factory.oxms()
+ .ipv4DstMasked(
+ IPv4Address.of(routerNextHopIps.get(i).prefix),
+ IPv4Address.of(routerNextHopIps.get(i).mask)
+ );
+ OFOxmList oxmListSlash32 = OFOxmList.of(ethTypeIp, ipPrefix);
+ OFMatchV3 match = factory.buildMatchV3()
+ .setOxmList(oxmListSlash32).build();
+ OFAction outg = factory.actions().buildGroup()
+ .setGroup(OFGroup.of(0xa0000000 | // mpls group id
+ routerNextHopIps.get(i).nextHopPort))
+ .build();
+ // lots of actions before forwarding to mpls group, and
+ // unfortunately
+ // they need to be apply-actions
+
+ OFAction pushlabel = factory.actions().pushMpls(EthType.MPLS_UNICAST);
+ OFOxmMplsLabel l = factory.oxms()
+ .mplsLabel(U32.of(routerNextHopIps.get(i).label));
+ OFAction setlabelid = factory.actions().buildSetField()
+ .setField(l).build();
+ OFAction copyTtlOut = factory.actions().copyTtlOut();
+ // OFAction setBos =
+ // factory.actions().buildSetField().setField(bos).build();
+
+ /*
+ writeActions.add(pushlabel); // need to be apply actions so can be
+ writeActions.add(copyTtlOut); // matched in pseudo-table
+ //writeActions.add(setlabelid); // bad support in cpqd
+ //writeActions.add(setBos); no support in loxigen
+ */
+
+ List<OFAction> applyActions = new ArrayList<OFAction>();
+ applyActions.add(pushlabel);
+ applyActions.add(copyTtlOut);
+ OFInstruction applyInstr = factory.instructions().buildApplyActions()
+ .setActions(applyActions).build();
+ List<OFAction> writeActions = new ArrayList<OFAction>();
+ writeActions.add(outg); // group will decr mpls-ttl, set mac-sa/da,
+ // vlan
+ OFInstruction writeInstr = factory.instructions().buildWriteActions()
+ .setActions(writeActions).build();
+
+ // necessary to match in pseudo-table to overcome cpqd 1.3 flaw
+ OFInstruction writeMeta = factory.instructions().buildWriteMetadata()
+ .setMetadata(U64.of(routerNextHopIps.get(i).label))
+ .setMetadataMask(METADATA_MASK).build();
+ /*OFInstruction gotoInstr = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_ACL)).build();*/
+ OFInstruction gotoInstr = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_META)).build();
+ List<OFInstruction> instructions = new ArrayList<OFInstruction>();
+ instructions.add(applyInstr);
+ // instructions.add(writeInstr);// cannot write here - causes switch
+ // to crash
+ instructions.add(writeMeta);
+ instructions.add(gotoInstr);
+
+ int priority = -1;
+ if (routerNextHopIps.get(i).mask.equals("255.255.255.255")) {
+ priority = MAX_PRIORITY;
+ } else {
+ priority = SLASH_24_PRIORITY;
+ }
+ OFMessage myIpEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_IPV4_UNICAST))
+ .setMatch(match)
+ .setInstructions(instructions)
+ .setPriority(priority)
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(myIpEntry);
+
+ // need to also handle psuedo-table entries to match-metadata and
+ // set mpls
+ // label-id
+ OFOxmEthType ethTypeMpls = factory.oxms()
+ .ethType(EthType.MPLS_UNICAST);
+ OFOxmMetadataMasked meta = factory.oxms()
+ .metadataMasked(
+ OFMetadata.ofRaw(routerNextHopIps.get(i).label),
+ OFMetadata.NO_MASK);
+ OFOxmList oxmListMeta = OFOxmList.of(ethTypeMpls, meta);
+ OFMatchV3 matchMeta = factory.buildMatchV3()
+ .setOxmList(oxmListMeta).build();
+ List<OFAction> writeActions2 = new ArrayList<OFAction>();
+ writeActions2.add(setlabelid);
+ OFAction outg2 = factory.actions().buildGroup()
+ .setGroup(OFGroup.of(routerNextHopIps.get(i).nextHopPort |
+ (192 << VLAN_ID_OFFSET)))
+ .build();
+ writeActions2.add(outg2);
+ OFInstruction writeInstr2 = factory.instructions().buildWriteActions()
+ .setActions(writeActions2).build();
+ OFInstruction gotoInstr2 = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_ACL)).build();
+ List<OFInstruction> instructions2 = new ArrayList<OFInstruction>();
+ // unfortunately have to apply this action too
+ OFInstruction applyInstr2 = factory.instructions().buildApplyActions()
+ .setActions(writeActions2).build();
+ instructions2.add(applyInstr2);
+ // instructions2.add(writeInstr2);
+ // instructions2.add(gotoInstr2);
+
+ /*OFMatchV3 match3 = factory.buildMatchV3()
+ .setOxmList(OFOxmList.of(meta)).build();
+ OFInstruction clearInstruction = factory.instructions().clearActions();
+ List<OFInstruction> instructions3 = new ArrayList<OFInstruction>();
+ OFAction outc = factory.actions().buildOutput()
+ .setPort(OFPort.CONTROLLER).setMaxLen(OFPCML_NO_BUFFER)
+ .build();
+ OFInstruction writec = factory.instructions()
+ .writeActions(Collections.singletonList(outc));
+ instructions3.add(clearInstruction);
+ instructions3.add(writec);
+ instructions3.add(gotoInstr2); */
+ OFMessage myMetaEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_META))
+ .setMatch(matchMeta)
+ .setInstructions(instructions2)
+ .setPriority(MAX_PRIORITY)
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(myMetaEntry);
+
+ }
+ sendMsg(msglist);
+ log.debug("Adding {} next-hop-router-rules in sw {}", msglist.size(),
+ getStringId());
+
+ // add a table-miss entry to table 4 for debugging - leave it out
+ // unclear packet state - causes switch to crash
+ // populateTableMissEntry(TABLE_META, false, true,
+ // true, TABLE_ACL);
+ }
+
+ private void populateHostRoutes() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ // addresses where I know the next hop's mac-address and I can set the
+ // destination mac in the match-instruction.write-action
+ // either I sent out arp-request or I got an arp-request from this host
+ List<RouteEntry> hostNextHopIps = getHostNextHopIps();
+ for (int i = 0; i < hostNextHopIps.size(); i++) {
+ OFOxmEthType ethTypeIp = factory.oxms()
+ .ethType(EthType.IPv4);
+ OFOxmIpv4DstMasked ipPrefix = factory.oxms()
+ .ipv4DstMasked(
+ IPv4Address.of(hostNextHopIps.get(i).prefix),
+ IPv4Address.NO_MASK); // host addr should be /32
+ OFOxmList oxmListSlash32 = OFOxmList.of(ethTypeIp, ipPrefix);
+ OFMatchV3 match = factory.buildMatchV3()
+ .setOxmList(oxmListSlash32).build();
+ OFAction setDmac = null, outg = null;
+ OFOxmEthDst dmac = factory.oxms()
+ .ethDst(MacAddress.of(hostNextHopIps.get(i).dstMac));
+ setDmac = factory.actions().buildSetField()
+ .setField(dmac).build();
+ outg = factory.actions().buildGroup()
+ .setGroup(OFGroup.of(0x20000000 | hostNextHopIps.get(i).nextHopPort)) // l3group
+ // id
+ .build();
+ List<OFAction> writeActions = new ArrayList<OFAction>();
+ writeActions.add(setDmac);
+ writeActions.add(outg);
+ OFInstruction writeInstr = factory.instructions().buildWriteActions()
+ .setActions(writeActions).build();
+ OFInstruction gotoInstr = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_ACL)).build();
+ List<OFInstruction> instructions = new ArrayList<OFInstruction>();
+ instructions.add(writeInstr);
+ instructions.add(gotoInstr);
+ OFMessage myIpEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_IPV4_UNICAST))
+ .setMatch(match)
+ .setInstructions(instructions)
+ .setPriority(MAX_PRIORITY) // highest priority for exact
+ // match
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(myIpEntry);
+ }
+ sendMsg(msglist);
+ log.debug("Adding {} next-hop-host-rules in sw {}", msglist.size(), getStringId());
+ }
+
+ private static class MplsEntry {
+ int labelid;
+ int portnum;
+
+ public MplsEntry(int labelid, int portnum) {
+ this.labelid = labelid;
+ this.portnum = portnum;
+ }
+ }
+
+ private List<MplsEntry> getMplsEntries() {
+ List<MplsEntry> myLabels = new ArrayList<MplsEntry>();
+ if (getId() == 0x1) {
+ myLabels.add(new MplsEntry(101, OFPort.CONTROLLER.getPortNumber()));
+ myLabels.add(new MplsEntry(103, 6));
+ }
+ if (getId() == 0x2) {
+ myLabels.add(new MplsEntry(103, 2));
+ myLabels.add(new MplsEntry(102, OFPort.CONTROLLER.getPortNumber()));
+ myLabels.add(new MplsEntry(101, 1));
+ }
+ if (getId() == 0x3) {
+ myLabels.add(new MplsEntry(103, OFPort.CONTROLLER.getPortNumber()));
+ myLabels.add(new MplsEntry(101, 2));
+ }
+ return myLabels;
+ }
+
+ private void populateMplsTable() throws IOException {
+ List<OFMessage> msglist = new ArrayList<OFMessage>();
+ List<MplsEntry> lfibEntries = getMplsEntries();
+ for (int i = 0; i < lfibEntries.size(); i++) {
+ OFOxmEthType ethTypeMpls = factory.oxms()
+ .ethType(EthType.MPLS_UNICAST);
+ OFOxmMplsLabel labelid = factory.oxms()
+ .mplsLabel(U32.of(lfibEntries.get(i).labelid));
+ OFOxmList oxmList = OFOxmList.of(ethTypeMpls, labelid);
+ OFMatchV3 matchlabel = factory.buildMatchV3()
+ .setOxmList(oxmList).build();
+ OFAction poplabel = factory.actions().popMpls(EthType.IPv4);
+ OFAction sendTo = null;
+ if (lfibEntries.get(i).portnum == OFPort.CONTROLLER.getPortNumber()) {
+ sendTo = factory.actions().output(OFPort.CONTROLLER,
+ OFPCML_NO_BUFFER);
+ } else {
+ sendTo = factory.actions().group(OFGroup.of(
+ 0xa0000000 | lfibEntries.get(i).portnum));
+ }
+ List<OFAction> writeActions = new ArrayList<OFAction>();
+ writeActions.add(poplabel);
+ writeActions.add(sendTo);
+ OFInstruction writeInstr = factory.instructions().buildWriteActions()
+ .setActions(writeActions).build();
+ OFInstruction gotoInstr = factory.instructions().buildGotoTable()
+ .setTableId(TableId.of(TABLE_ACL)).build();
+ List<OFInstruction> instructions = new ArrayList<OFInstruction>();
+ instructions.add(writeInstr);
+ instructions.add(gotoInstr);
+ OFMessage myMplsEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(TABLE_MPLS))
+ .setMatch(matchlabel)
+ .setInstructions(instructions)
+ .setPriority(MAX_PRIORITY) // exact match and exclusive
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ msglist.add(myMplsEntry);
+ }
+ sendMsg(msglist);
+ log.debug("Adding {} mpls-forwarding-rules in sw {}", msglist.size(),
+ getStringId());
+
+ // match for everything else to send to ACL table. Essentially
+ // the table miss flow entry
+ populateTableMissEntry(TABLE_MPLS, false, true,
+ true, TABLE_ACL);
+
+ }
+
+ /**
+ * By default if none of the booleans in the call are set, then the
+ * table-miss entry is added with no instructions, which means that pipeline
+ * execution will stop, and the action set associated with the packet will
+ * be executed.
+ *
+ * @param tableToAdd
+ * @param toControllerNow as an APPLY_ACTION instruction
+ * @param toControllerWrite as a WRITE_ACITION instruction
+ * @param toTable as a GOTO_TABLE instruction
+ * @param tableToSend
+ * @throws IOException
+ */
+ @SuppressWarnings("unchecked")
+ private void populateTableMissEntry(int tableToAdd, boolean toControllerNow,
+ boolean toControllerWrite,
+ boolean toTable, int tableToSend) {
+ OFOxmList oxmList = OFOxmList.EMPTY;
+ OFMatchV3 match = factory.buildMatchV3()
+ .setOxmList(oxmList)
+ .build();
+ OFAction outc = factory.actions()
+ .buildOutput()
+ .setPort(OFPort.CONTROLLER)
+ .setMaxLen(OFPCML_NO_BUFFER)
+ .build();
+ List<OFInstruction> instructions = new ArrayList<OFInstruction>();
+ if (toControllerNow) {
+ // table-miss instruction to send to controller immediately
+ OFInstruction instr = factory.instructions()
+ .buildApplyActions()
+ .setActions(Collections.singletonList(outc))
+ .build();
+ instructions.add(instr);
+ }
+
+ if (toControllerWrite) {
+ // table-miss instruction to write-action to send to controller
+ // this will be executed whenever the action-set gets executed
+ OFInstruction instr = factory.instructions()
+ .buildWriteActions()
+ .setActions(Collections.singletonList(outc))
+ .build();
+ instructions.add(instr);
+ }
+
+ if (toTable) {
+ // table-miss instruction to goto-table x
+ OFInstruction instr = factory.instructions()
+ .gotoTable(TableId.of(tableToSend));
+ instructions.add(instr);
+ }
+
+ if (!toControllerNow && !toControllerWrite && !toTable) {
+ // table-miss has no instruction - at which point action-set will be
+ // executed - if there is an action to output/group in the action
+ // set
+ // the packet will be sent there, otherwise it will be dropped.
+ instructions = Collections.EMPTY_LIST;
+ }
+
+ OFMessage tableMissEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(tableToAdd))
+ .setMatch(match) // match everything
+ .setInstructions(instructions)
+ .setPriority(MIN_PRIORITY)
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ sendMsg(tableMissEntry);
+ }
+
+ private void sendBarrier(boolean finalBarrier) {
+ int xid = getNextTransactionId();
+ if (finalBarrier) {
+ barrierXidToWaitFor = xid;
+ }
+ OFBarrierRequest br = factory
+ .buildBarrierRequest()
+ .setXid(xid)
+ .build();
+ sendMsg(br);
+ }
+
+ @Override
+ public Boolean supportNxRole() {
+ return false;
+ }
+
+ @Override
+ public void write(OFMessage msg) {
+ this.channel.write(msg);
+
+ }
+
+ @Override
+ public void write(List<OFMessage> msgs) {
+ this.channel.write(msgs);
+ }
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplOVS10.java b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplOVS10.java
new file mode 100644
index 0000000..0de661b
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplOVS10.java
@@ -0,0 +1,67 @@
+package org.onlab.onos.of.drivers.impl;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.onlab.onos.of.controller.Dpid;
+import org.onlab.onos.of.controller.driver.AbstractOpenFlowSwitch;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFPortDesc;
+
+/**
+ * OFDescriptionStatistics Vendor (Manufacturer Desc.): Nicira, Inc. Make
+ * (Hardware Desc.) : Open vSwitch Model (Datapath Desc.) : None Software :
+ * 1.11.90 (or whatever version + build) Serial : None
+ */
+public class OFSwitchImplOVS10 extends AbstractOpenFlowSwitch {
+
+ public OFSwitchImplOVS10(Dpid dpid, OFDescStatsReply desc) {
+ super(dpid);
+ setSwitchDescription(desc);
+
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ return "OFSwitchImplOVS10 [" + ((channel != null)
+ ? channel.getRemoteAddress() : "?")
+ + " DPID[" + ((getStringId() != null) ? getStringId() : "?") + "]]";
+ }
+
+ @Override
+ public Boolean supportNxRole() {
+ return true;
+ }
+
+ @Override
+ public void startDriverHandshake() {}
+
+ @Override
+ public boolean isDriverHandshakeComplete() {
+ return true;
+ }
+
+ @Override
+ public void processDriverHandshakeMessage(OFMessage m) {}
+
+ @Override
+ public void write(OFMessage msg) {
+ channel.write(Collections.singletonList(msg));
+ }
+
+ @Override
+ public void write(List<OFMessage> msgs) {
+ channel.write(msgs);
+ }
+
+ @Override
+ public List<OFPortDesc> getPorts() {
+ return Collections.unmodifiableList(features.getPorts());
+ }
+
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplOVS13.java b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplOVS13.java
new file mode 100644
index 0000000..3e1b713
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/OFSwitchImplOVS13.java
@@ -0,0 +1,233 @@
+package org.onlab.onos.of.drivers.impl;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.onlab.onos.of.controller.Dpid;
+import org.onlab.onos.of.controller.driver.AbstractOpenFlowSwitch;
+import org.onlab.onos.of.controller.driver.SwitchDriverSubHandshakeAlreadyStarted;
+import org.onlab.onos.of.controller.driver.SwitchDriverSubHandshakeCompleted;
+import org.onlab.onos.of.controller.driver.SwitchDriverSubHandshakeNotStarted;
+import org.projectfloodlight.openflow.protocol.OFBarrierRequest;
+import org.projectfloodlight.openflow.protocol.OFDescStatsReply;
+import org.projectfloodlight.openflow.protocol.OFFactory;
+import org.projectfloodlight.openflow.protocol.OFMatchV3;
+import org.projectfloodlight.openflow.protocol.OFMessage;
+import org.projectfloodlight.openflow.protocol.OFOxmList;
+import org.projectfloodlight.openflow.protocol.action.OFAction;
+import org.projectfloodlight.openflow.protocol.instruction.OFInstruction;
+import org.projectfloodlight.openflow.types.OFBufferId;
+import org.projectfloodlight.openflow.types.OFPort;
+import org.projectfloodlight.openflow.types.TableId;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * OFDescriptionStatistics Vendor (Manufacturer Desc.): Nicira, Inc. Make
+ * (Hardware Desc.) : Open vSwitch Model (Datapath Desc.) : None Software :
+ * 2.1.0 (or whatever version + build) Serial : None
+ */
+public class OFSwitchImplOVS13 extends AbstractOpenFlowSwitch {
+
+ private static Logger log =
+ LoggerFactory.getLogger(OFSwitchImplOVS13.class);
+
+ private final AtomicBoolean driverHandshakeComplete;
+ private OFFactory factory;
+ private long barrierXidToWaitFor = -1;
+
+ private static final short MIN_PRIORITY = 0x0;
+ private static final int OFPCML_NO_BUFFER = 0xffff;
+
+ public OFSwitchImplOVS13(Dpid dpid, OFDescStatsReply desc) {
+ super(dpid);
+ driverHandshakeComplete = new AtomicBoolean(false);
+ setSwitchDescription(desc);
+ }
+
+ @Override
+ public String toString() {
+ return "OFSwitchImplOVS13 [" + ((channel != null)
+ ? channel.getRemoteAddress() : "?")
+ + " DPID[" + ((getStringId() != null) ? getStringId() : "?") + "]]";
+ }
+
+ @Override
+ public void startDriverHandshake() {
+ log.debug("Starting driver handshake for sw {}", getStringId());
+ if (startDriverHandshakeCalled) {
+ throw new SwitchDriverSubHandshakeAlreadyStarted();
+ }
+ startDriverHandshakeCalled = true;
+ factory = factory();
+ configureSwitch();
+ }
+
+ @Override
+ public boolean isDriverHandshakeComplete() {
+ if (!startDriverHandshakeCalled) {
+ throw new SwitchDriverSubHandshakeNotStarted();
+ }
+ return driverHandshakeComplete.get();
+ }
+
+ @Override
+ public void processDriverHandshakeMessage(OFMessage m) {
+ if (!startDriverHandshakeCalled) {
+ throw new SwitchDriverSubHandshakeNotStarted();
+ }
+ if (driverHandshakeComplete.get()) {
+ throw new SwitchDriverSubHandshakeCompleted(m);
+ }
+
+ switch (m.getType()) {
+ case BARRIER_REPLY:
+ if (m.getXid() == barrierXidToWaitFor) {
+ driverHandshakeComplete.set(true);
+ }
+ break;
+
+ case ERROR:
+ log.error("Switch {} Error {}", getStringId(), m);
+ break;
+
+ case FEATURES_REPLY:
+ break;
+ case FLOW_REMOVED:
+ break;
+ case GET_ASYNC_REPLY:
+ // OFAsyncGetReply asrep = (OFAsyncGetReply)m;
+ // decodeAsyncGetReply(asrep);
+ break;
+
+ case PACKET_IN:
+ break;
+ case PORT_STATUS:
+ break;
+ case QUEUE_GET_CONFIG_REPLY:
+ break;
+ case ROLE_REPLY:
+ break;
+
+ case STATS_REPLY:
+ // processStatsReply((OFStatsReply) m);
+ break;
+
+ default:
+ log.debug("Received message {} during switch-driver subhandshake "
+ + "from switch {} ... Ignoring message", m, getStringId());
+
+ }
+ }
+
+
+ private void configureSwitch() {
+ populateTableMissEntry(0, true, false, false, 0);
+ sendBarrier(true);
+ }
+
+
+ private void sendBarrier(boolean finalBarrier) {
+ int xid = getNextTransactionId();
+ if (finalBarrier) {
+ barrierXidToWaitFor = xid;
+ }
+ OFBarrierRequest br = factory
+ .buildBarrierRequest()
+ .setXid(xid)
+ .build();
+ sendMsg(br);
+ }
+
+ @Override
+ public Boolean supportNxRole() {
+ return false;
+ }
+
+ @Override
+ public void write(OFMessage msg) {
+ channel.write(Collections.singletonList(msg));
+
+ }
+
+ @Override
+ public void write(List<OFMessage> msgs) {
+ channel.write(msgs);
+ }
+
+ /**
+ * By default if none of the booleans in the call are set, then the
+ * table-miss entry is added with no instructions, which means that pipeline
+ * execution will stop, and the action set associated with the packet will
+ * be executed.
+ *
+ * @param tableToAdd
+ * @param toControllerNow as an APPLY_ACTION instruction
+ * @param toControllerWrite as a WRITE_ACITION instruction
+ * @param toTable as a GOTO_TABLE instruction
+ * @param tableToSend
+ */
+ @SuppressWarnings("unchecked")
+ private void populateTableMissEntry(int tableToAdd, boolean toControllerNow,
+ boolean toControllerWrite,
+ boolean toTable, int tableToSend) {
+ OFOxmList oxmList = OFOxmList.EMPTY;
+ OFMatchV3 match = factory.buildMatchV3()
+ .setOxmList(oxmList)
+ .build();
+ OFAction outc = factory.actions()
+ .buildOutput()
+ .setPort(OFPort.CONTROLLER)
+ .setMaxLen(OFPCML_NO_BUFFER)
+ .build();
+ List<OFInstruction> instructions = new ArrayList<OFInstruction>();
+ if (toControllerNow) {
+ // table-miss instruction to send to controller immediately
+ OFInstruction instr = factory.instructions()
+ .buildApplyActions()
+ .setActions(Collections.singletonList(outc))
+ .build();
+ instructions.add(instr);
+ }
+
+ if (toControllerWrite) {
+ // table-miss instruction to write-action to send to controller
+ // this will be executed whenever the action-set gets executed
+ OFInstruction instr = factory.instructions()
+ .buildWriteActions()
+ .setActions(Collections.singletonList(outc))
+ .build();
+ instructions.add(instr);
+ }
+
+ if (toTable) {
+ // table-miss instruction to goto-table x
+ OFInstruction instr = factory.instructions()
+ .gotoTable(TableId.of(tableToSend));
+ instructions.add(instr);
+ }
+
+ if (!toControllerNow && !toControllerWrite && !toTable) {
+ // table-miss has no instruction - at which point action-set will be
+ // executed - if there is an action to output/group in the action
+ // set
+ // the packet will be sent there, otherwise it will be dropped.
+ instructions = Collections.EMPTY_LIST;
+ }
+
+ OFMessage tableMissEntry = factory.buildFlowAdd()
+ .setTableId(TableId.of(tableToAdd))
+ .setMatch(match) // match everything
+ .setInstructions(instructions)
+ .setPriority(MIN_PRIORITY)
+ .setBufferId(OFBufferId.NO_BUFFER)
+ .setIdleTimeout(0)
+ .setHardTimeout(0)
+ .setXid(getNextTransactionId())
+ .build();
+ sendMsg(tableMissEntry);
+ }
+
+}
diff --git a/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/package-info.java b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/package-info.java
new file mode 100644
index 0000000..ca25356
--- /dev/null
+++ b/openflow/ctl/src/main/java/org/onlab/onos/of/drivers/impl/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * OpenFlow base switch drivers implementations.
+ */
+package org.onlab.onos.of.drivers.impl;
diff --git a/openflow/drivers/pom.xml b/openflow/drivers/pom.xml
new file mode 100644
index 0000000..7538f10
--- /dev/null
+++ b/openflow/drivers/pom.xml
@@ -0,0 +1,36 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-of</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>onos-of-drivers</artifactId>
+ <packaging>bundle</packaging>
+
+ <description>ONOS OpenFlow switch drivers & factory</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.onlab.onos</groupId>
+ <artifactId>onos-of-api</artifactId>
+ </dependency>
+ </dependencies>
+
+ <build>
+<!--
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-scr-plugin</artifactId>
+ </plugin>
+ </plugins>
+-->
+ </build>
+
+</project>
diff --git a/openflow/drivers/src/main/java/org/onlab/onos/of/drivers/impl/DeleteMe.java b/openflow/drivers/src/main/java/org/onlab/onos/of/drivers/impl/DeleteMe.java
new file mode 100644
index 0000000..7d9176c
--- /dev/null
+++ b/openflow/drivers/src/main/java/org/onlab/onos/of/drivers/impl/DeleteMe.java
@@ -0,0 +1,7 @@
+package org.onlab.onos.of.drivers.impl;
+
+/**
+ * Created by tom on 9/2/14.
+ */
+public class DeleteMe {
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFActionType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFActionType.java
new file mode 100644
index 0000000..fe5320d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFActionType.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFActionType {
+ OUTPUT,
+ SET_VLAN_VID,
+ SET_VLAN_PCP,
+ STRIP_VLAN,
+ SET_DL_SRC,
+ SET_DL_DST,
+ SET_NW_SRC,
+ SET_NW_DST,
+ SET_NW_TOS,
+ SET_TP_SRC,
+ SET_TP_DST,
+ ENQUEUE,
+ EXPERIMENTER,
+ SET_NW_ECN,
+ COPY_TTL_OUT,
+ COPY_TTL_IN,
+ SET_MPLS_LABEL,
+ SET_MPLS_TC,
+ SET_MPLS_TTL,
+ DEC_MPLS_TTL,
+ PUSH_VLAN,
+ POP_VLAN,
+ PUSH_MPLS,
+ POP_MPLS,
+ SET_QUEUE,
+ GROUP,
+ SET_NW_TTL,
+ DEC_NW_TTL,
+ SET_FIELD,
+ PUSH_PBB,
+ POP_PBB;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsReply.java
new file mode 100644
index 0000000..ce8478d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsReply.java
@@ -0,0 +1,58 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAggregateStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ U64 getPacketCount();
+ U64 getByteCount();
+ long getFlowCount();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFAggregateStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ U64 getPacketCount();
+ Builder setPacketCount(U64 packetCount);
+ U64 getByteCount();
+ Builder setByteCount(U64 byteCount);
+ long getFlowCount();
+ Builder setFlowCount(long flowCount);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsRequest.java
new file mode 100644
index 0000000..e2c6cc2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAggregateStatsRequest.java
@@ -0,0 +1,67 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAggregateStatsRequest extends OFObject, OFStatsRequest<OFAggregateStatsReply>, OFRequest<OFAggregateStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ TableId getTableId();
+ OFPort getOutPort();
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ U64 getCookie() throws UnsupportedOperationException;
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Match getMatch();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFAggregateStatsReply> {
+ OFAggregateStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ OFPort getOutPort();
+ Builder setOutPort(OFPort outPort);
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+ U64 getCookie() throws UnsupportedOperationException;
+ Builder setCookie(U64 cookie) throws UnsupportedOperationException;
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+ Match getMatch();
+ Builder setMatch(Match match);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetReply.java
new file mode 100644
index 0000000..d29b921
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetReply.java
@@ -0,0 +1,61 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAsyncGetReply extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getPacketInMaskEqualMaster();
+ long getPacketInMaskSlave();
+ long getPortStatusMaskEqualMaster();
+ long getPortStatusMaskSlave();
+ long getFlowRemovedMaskEqualMaster();
+ long getFlowRemovedMaskSlave();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFAsyncGetReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getPacketInMaskEqualMaster();
+ Builder setPacketInMaskEqualMaster(long packetInMaskEqualMaster);
+ long getPacketInMaskSlave();
+ Builder setPacketInMaskSlave(long packetInMaskSlave);
+ long getPortStatusMaskEqualMaster();
+ Builder setPortStatusMaskEqualMaster(long portStatusMaskEqualMaster);
+ long getPortStatusMaskSlave();
+ Builder setPortStatusMaskSlave(long portStatusMaskSlave);
+ long getFlowRemovedMaskEqualMaster();
+ Builder setFlowRemovedMaskEqualMaster(long flowRemovedMaskEqualMaster);
+ long getFlowRemovedMaskSlave();
+ Builder setFlowRemovedMaskSlave(long flowRemovedMaskSlave);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetRequest.java
new file mode 100644
index 0000000..6f52220
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncGetRequest.java
@@ -0,0 +1,61 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAsyncGetRequest extends OFObject, OFMessage, OFRequest<OFAsyncGetReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getPacketInMaskEqualMaster();
+ long getPacketInMaskSlave();
+ long getPortStatusMaskEqualMaster();
+ long getPortStatusMaskSlave();
+ long getFlowRemovedMaskEqualMaster();
+ long getFlowRemovedMaskSlave();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFAsyncGetRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getPacketInMaskEqualMaster();
+ Builder setPacketInMaskEqualMaster(long packetInMaskEqualMaster);
+ long getPacketInMaskSlave();
+ Builder setPacketInMaskSlave(long packetInMaskSlave);
+ long getPortStatusMaskEqualMaster();
+ Builder setPortStatusMaskEqualMaster(long portStatusMaskEqualMaster);
+ long getPortStatusMaskSlave();
+ Builder setPortStatusMaskSlave(long portStatusMaskSlave);
+ long getFlowRemovedMaskEqualMaster();
+ Builder setFlowRemovedMaskEqualMaster(long flowRemovedMaskEqualMaster);
+ long getFlowRemovedMaskSlave();
+ Builder setFlowRemovedMaskSlave(long flowRemovedMaskSlave);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncSet.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncSet.java
new file mode 100644
index 0000000..ff3927e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFAsyncSet.java
@@ -0,0 +1,62 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAsyncSet extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getPacketInMaskEqualMaster();
+ long getPacketInMaskSlave();
+ long getPortStatusMaskEqualMaster();
+ long getPortStatusMaskSlave();
+ long getFlowRemovedMaskEqualMaster();
+ long getFlowRemovedMaskSlave();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFAsyncSet build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getPacketInMaskEqualMaster();
+ Builder setPacketInMaskEqualMaster(long packetInMaskEqualMaster);
+ long getPacketInMaskSlave();
+ Builder setPacketInMaskSlave(long packetInMaskSlave);
+ long getPortStatusMaskEqualMaster();
+ Builder setPortStatusMaskEqualMaster(long portStatusMaskEqualMaster);
+ long getPortStatusMaskSlave();
+ Builder setPortStatusMaskSlave(long portStatusMaskSlave);
+ long getFlowRemovedMaskEqualMaster();
+ Builder setFlowRemovedMaskEqualMaster(long flowRemovedMaskEqualMaster);
+ long getFlowRemovedMaskSlave();
+ Builder setFlowRemovedMaskSlave(long flowRemovedMaskSlave);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadActionCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadActionCode.java
new file mode 100644
index 0000000..13d5543
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadActionCode.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBadActionCode {
+ BAD_TYPE,
+ BAD_LEN,
+ BAD_EXPERIMENTER,
+ BAD_EXPERIMENTER_TYPE,
+ BAD_OUT_PORT,
+ BAD_ARGUMENT,
+ EPERM,
+ TOO_MANY,
+ BAD_QUEUE,
+ BAD_OUT_GROUP,
+ MATCH_INCONSISTENT,
+ UNSUPPORTED_ORDER,
+ BAD_TAG,
+ BAD_SET_TYPE,
+ BAD_SET_LEN,
+ BAD_SET_ARGUMENT;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadInstructionCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadInstructionCode.java
new file mode 100644
index 0000000..dfe86d3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadInstructionCode.java
@@ -0,0 +1,38 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBadInstructionCode {
+ UNKNOWN_INST,
+ UNSUP_INST,
+ BAD_TABLE_ID,
+ UNSUP_METADATA,
+ UNSUP_METADATA_MASK,
+ UNSUP_EXP_INST,
+ BAD_EXPERIMENTER,
+ BAD_EXPERIMENTER_TYPE,
+ BAD_LEN,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadMatchCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadMatchCode.java
new file mode 100644
index 0000000..02f689a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadMatchCode.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBadMatchCode {
+ BAD_TYPE,
+ BAD_LEN,
+ BAD_TAG,
+ BAD_DL_ADDR_MASK,
+ BAD_NW_ADDR_MASK,
+ BAD_WILDCARDS,
+ BAD_FIELD,
+ BAD_VALUE,
+ BAD_MASK,
+ BAD_PREREQ,
+ DUP_FIELD,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadRequestCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadRequestCode.java
new file mode 100644
index 0000000..e254cb2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBadRequestCode.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBadRequestCode {
+ BAD_VERSION,
+ BAD_TYPE,
+ BAD_STAT,
+ BAD_EXPERIMENTER,
+ BAD_SUBTYPE,
+ EPERM,
+ BAD_LEN,
+ BUFFER_EMPTY,
+ BUFFER_UNKNOWN,
+ BAD_TABLE_ID,
+ BAD_EXPERIMENTER_TYPE,
+ IS_SLAVE,
+ BAD_PORT,
+ BAD_PACKET,
+ MULTIPART_BUFFER_OVERFLOW;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierReply.java
new file mode 100644
index 0000000..f64f16e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierReply.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBarrierReply extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFBarrierReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierRequest.java
new file mode 100644
index 0000000..b41e104
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBarrierRequest.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBarrierRequest extends OFObject, OFMessage, OFRequest<OFBarrierReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFBarrierRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnArpIdle.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnArpIdle.java
new file mode 100644
index 0000000..3d1893e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnArpIdle.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnArpIdle extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ int getVlanVid();
+ IPv4Address getIpv4Addr();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnArpIdle build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ int getVlanVid();
+ Builder setVlanVid(int vlanVid);
+ IPv4Address getIpv4Addr();
+ Builder setIpv4Addr(IPv4Address ipv4Addr);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataReply.java
new file mode 100644
index 0000000..78e74c5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwClearDataReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnBwClearDataReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataRequest.java
new file mode 100644
index 0000000..bb9c2bb
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwClearDataRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwClearDataRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnBwClearDataReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnBwClearDataRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetReply.java
new file mode 100644
index 0000000..e8ae108
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwEnableGetReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getEnabled();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnBwEnableGetReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getEnabled();
+ Builder setEnabled(long enabled);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetRequest.java
new file mode 100644
index 0000000..15ccbdc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableGetRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwEnableGetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnBwEnableGetReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnBwEnableGetRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetReply.java
new file mode 100644
index 0000000..6d25d7e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetReply.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwEnableSetReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getEnable();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnBwEnableSetReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getEnable();
+ Builder setEnable(long enable);
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetRequest.java
new file mode 100644
index 0000000..2b23800
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnBwEnableSetRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnBwEnableSetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnBwEnableSetReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getEnable();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnBwEnableSetRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getEnable();
+ Builder setEnable(long enable);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnection.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnection.java
new file mode 100644
index 0000000..6d11288
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnection.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnControllerConnection extends OFObject {
+ OFBsnControllerConnectionState getState();
+ OFAuxId getAuxiliaryId();
+ OFControllerRole getRole();
+ String getUri();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnControllerConnection build();
+ OFBsnControllerConnectionState getState();
+ Builder setState(OFBsnControllerConnectionState state);
+ OFAuxId getAuxiliaryId();
+ Builder setAuxiliaryId(OFAuxId auxiliaryId);
+ OFControllerRole getRole();
+ Builder setRole(OFControllerRole role);
+ String getUri();
+ Builder setUri(String uri);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionState.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionState.java
new file mode 100644
index 0000000..df1312f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionState.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnControllerConnectionState {
+ BSN_CONTROLLER_CONNECTION_STATE_DISCONNECTED,
+ BSN_CONTROLLER_CONNECTION_STATE_CONNECTED;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsReply.java
new file mode 100644
index 0000000..ffa03c4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnControllerConnectionsReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnControllerConnection> getConnections();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnControllerConnectionsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnControllerConnection> getConnections();
+ Builder setConnections(List<OFBsnControllerConnection> connections);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsRequest.java
new file mode 100644
index 0000000..efee303
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerConnectionsRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnControllerConnectionsRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnControllerConnectionsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnControllerConnectionsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerRoleReason.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerRoleReason.java
new file mode 100644
index 0000000..a8eb119
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnControllerRoleReason.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnControllerRoleReason {
+ BSN_CONTROLLER_ROLE_REASON_MASTER_REQUEST,
+ BSN_CONTROLLER_ROLE_REASON_CONFIG,
+ BSN_CONTROLLER_ROLE_REASON_EXPERIMENTER;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsEntry.java
new file mode 100644
index 0000000..0aa4407
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsEntry.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterDescStatsEntry extends OFObject {
+ U64 getCounterId();
+ String getName();
+ String getDescription();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnDebugCounterDescStatsEntry build();
+ U64 getCounterId();
+ Builder setCounterId(U64 counterId);
+ String getName();
+ Builder setName(String name);
+ String getDescription();
+ Builder setDescription(String description);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsReply.java
new file mode 100644
index 0000000..5f72426
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterDescStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnDebugCounterDescStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnDebugCounterDescStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnDebugCounterDescStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnDebugCounterDescStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsRequest.java
new file mode 100644
index 0000000..ebd3b9b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterDescStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterDescStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnDebugCounterDescStatsReply>, OFRequest<OFBsnDebugCounterDescStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnDebugCounterDescStatsReply> {
+ OFBsnDebugCounterDescStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsEntry.java
new file mode 100644
index 0000000..f3d28d0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsEntry.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterStatsEntry extends OFObject {
+ U64 getCounterId();
+ U64 getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnDebugCounterStatsEntry build();
+ U64 getCounterId();
+ Builder setCounterId(U64 counterId);
+ U64 getValue();
+ Builder setValue(U64 value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsReply.java
new file mode 100644
index 0000000..9edf42a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnDebugCounterStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnDebugCounterStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnDebugCounterStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnDebugCounterStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsRequest.java
new file mode 100644
index 0000000..cb2d5f9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnDebugCounterStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnDebugCounterStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnDebugCounterStatsReply>, OFRequest<OFBsnDebugCounterStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnDebugCounterStatsReply> {
+ OFBsnDebugCounterStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsEntry.java
new file mode 100644
index 0000000..d709799
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsEntry.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowChecksumBucketStatsEntry extends OFObject {
+ U64 getChecksum();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnFlowChecksumBucketStatsEntry build();
+ U64 getChecksum();
+ Builder setChecksum(U64 checksum);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsReply.java
new file mode 100644
index 0000000..4759d45
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowChecksumBucketStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnFlowChecksumBucketStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnFlowChecksumBucketStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnFlowChecksumBucketStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnFlowChecksumBucketStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsRequest.java
new file mode 100644
index 0000000..1f4ed0d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowChecksumBucketStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowChecksumBucketStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnFlowChecksumBucketStatsReply>, OFRequest<OFBsnFlowChecksumBucketStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ TableId getTableId();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnFlowChecksumBucketStatsReply> {
+ OFBsnFlowChecksumBucketStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdle.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdle.java
new file mode 100644
index 0000000..88a2b14
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdle.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdle extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ U64 getCookie();
+ int getPriority();
+ TableId getTableId();
+ Match getMatch();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnFlowIdle build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ int getPriority();
+ Builder setPriority(int priority);
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ Match getMatch();
+ Builder setMatch(Match match);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetReply.java
new file mode 100644
index 0000000..cf38356
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdleEnableGetReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getEnabled();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnFlowIdleEnableGetReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getEnabled();
+ Builder setEnabled(long enabled);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetRequest.java
new file mode 100644
index 0000000..aacb08c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableGetRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdleEnableGetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnFlowIdleEnableGetReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnFlowIdleEnableGetRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetReply.java
new file mode 100644
index 0000000..6c0b274
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetReply.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdleEnableSetReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getEnable();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnFlowIdleEnableSetReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getEnable();
+ Builder setEnable(long enable);
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetRequest.java
new file mode 100644
index 0000000..aae991d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnFlowIdleEnableSetRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnFlowIdleEnableSetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnFlowIdleEnableSetReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getEnable();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnFlowIdleEnableSetRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getEnable();
+ Builder setEnable(long enable);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsEntry.java
new file mode 100644
index 0000000..d69a444
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsEntry.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableBucketStatsEntry extends OFObject {
+ U128 getChecksum();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnGentableBucketStatsEntry build();
+ U128 getChecksum();
+ Builder setChecksum(U128 checksum);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsReply.java
new file mode 100644
index 0000000..0b08078
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableBucketStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableBucketStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnGentableBucketStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableBucketStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnGentableBucketStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsRequest.java
new file mode 100644
index 0000000..72b5983
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableBucketStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableBucketStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableBucketStatsReply>, OFRequest<OFBsnGentableBucketStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableBucketStatsReply> {
+ OFBsnGentableBucketStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearReply.java
new file mode 100644
index 0000000..d0c7015
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearReply.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableClearReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ long getDeletedCount();
+ long getErrorCount();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGentableClearReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ long getDeletedCount();
+ Builder setDeletedCount(long deletedCount);
+ long getErrorCount();
+ Builder setErrorCount(long errorCount);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearRequest.java
new file mode 100644
index 0000000..e61f3f6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableClearRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableClearRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGentableClearReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ U128 getChecksum();
+ U128 getChecksumMask();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGentableClearRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ U128 getChecksum();
+ Builder setChecksum(U128 checksum);
+ U128 getChecksumMask();
+ Builder setChecksumMask(U128 checksumMask);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsEntry.java
new file mode 100644
index 0000000..b39fd10
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsEntry.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableDescStatsEntry extends OFObject {
+ GenTableId getTableId();
+ String getName();
+ long getBucketsSize();
+ long getMaxEntries();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnGentableDescStatsEntry build();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ String getName();
+ Builder setName(String name);
+ long getBucketsSize();
+ Builder setBucketsSize(long bucketsSize);
+ long getMaxEntries();
+ Builder setMaxEntries(long maxEntries);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsReply.java
new file mode 100644
index 0000000..6d2de9d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableDescStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableDescStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnGentableDescStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableDescStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnGentableDescStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsRequest.java
new file mode 100644
index 0000000..8fa686d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableDescStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableDescStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableDescStatsReply>, OFRequest<OFBsnGentableDescStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableDescStatsReply> {
+ OFBsnGentableDescStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryAdd.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryAdd.java
new file mode 100644
index 0000000..ef358fa
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryAdd.java
@@ -0,0 +1,60 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryAdd extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ U128 getChecksum();
+ List<OFBsnTlv> getKey();
+ List<OFBsnTlv> getValue();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGentableEntryAdd build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ U128 getChecksum();
+ Builder setChecksum(U128 checksum);
+ List<OFBsnTlv> getKey();
+ Builder setKey(List<OFBsnTlv> key);
+ List<OFBsnTlv> getValue();
+ Builder setValue(List<OFBsnTlv> value);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDelete.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDelete.java
new file mode 100644
index 0000000..79093a3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDelete.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryDelete extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ List<OFBsnTlv> getKey();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGentableEntryDelete build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ List<OFBsnTlv> getKey();
+ Builder setKey(List<OFBsnTlv> key);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsEntry.java
new file mode 100644
index 0000000..b0783c7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsEntry.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryDescStatsEntry extends OFObject {
+ U128 getChecksum();
+ List<OFBsnTlv> getKey();
+ List<OFBsnTlv> getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnGentableEntryDescStatsEntry build();
+ U128 getChecksum();
+ Builder setChecksum(U128 checksum);
+ List<OFBsnTlv> getKey();
+ Builder setKey(List<OFBsnTlv> key);
+ List<OFBsnTlv> getValue();
+ Builder setValue(List<OFBsnTlv> value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsReply.java
new file mode 100644
index 0000000..c859998
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryDescStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableEntryDescStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnGentableEntryDescStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableEntryDescStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnGentableEntryDescStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsRequest.java
new file mode 100644
index 0000000..ba35738
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryDescStatsRequest.java
@@ -0,0 +1,62 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryDescStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableEntryDescStatsReply>, OFRequest<OFBsnGentableEntryDescStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ U128 getChecksum();
+ U128 getChecksumMask();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableEntryDescStatsReply> {
+ OFBsnGentableEntryDescStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ U128 getChecksum();
+ Builder setChecksum(U128 checksum);
+ U128 getChecksumMask();
+ Builder setChecksumMask(U128 checksumMask);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsEntry.java
new file mode 100644
index 0000000..ec0fb5b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsEntry.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryStatsEntry extends OFObject {
+ List<OFBsnTlv> getKey();
+ List<OFBsnTlv> getStats();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnGentableEntryStatsEntry build();
+ List<OFBsnTlv> getKey();
+ Builder setKey(List<OFBsnTlv> key);
+ List<OFBsnTlv> getStats();
+ Builder setStats(List<OFBsnTlv> stats);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsReply.java
new file mode 100644
index 0000000..fd88fb7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableEntryStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnGentableEntryStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableEntryStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnGentableEntryStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsRequest.java
new file mode 100644
index 0000000..90a6475
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableEntryStatsRequest.java
@@ -0,0 +1,62 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableEntryStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableEntryStatsReply>, OFRequest<OFBsnGentableEntryStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ U128 getChecksum();
+ U128 getChecksumMask();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableEntryStatsReply> {
+ OFBsnGentableEntryStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ U128 getChecksum();
+ Builder setChecksum(U128 checksum);
+ U128 getChecksumMask();
+ Builder setChecksumMask(U128 checksumMask);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableSetBucketsSize.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableSetBucketsSize.java
new file mode 100644
index 0000000..5066e21
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableSetBucketsSize.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableSetBucketsSize extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ long getBucketsSize();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGentableSetBucketsSize build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ long getBucketsSize();
+ Builder setBucketsSize(long bucketsSize);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsEntry.java
new file mode 100644
index 0000000..d4b0cc8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsEntry.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableStatsEntry extends OFObject {
+ GenTableId getTableId();
+ long getEntryCount();
+ U128 getChecksum();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnGentableStatsEntry build();
+ GenTableId getTableId();
+ Builder setTableId(GenTableId tableId);
+ long getEntryCount();
+ Builder setEntryCount(long entryCount);
+ U128 getChecksum();
+ Builder setChecksum(U128 checksum);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsReply.java
new file mode 100644
index 0000000..f1d4b74
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnGentableStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnGentableStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnGentableStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsRequest.java
new file mode 100644
index 0000000..9fc4b7a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGentableStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGentableStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnGentableStatsReply>, OFRequest<OFBsnGentableStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnGentableStatsReply> {
+ OFBsnGentableStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesReply.java
new file mode 100644
index 0000000..951541b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetInterfacesReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnInterface> getInterfaces();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetInterfacesReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnInterface> getInterfaces();
+ Builder setInterfaces(List<OFBsnInterface> interfaces);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesRequest.java
new file mode 100644
index 0000000..62951a6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetInterfacesRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetInterfacesRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetInterfacesReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetInterfacesRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskReply.java
new file mode 100644
index 0000000..ddb293b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetIpMaskReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getIndex();
+ long getMask();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetIpMaskReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getIndex();
+ Builder setIndex(short index);
+ long getMask();
+ Builder setMask(long mask);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskRequest.java
new file mode 100644
index 0000000..0b7a63e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetIpMaskRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetIpMaskRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetIpMaskReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getIndex();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetIpMaskRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getIndex();
+ Builder setIndex(short index);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableReply.java
new file mode 100644
index 0000000..41125e7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetL2TableReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getL2TableEnable();
+ int getL2TablePriority();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetL2TableReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getL2TableEnable();
+ Builder setL2TableEnable(short l2TableEnable);
+ int getL2TablePriority();
+ Builder setL2TablePriority(int l2TablePriority);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableRequest.java
new file mode 100644
index 0000000..d7afc84
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetL2TableRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetL2TableRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetL2TableReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetL2TableRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringReply.java
new file mode 100644
index 0000000..44290fc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetMirroringReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getReportMirrorPorts();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetMirroringReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getReportMirrorPorts();
+ Builder setReportMirrorPorts(short reportMirrorPorts);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringRequest.java
new file mode 100644
index 0000000..0fc5419
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetMirroringRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetMirroringRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetMirroringReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getReportMirrorPorts();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetMirroringRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getReportMirrorPorts();
+ Builder setReportMirrorPorts(short reportMirrorPorts);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineReply.java
new file mode 100644
index 0000000..32f5647
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetSwitchPipelineReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ String getPipeline();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetSwitchPipelineReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ String getPipeline();
+ Builder setPipeline(String pipeline);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineRequest.java
new file mode 100644
index 0000000..e4ff994
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnGetSwitchPipelineRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnGetSwitchPipelineRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnGetSwitchPipelineReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnGetSwitchPipelineRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHeader.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHeader.java
new file mode 100644
index 0000000..1081da9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHeader.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnHeader extends OFObject, OFExperimenter {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFExperimenter.Builder {
+ OFBsnHeader build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetReply.java
new file mode 100644
index 0000000..68946fe
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnHybridGetReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getHybridEnable();
+ int getHybridVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnHybridGetReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getHybridEnable();
+ Builder setHybridEnable(short hybridEnable);
+ int getHybridVersion();
+ Builder setHybridVersion(int hybridVersion);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetRequest.java
new file mode 100644
index 0000000..0f2a690
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnHybridGetRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnHybridGetRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnHybridGetReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnHybridGetRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsReply.java
new file mode 100644
index 0000000..9ce6823
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsReply.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnImageDescStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ String getImageChecksum();
+ String getStartupConfigChecksum();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnImageDescStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ String getImageChecksum();
+ Builder setImageChecksum(String imageChecksum);
+ String getStartupConfigChecksum();
+ Builder setStartupConfigChecksum(String startupConfigChecksum);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsRequest.java
new file mode 100644
index 0000000..154a137
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnImageDescStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnImageDescStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnImageDescStatsReply>, OFRequest<OFBsnImageDescStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnImageDescStatsReply> {
+ OFBsnImageDescStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnInterface.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnInterface.java
new file mode 100644
index 0000000..44f7739
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnInterface.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnInterface extends OFObject {
+ MacAddress getHwAddr();
+ String getName();
+ IPv4Address getIpv4Addr();
+ IPv4Address getIpv4Netmask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnInterface build();
+ MacAddress getHwAddr();
+ Builder setHwAddr(MacAddress hwAddr);
+ String getName();
+ Builder setName(String name);
+ IPv4Address getIpv4Addr();
+ Builder setIpv4Addr(IPv4Address ipv4Addr);
+ IPv4Address getIpv4Netmask();
+ Builder setIpv4Netmask(IPv4Address ipv4Netmask);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceNotif.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceNotif.java
new file mode 100644
index 0000000..d3b1d72
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceNotif.java
@@ -0,0 +1,83 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLacpConvergenceNotif extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getConvergenceStatus();
+ OFPort getPortNo();
+ int getActorSysPriority();
+ MacAddress getActorSysMac();
+ int getActorPortPriority();
+ int getActorPortNum();
+ int getActorKey();
+ int getPartnerSysPriority();
+ MacAddress getPartnerSysMac();
+ int getPartnerPortPriority();
+ int getPartnerPortNum();
+ int getPartnerKey();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnLacpConvergenceNotif build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getConvergenceStatus();
+ Builder setConvergenceStatus(short convergenceStatus);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ int getActorSysPriority();
+ Builder setActorSysPriority(int actorSysPriority);
+ MacAddress getActorSysMac();
+ Builder setActorSysMac(MacAddress actorSysMac);
+ int getActorPortPriority();
+ Builder setActorPortPriority(int actorPortPriority);
+ int getActorPortNum();
+ Builder setActorPortNum(int actorPortNum);
+ int getActorKey();
+ Builder setActorKey(int actorKey);
+ int getPartnerSysPriority();
+ Builder setPartnerSysPriority(int partnerSysPriority);
+ MacAddress getPartnerSysMac();
+ Builder setPartnerSysMac(MacAddress partnerSysMac);
+ int getPartnerPortPriority();
+ Builder setPartnerPortPriority(int partnerPortPriority);
+ int getPartnerPortNum();
+ Builder setPartnerPortNum(int partnerPortNum);
+ int getPartnerKey();
+ Builder setPartnerKey(int partnerKey);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceStatusT.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceStatusT.java
new file mode 100644
index 0000000..15505a2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpConvergenceStatusT.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnLacpConvergenceStatusT {
+ SUCCESS,
+ TIMEDOUT,
+ OUT_OF_SYNC;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsEntry.java
new file mode 100644
index 0000000..ac3ac18
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsEntry.java
@@ -0,0 +1,74 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLacpStatsEntry extends OFObject {
+ OFPort getPortNo();
+ int getActorSysPriority();
+ MacAddress getActorSysMac();
+ int getActorPortPriority();
+ int getActorPortNum();
+ int getActorKey();
+ short getConvergenceStatus();
+ int getPartnerSysPriority();
+ MacAddress getPartnerSysMac();
+ int getPartnerPortPriority();
+ int getPartnerPortNum();
+ int getPartnerKey();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnLacpStatsEntry build();
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ int getActorSysPriority();
+ Builder setActorSysPriority(int actorSysPriority);
+ MacAddress getActorSysMac();
+ Builder setActorSysMac(MacAddress actorSysMac);
+ int getActorPortPriority();
+ Builder setActorPortPriority(int actorPortPriority);
+ int getActorPortNum();
+ Builder setActorPortNum(int actorPortNum);
+ int getActorKey();
+ Builder setActorKey(int actorKey);
+ short getConvergenceStatus();
+ Builder setConvergenceStatus(short convergenceStatus);
+ int getPartnerSysPriority();
+ Builder setPartnerSysPriority(int partnerSysPriority);
+ MacAddress getPartnerSysMac();
+ Builder setPartnerSysMac(MacAddress partnerSysMac);
+ int getPartnerPortPriority();
+ Builder setPartnerPortPriority(int partnerPortPriority);
+ int getPartnerPortNum();
+ Builder setPartnerPortNum(int partnerPortNum);
+ int getPartnerKey();
+ Builder setPartnerKey(int partnerKey);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsReply.java
new file mode 100644
index 0000000..a1f354f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLacpStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnLacpStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnLacpStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnLacpStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnLacpStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsRequest.java
new file mode 100644
index 0000000..f8765f3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLacpStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLacpStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnLacpStatsReply>, OFRequest<OFBsnLacpStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnLacpStatsReply> {
+ OFBsnLacpStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLog.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLog.java
new file mode 100644
index 0000000..15c0862
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLog.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnLog extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ OFBsnLoglevel getLoglevel();
+ String getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnLog build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ OFBsnLoglevel getLoglevel();
+ Builder setLoglevel(OFBsnLoglevel loglevel);
+ String getData();
+ Builder setData(String data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLoglevel.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLoglevel.java
new file mode 100644
index 0000000..fd9cadd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnLoglevel.java
@@ -0,0 +1,34 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnLoglevel {
+ BSN_LOGLEVEL_MSG,
+ BSN_LOGLEVEL_ERROR,
+ BSN_LOGLEVEL_WARN,
+ BSN_LOGLEVEL_INFO,
+ BSN_LOGLEVEL_VERBOSE,
+ BSN_LOGLEVEL_TRACE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxReply.java
new file mode 100644
index 0000000..9601a76
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxReply.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduRxReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ OFPort getPortNo();
+ short getSlotNum();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnPduRxReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ short getSlotNum();
+ Builder setSlotNum(short slotNum);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxRequest.java
new file mode 100644
index 0000000..1fa01cf
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxRequest.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduRxRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnPduRxReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getTimeoutMs();
+ OFPort getPortNo();
+ short getSlotNum();
+ byte[] getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnPduRxRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getTimeoutMs();
+ Builder setTimeoutMs(long timeoutMs);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ short getSlotNum();
+ Builder setSlotNum(short slotNum);
+ byte[] getData();
+ Builder setData(byte[] data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxTimeout.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxTimeout.java
new file mode 100644
index 0000000..21f999d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduRxTimeout.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduRxTimeout extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ OFPort getPortNo();
+ short getSlotNum();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnPduRxTimeout build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ short getSlotNum();
+ Builder setSlotNum(short slotNum);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduSlotNumT.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduSlotNumT.java
new file mode 100644
index 0000000..a843ca2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduSlotNumT.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnPduSlotNumT {
+ PDU_SLOT_NUM_ANY;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxReply.java
new file mode 100644
index 0000000..50ee693
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxReply.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduTxReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ OFPort getPortNo();
+ short getSlotNum();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnPduTxReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ short getSlotNum();
+ Builder setSlotNum(short slotNum);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxRequest.java
new file mode 100644
index 0000000..22c4f72
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPduTxRequest.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPduTxRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnPduTxReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getTxIntervalMs();
+ OFPort getPortNo();
+ short getSlotNum();
+ byte[] getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnPduTxRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getTxIntervalMs();
+ Builder setTxIntervalMs(long txIntervalMs);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ short getSlotNum();
+ Builder setSlotNum(short slotNum);
+ byte[] getData();
+ Builder setData(byte[] data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPktinFlag.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPktinFlag.java
new file mode 100644
index 0000000..1c45232
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPktinFlag.java
@@ -0,0 +1,39 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnPktinFlag {
+ BSN_PKTIN_FLAG_PDU,
+ BSN_PKTIN_FLAG_NEW_HOST,
+ BSN_PKTIN_FLAG_STATION_MOVE,
+ BSN_PKTIN_FLAG_ARP,
+ BSN_PKTIN_FLAG_DHCP,
+ BSN_PKTIN_FLAG_L2_CPU,
+ BSN_PKTIN_FLAG_DEBUG,
+ BSN_PKTIN_FLAG_TTL_EXPIRED,
+ BSN_PKTIN_FLAG_L3_MISS,
+ BSN_PKTIN_FLAG_L3_CPU,
+ BSN_PKTIN_FLAG_INGRESS_ACL;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounter.java
new file mode 100644
index 0000000..b73290a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounter.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnPortCounter {
+ BSN_PORT_COUNTER_RX_BYTES,
+ BSN_PORT_COUNTER_RX_PACKETS_UNICAST,
+ BSN_PORT_COUNTER_RX_PACKETS_BROADCAST,
+ BSN_PORT_COUNTER_RX_PACKETS_MULTICAST,
+ BSN_PORT_COUNTER_RX_DROPPED,
+ BSN_PORT_COUNTER_RX_ERRORS,
+ BSN_PORT_COUNTER_TX_BYTES,
+ BSN_PORT_COUNTER_TX_PACKETS_UNICAST,
+ BSN_PORT_COUNTER_TX_PACKETS_BROADCAST,
+ BSN_PORT_COUNTER_TX_PACKETS_MULTICAST,
+ BSN_PORT_COUNTER_TX_DROPPED,
+ BSN_PORT_COUNTER_TX_ERRORS,
+ BSN_PORT_COUNTER_RX_RUNTS,
+ BSN_PORT_COUNTER_RX_GIANTS,
+ BSN_PORT_COUNTER_RX_CRC_ERRORS,
+ BSN_PORT_COUNTER_RX_ALIGNMENT_ERRORS,
+ BSN_PORT_COUNTER_RX_SYMBOL_ERRORS,
+ BSN_PORT_COUNTER_RX_PAUSE_INPUT,
+ BSN_PORT_COUNTER_TX_COLLISIONS,
+ BSN_PORT_COUNTER_TX_LATE_COLLISIONS,
+ BSN_PORT_COUNTER_TX_DEFERRED,
+ BSN_PORT_COUNTER_TX_PAUSE_OUTPUT,
+ BSN_PORT_COUNTER_RX_PACKETS,
+ BSN_PORT_COUNTER_TX_PACKETS,
+ BSN_PORT_COUNTER_RX_LENGTH_ERRORS,
+ BSN_PORT_COUNTER_RX_OVERFLOW_ERRORS,
+ BSN_PORT_COUNTER_TX_CARRIER_ERRORS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsEntry.java
new file mode 100644
index 0000000..19caab7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsEntry.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPortCounterStatsEntry extends OFObject {
+ OFPort getPortNo();
+ List<U64> getValues();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnPortCounterStatsEntry build();
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ List<U64> getValues();
+ Builder setValues(List<U64> values);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsReply.java
new file mode 100644
index 0000000..4f618d5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPortCounterStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnPortCounterStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnPortCounterStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnPortCounterStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnPortCounterStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsRequest.java
new file mode 100644
index 0000000..21ade35
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnPortCounterStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnPortCounterStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnPortCounterStatsReply>, OFRequest<OFBsnPortCounterStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ OFPort getPortNo();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnPortCounterStatsReply> {
+ OFBsnPortCounterStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnRoleStatus.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnRoleStatus.java
new file mode 100644
index 0000000..d28172c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnRoleStatus.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnRoleStatus extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ OFControllerRole getRole();
+ OFBsnControllerRoleReason getReason();
+ U64 getGenerationId();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnRoleStatus build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ OFControllerRole getRole();
+ Builder setRole(OFControllerRole role);
+ OFBsnControllerRoleReason getReason();
+ Builder setReason(OFBsnControllerRoleReason reason);
+ U64 getGenerationId();
+ Builder setGenerationId(U64 generationId);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsReply.java
new file mode 100644
index 0000000..6d0e2dd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsReply.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetAuxCxnsReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getNumAux();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetAuxCxnsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getNumAux();
+ Builder setNumAux(long numAux);
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsRequest.java
new file mode 100644
index 0000000..9c7561f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetAuxCxnsRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetAuxCxnsRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetAuxCxnsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getNumAux();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetAuxCxnsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getNumAux();
+ Builder setNumAux(long numAux);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetIpMask.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetIpMask.java
new file mode 100644
index 0000000..c435362
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetIpMask.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetIpMask extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getIndex();
+ long getMask();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetIpMask build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getIndex();
+ Builder setIndex(short index);
+ long getMask();
+ Builder setMask(long mask);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableReply.java
new file mode 100644
index 0000000..3847e3a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetL2TableReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ boolean isL2TableEnable();
+ int getL2TablePriority();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetL2TableReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ boolean isL2TableEnable();
+ Builder setL2TableEnable(boolean l2TableEnable);
+ int getL2TablePriority();
+ Builder setL2TablePriority(int l2TablePriority);
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableRequest.java
new file mode 100644
index 0000000..efff0cc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetL2TableRequest.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetL2TableRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetL2TableReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ boolean isL2TableEnable();
+ int getL2TablePriority();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetL2TableRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ boolean isL2TableEnable();
+ Builder setL2TableEnable(boolean l2TableEnable);
+ int getL2TablePriority();
+ Builder setL2TablePriority(int l2TablePriority);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpReply.java
new file mode 100644
index 0000000..4451548
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpReply.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetLacpReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ OFPort getPortNo();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetLacpReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpRequest.java
new file mode 100644
index 0000000..a9c133d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetLacpRequest.java
@@ -0,0 +1,69 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetLacpRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetLacpReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getEnabled();
+ OFPort getPortNo();
+ int getActorSysPriority();
+ MacAddress getActorSysMac();
+ int getActorPortPriority();
+ int getActorPortNum();
+ int getActorKey();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetLacpRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getEnabled();
+ Builder setEnabled(short enabled);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ int getActorSysPriority();
+ Builder setActorSysPriority(int actorSysPriority);
+ MacAddress getActorSysMac();
+ Builder setActorSysMac(MacAddress actorSysMac);
+ int getActorPortPriority();
+ Builder setActorPortPriority(int actorPortPriority);
+ int getActorPortNum();
+ Builder setActorPortNum(int actorPortNum);
+ int getActorKey();
+ Builder setActorKey(int actorKey);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetMirroring.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetMirroring.java
new file mode 100644
index 0000000..2a0e36c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetMirroring.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetMirroring extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ short getReportMirrorPorts();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetMirroring build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ short getReportMirrorPorts();
+ Builder setReportMirrorPorts(short reportMirrorPorts);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionReply.java
new file mode 100644
index 0000000..33b4834
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetPktinSuppressionReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetPktinSuppressionReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionRequest.java
new file mode 100644
index 0000000..07a3f88
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetPktinSuppressionRequest.java
@@ -0,0 +1,63 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetPktinSuppressionRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetPktinSuppressionReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ boolean isEnabled();
+ int getIdleTimeout();
+ int getHardTimeout();
+ int getPriority();
+ U64 getCookie();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetPktinSuppressionRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ boolean isEnabled();
+ Builder setEnabled(boolean enabled);
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout();
+ Builder setHardTimeout(int hardTimeout);
+ int getPriority();
+ Builder setPriority(int priority);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineReply.java
new file mode 100644
index 0000000..23f377a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetSwitchPipelineReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetSwitchPipelineReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineRequest.java
new file mode 100644
index 0000000..5c6bb48
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSetSwitchPipelineRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSetSwitchPipelineRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnSetSwitchPipelineReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ String getPipeline();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnSetSwitchPipelineRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ String getPipeline();
+ Builder setPipeline(String pipeline);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellCommand.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellCommand.java
new file mode 100644
index 0000000..a88be4b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellCommand.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnShellCommand extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getService();
+ byte[] getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnShellCommand build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getService();
+ Builder setService(long service);
+ byte[] getData();
+ Builder setData(byte[] data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellOutput.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellOutput.java
new file mode 100644
index 0000000..65f183a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellOutput.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnShellOutput extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ byte[] getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnShellOutput build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ byte[] getData();
+ Builder setData(byte[] data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellStatus.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellStatus.java
new file mode 100644
index 0000000..07ea119
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnShellStatus.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnShellStatus extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnShellStatus build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsReply.java
new file mode 100644
index 0000000..ee045bc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnStatsReply extends OFObject, OFExperimenterStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFExperimenterStatsReply.Builder {
+ OFBsnStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsRequest.java
new file mode 100644
index 0000000..f65bbb4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnStatsRequest<T extends OFBsnStatsReply> extends OFObject, OFExperimenterStatsRequest<T> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder<T> createBuilder();
+ public interface Builder<T extends OFBsnStatsReply> extends OFExperimenterStatsRequest.Builder<T> {
+ OFBsnStatsRequest<T> build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder<T> setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder<T> setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsEntry.java
new file mode 100644
index 0000000..7d11ed0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsEntry.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSwitchPipelineStatsEntry extends OFObject {
+ String getPipeline();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnSwitchPipelineStatsEntry build();
+ String getPipeline();
+ Builder setPipeline(String pipeline);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsReply.java
new file mode 100644
index 0000000..40cee33
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSwitchPipelineStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnSwitchPipelineStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnSwitchPipelineStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnSwitchPipelineStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnSwitchPipelineStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsRequest.java
new file mode 100644
index 0000000..e395412
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnSwitchPipelineStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnSwitchPipelineStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnSwitchPipelineStatsReply>, OFRequest<OFBsnSwitchPipelineStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnSwitchPipelineStatsReply> {
+ OFBsnSwitchPipelineStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsEntry.java
new file mode 100644
index 0000000..399a16a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsEntry.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTableChecksumStatsEntry extends OFObject {
+ TableId getTableId();
+ U64 getChecksum();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnTableChecksumStatsEntry build();
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ U64 getChecksum();
+ Builder setChecksum(U64 checksum);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsReply.java
new file mode 100644
index 0000000..dadef01c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTableChecksumStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnTableChecksumStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnTableChecksumStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnTableChecksumStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnTableChecksumStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsRequest.java
new file mode 100644
index 0000000..121f74b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableChecksumStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTableChecksumStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnTableChecksumStatsReply>, OFRequest<OFBsnTableChecksumStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnTableChecksumStatsReply> {
+ OFBsnTableChecksumStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableSetBucketsSize.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableSetBucketsSize.java
new file mode 100644
index 0000000..f86f447
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTableSetBucketsSize.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTableSetBucketsSize extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ TableId getTableId();
+ long getBucketsSize();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnTableSetBucketsSize build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ long getBucketsSize();
+ Builder setBucketsSize(long bucketsSize);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTcpFlag.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTcpFlag.java
new file mode 100644
index 0000000..0883a10
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTcpFlag.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnTcpFlag {
+ BSN_TCP_FLAG_FIN,
+ BSN_TCP_FLAG_SYN,
+ BSN_TCP_FLAG_RST,
+ BSN_TCP_FLAG_PSH,
+ BSN_TCP_FLAG_ACK,
+ BSN_TCP_FLAG_URG,
+ BSN_TCP_FLAG_ECE,
+ BSN_TCP_FLAG_CWR,
+ BSN_TCP_FLAG_NS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeReply.java
new file mode 100644
index 0000000..2b73179
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTimeReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ U64 getTimeMs();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnTimeReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ U64 getTimeMs();
+ Builder setTimeMs(U64 timeMs);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeRequest.java
new file mode 100644
index 0000000..438f2d5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnTimeRequest.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTimeRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnTimeReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnTimeRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnUdfAnchor.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnUdfAnchor.java
new file mode 100644
index 0000000..afdd4c8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnUdfAnchor.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnUdfAnchor {
+ BSN_UDF_ANCHOR_PACKET_START,
+ BSN_UDF_ANCHOR_L3_HEADER_START,
+ BSN_UDF_ANCHOR_L4_HEADER_START;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateReply.java
new file mode 100644
index 0000000..5e17e22
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVirtualPortCreateReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ long getVportNo();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnVirtualPortCreateReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ long getVportNo();
+ Builder setVportNo(long vportNo);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateRequest.java
new file mode 100644
index 0000000..e916e0f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortCreateRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVirtualPortCreateRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnVirtualPortCreateReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ OFBsnVport getVport();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnVirtualPortCreateRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ OFBsnVport getVport();
+ Builder setVport(OFBsnVport vport);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveReply.java
new file mode 100644
index 0000000..d83182e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVirtualPortRemoveReply extends OFObject, OFBsnHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnVirtualPortRemoveReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getStatus();
+ Builder setStatus(long status);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveRequest.java
new file mode 100644
index 0000000..ae43dea
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVirtualPortRemoveRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVirtualPortRemoveRequest extends OFObject, OFBsnHeader, OFRequest<OFBsnVirtualPortRemoveReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ long getVportNo();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnHeader.Builder {
+ OFBsnVirtualPortRemoveRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ long getVportNo();
+ Builder setVportNo(long vportNo);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterConstants.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterConstants.java
new file mode 100644
index 0000000..0c85363
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterConstants.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVlanCounterConstants {
+ BSN_VLAN_ALL;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsEntry.java
new file mode 100644
index 0000000..d8e2dde
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsEntry.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVlanCounterStatsEntry extends OFObject {
+ int getVlanVid();
+ List<U64> getValues();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnVlanCounterStatsEntry build();
+ int getVlanVid();
+ Builder setVlanVid(int vlanVid);
+ List<U64> getValues();
+ Builder setValues(List<U64> values);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsReply.java
new file mode 100644
index 0000000..0789370
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVlanCounterStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnVlanCounterStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnVlanCounterStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnVlanCounterStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnVlanCounterStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsRequest.java
new file mode 100644
index 0000000..b29f0d9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVlanCounterStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnVlanCounterStatsReply>, OFRequest<OFBsnVlanCounterStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ int getVlanVid();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnVlanCounterStatsReply> {
+ OFBsnVlanCounterStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ int getVlanVid();
+ Builder setVlanVid(int vlanVid);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterT.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterT.java
new file mode 100644
index 0000000..911f702
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVlanCounterT.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVlanCounterT {
+ BSN_VLAN_COUNTER_RX_BYTES,
+ BSN_VLAN_COUNTER_RX_PACKETS,
+ BSN_VLAN_COUNTER_TX_BYTES,
+ BSN_VLAN_COUNTER_TX_PACKETS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVport.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVport.java
new file mode 100644
index 0000000..20f71bf
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVport.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVport extends OFObject {
+ int getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnVport build();
+ int getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2Gre.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2Gre.java
new file mode 100644
index 0000000..58144b1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2Gre.java
@@ -0,0 +1,77 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVportL2Gre extends OFObject, OFBsnVport {
+ int getType();
+ Set<OFBsnVportL2GreFlags> getFlags();
+ OFPort getPortNo();
+ OFPort getLoopbackPortNo();
+ MacAddress getLocalMac();
+ MacAddress getNhMac();
+ IPv4Address getSrcIp();
+ IPv4Address getDstIp();
+ short getDscp();
+ short getTtl();
+ long getVpn();
+ long getRateLimit();
+ String getIfName();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnVport.Builder {
+ OFBsnVportL2Gre build();
+ int getType();
+ Set<OFBsnVportL2GreFlags> getFlags();
+ Builder setFlags(Set<OFBsnVportL2GreFlags> flags);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ OFPort getLoopbackPortNo();
+ Builder setLoopbackPortNo(OFPort loopbackPortNo);
+ MacAddress getLocalMac();
+ Builder setLocalMac(MacAddress localMac);
+ MacAddress getNhMac();
+ Builder setNhMac(MacAddress nhMac);
+ IPv4Address getSrcIp();
+ Builder setSrcIp(IPv4Address srcIp);
+ IPv4Address getDstIp();
+ Builder setDstIp(IPv4Address dstIp);
+ short getDscp();
+ Builder setDscp(short dscp);
+ short getTtl();
+ Builder setTtl(short ttl);
+ long getVpn();
+ Builder setVpn(long vpn);
+ long getRateLimit();
+ Builder setRateLimit(long rateLimit);
+ String getIfName();
+ Builder setIfName(String ifName);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2GreFlags.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2GreFlags.java
new file mode 100644
index 0000000..8a8728b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportL2GreFlags.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVportL2GreFlags {
+ BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID,
+ BSN_VPORT_L2GRE_DSCP_ASSIGN,
+ BSN_VPORT_L2GRE_DSCP_COPY,
+ BSN_VPORT_L2GRE_LOOPBACK_IS_VALID,
+ BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQ.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQ.java
new file mode 100644
index 0000000..3b05be9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQ.java
@@ -0,0 +1,58 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVportQInQ extends OFObject, OFBsnVport {
+ int getType();
+ long getPortNo();
+ int getIngressTpid();
+ int getIngressVlanId();
+ int getEgressTpid();
+ int getEgressVlanId();
+ String getIfName();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnVport.Builder {
+ OFBsnVportQInQ build();
+ int getType();
+ long getPortNo();
+ Builder setPortNo(long portNo);
+ int getIngressTpid();
+ Builder setIngressTpid(int ingressTpid);
+ int getIngressVlanId();
+ Builder setIngressVlanId(int ingressVlanId);
+ int getEgressTpid();
+ Builder setEgressTpid(int egressTpid);
+ int getEgressVlanId();
+ Builder setEgressVlanId(int egressVlanId);
+ String getIfName();
+ Builder setIfName(String ifName);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQUntagged.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQUntagged.java
new file mode 100644
index 0000000..7e2a4be
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportQInQUntagged.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVportQInQUntagged {
+ BSN_VPORT_Q_IN_Q_UNTAGGED;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportStatus.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportStatus.java
new file mode 100644
index 0000000..f5e3132
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVportStatus.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVportStatus {
+ BSN_VPORT_STATUS_OK,
+ BSN_VPORT_STATUS_FAILED;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterConstants.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterConstants.java
new file mode 100644
index 0000000..21088de
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterConstants.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVrfCounterConstants {
+ BSN_VRF_ALL;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsEntry.java
new file mode 100644
index 0000000..18d6245
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsEntry.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVrfCounterStatsEntry extends OFObject {
+ long getVrf();
+ List<U64> getValues();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnVrfCounterStatsEntry build();
+ long getVrf();
+ Builder setVrf(long vrf);
+ List<U64> getValues();
+ Builder setValues(List<U64> values);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsReply.java
new file mode 100644
index 0000000..2a564d0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsReply.java
@@ -0,0 +1,57 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVrfCounterStatsReply extends OFObject, OFBsnStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnVrfCounterStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsReply.Builder {
+ OFBsnVrfCounterStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ List<OFBsnVrfCounterStatsEntry> getEntries();
+ Builder setEntries(List<OFBsnVrfCounterStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsRequest.java
new file mode 100644
index 0000000..36bd75b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterStatsRequest.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnVrfCounterStatsRequest extends OFObject, OFBsnStatsRequest<OFBsnVrfCounterStatsReply>, OFRequest<OFBsnVrfCounterStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+ long getSubtype();
+ long getVrf();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnStatsRequest.Builder<OFBsnVrfCounterStatsReply> {
+ OFBsnVrfCounterStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ long getSubtype();
+ long getVrf();
+ Builder setVrf(long vrf);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterT.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterT.java
new file mode 100644
index 0000000..38e537d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBsnVrfCounterT.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFBsnVrfCounterT {
+ BSN_VRF_COUNTER_BYTES,
+ BSN_VRF_COUNTER_PACKETS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucket.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucket.java
new file mode 100644
index 0000000..02af70a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucket.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBucket extends OFObject {
+ int getWeight();
+ OFPort getWatchPort();
+ OFGroup getWatchGroup();
+ List<OFAction> getActions();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBucket build();
+ int getWeight();
+ Builder setWeight(int weight);
+ OFPort getWatchPort();
+ Builder setWatchPort(OFPort watchPort);
+ OFGroup getWatchGroup();
+ Builder setWatchGroup(OFGroup watchGroup);
+ List<OFAction> getActions();
+ Builder setActions(List<OFAction> actions);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucketCounter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucketCounter.java
new file mode 100644
index 0000000..7ee630a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFBucketCounter.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBucketCounter extends OFObject {
+ U64 getPacketCount();
+ U64 getByteCount();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBucketCounter build();
+ U64 getPacketCount();
+ Builder setPacketCount(U64 packetCount);
+ U64 getByteCount();
+ Builder setByteCount(U64 byteCount);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFCapabilities.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFCapabilities.java
new file mode 100644
index 0000000..5444962
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFCapabilities.java
@@ -0,0 +1,38 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFCapabilities {
+ FLOW_STATS,
+ TABLE_STATS,
+ PORT_STATS,
+ STP,
+ RESERVED,
+ IP_REASM,
+ QUEUE_STATS,
+ ARP_MATCH_IP,
+ GROUP_STATS,
+ PORT_BLOCKED;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFConfigFlags.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFConfigFlags.java
new file mode 100644
index 0000000..8ea061b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFConfigFlags.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFConfigFlags {
+ FRAG_NORMAL,
+ FRAG_DROP,
+ FRAG_REASM,
+ FRAG_MASK,
+ INVALID_TTL_TO_CONTROLLER;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerMaxLen.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerMaxLen.java
new file mode 100644
index 0000000..c2759d9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerMaxLen.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFControllerMaxLen {
+ MAX,
+ NO_BUFFER;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerRole.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerRole.java
new file mode 100644
index 0000000..4880189
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFControllerRole.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFControllerRole {
+ ROLE_NOCHANGE,
+ ROLE_EQUAL,
+ ROLE_MASTER,
+ ROLE_SLAVE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsReply.java
new file mode 100644
index 0000000..cdcd1bf
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsReply.java
@@ -0,0 +1,64 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFDescStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ String getMfrDesc();
+ String getHwDesc();
+ String getSwDesc();
+ String getSerialNum();
+ String getDpDesc();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFDescStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ String getMfrDesc();
+ Builder setMfrDesc(String mfrDesc);
+ String getHwDesc();
+ Builder setHwDesc(String hwDesc);
+ String getSwDesc();
+ Builder setSwDesc(String swDesc);
+ String getSerialNum();
+ Builder setSerialNum(String serialNum);
+ String getDpDesc();
+ Builder setDpDesc(String dpDesc);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsRequest.java
new file mode 100644
index 0000000..e0efe40
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFDescStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFDescStatsRequest extends OFObject, OFStatsRequest<OFDescStatsReply>, OFRequest<OFDescStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFDescStatsReply> {
+ OFDescStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoReply.java
new file mode 100644
index 0000000..ba8b181
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoReply.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFEchoReply extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ byte[] getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFEchoReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ byte[] getData();
+ Builder setData(byte[] data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoRequest.java
new file mode 100644
index 0000000..6276280
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFEchoRequest.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFEchoRequest extends OFObject, OFMessage, OFRequest<OFEchoReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ byte[] getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFEchoRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ byte[] getData();
+ Builder setData(byte[] data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorMsg.java
new file mode 100644
index 0000000..dea4e97
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorMsg.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFErrorMsg extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorType.java
new file mode 100644
index 0000000..53fd319
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFErrorType.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFErrorType {
+ HELLO_FAILED,
+ BAD_REQUEST,
+ BAD_ACTION,
+ FLOW_MOD_FAILED,
+ PORT_MOD_FAILED,
+ QUEUE_OP_FAILED,
+ BAD_INSTRUCTION,
+ BAD_MATCH,
+ GROUP_MOD_FAILED,
+ TABLE_MOD_FAILED,
+ SWITCH_CONFIG_FAILED,
+ ROLE_REQUEST_FAILED,
+ EXPERIMENTER,
+ METER_MOD_FAILED,
+ TABLE_FEATURES_FAILED;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenter.java
new file mode 100644
index 0000000..f953879
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenter.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFExperimenter extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFExperimenter build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsReply.java
new file mode 100644
index 0000000..a308ab2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsReply.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFExperimenterStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getExperimenter();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFExperimenterStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getExperimenter();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsRequest.java
new file mode 100644
index 0000000..bb92557
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFExperimenterStatsRequest.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFExperimenterStatsRequest<T extends OFExperimenterStatsReply> extends OFObject, OFStatsRequest<T> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getExperimenter();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder<T> createBuilder();
+ public interface Builder<T extends OFExperimenterStatsReply> extends OFStatsRequest.Builder<T> {
+ OFExperimenterStatsRequest<T> build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder<T> setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder<T> setFlags(Set<OFStatsRequestFlags> flags);
+ long getExperimenter();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactories.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactories.java
new file mode 100644
index 0000000..afc2f1f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactories.java
@@ -0,0 +1,74 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factories.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public final class OFFactories {
+
+ private static final GenericReader GENERIC_READER = new GenericReader();
+
+ public static OFFactory getFactory(OFVersion version) {
+ switch(version) {
+ case OF_10:
+ return org.projectfloodlight.openflow.protocol.ver10.OFFactoryVer10.INSTANCE;
+ case OF_11:
+ return org.projectfloodlight.openflow.protocol.ver11.OFFactoryVer11.INSTANCE;
+ case OF_12:
+ return org.projectfloodlight.openflow.protocol.ver12.OFFactoryVer12.INSTANCE;
+ case OF_13:
+ return org.projectfloodlight.openflow.protocol.ver13.OFFactoryVer13.INSTANCE;
+ default:
+ throw new IllegalArgumentException("Unknown version: "+version);
+ }
+ }
+
+ private static class GenericReader implements OFMessageReader<OFMessage> {
+ public OFMessage readFrom(ChannelBuffer bb) throws OFParseError {
+ short wireVersion = U8.f(bb.getByte(0));
+ OFFactory factory;
+ switch (wireVersion) {
+ case 1:
+ factory = org.projectfloodlight.openflow.protocol.ver10.OFFactoryVer10.INSTANCE;
+ break;
+ case 2:
+ factory = org.projectfloodlight.openflow.protocol.ver11.OFFactoryVer11.INSTANCE;
+ break;
+ case 3:
+ factory = org.projectfloodlight.openflow.protocol.ver12.OFFactoryVer12.INSTANCE;
+ break;
+ case 4:
+ factory = org.projectfloodlight.openflow.protocol.ver13.OFFactoryVer13.INSTANCE;
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown wire version: " + wireVersion);
+ }
+ return factory.getReader().readFrom(bb);
+ }
+ }
+
+ public static OFMessageReader<OFMessage> getGenericReader() {
+ return GENERIC_READER;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactory.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactory.java
new file mode 100644
index 0000000..7f1ae47
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFactory.java
@@ -0,0 +1,336 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+
+public interface OFFactory extends XidGenerator {
+ // Subfactories
+ OFActions actions();
+ OFInstructions instructions();
+ OFMeterBands meterBands();
+ OFOxms oxms();
+ OFQueueProps queueProps();
+ OFErrorMsgs errorMsgs();
+ OFActionIds actionIds();
+ OFInstructionIds instructionIds();
+ OFBsnTlvs bsnTlvs();
+
+ OFAggregateStatsReply.Builder buildAggregateStatsReply();
+ OFAggregateStatsRequest.Builder buildAggregateStatsRequest();
+ OFBarrierReply.Builder buildBarrierReply();
+ OFBarrierReply barrierReply();
+ OFBarrierRequest.Builder buildBarrierRequest();
+ OFBarrierRequest barrierRequest();
+ OFBsnBwClearDataReply.Builder buildBsnBwClearDataReply();
+ OFBsnBwClearDataReply bsnBwClearDataReply(long status);
+ OFBsnBwClearDataRequest.Builder buildBsnBwClearDataRequest();
+ OFBsnBwClearDataRequest bsnBwClearDataRequest();
+ OFBsnBwEnableGetReply.Builder buildBsnBwEnableGetReply();
+ OFBsnBwEnableGetReply bsnBwEnableGetReply(long enabled);
+ OFBsnBwEnableGetRequest.Builder buildBsnBwEnableGetRequest();
+ OFBsnBwEnableGetRequest bsnBwEnableGetRequest();
+ OFBsnBwEnableSetReply.Builder buildBsnBwEnableSetReply();
+ OFBsnBwEnableSetRequest.Builder buildBsnBwEnableSetRequest();
+ OFBsnBwEnableSetRequest bsnBwEnableSetRequest(long enable);
+ OFBsnGetInterfacesReply.Builder buildBsnGetInterfacesReply();
+ OFBsnGetInterfacesReply bsnGetInterfacesReply(List<OFBsnInterface> interfaces);
+ OFBsnGetInterfacesRequest.Builder buildBsnGetInterfacesRequest();
+ OFBsnGetInterfacesRequest bsnGetInterfacesRequest();
+ OFBsnGetIpMaskReply.Builder buildBsnGetIpMaskReply() throws UnsupportedOperationException;
+ OFBsnGetIpMaskRequest.Builder buildBsnGetIpMaskRequest() throws UnsupportedOperationException;
+ OFBsnGetIpMaskRequest bsnGetIpMaskRequest(short index);
+ OFBsnGetL2TableReply.Builder buildBsnGetL2TableReply() throws UnsupportedOperationException;
+ OFBsnGetL2TableRequest.Builder buildBsnGetL2TableRequest() throws UnsupportedOperationException;
+ OFBsnGetL2TableRequest bsnGetL2TableRequest();
+ OFBsnGetMirroringReply.Builder buildBsnGetMirroringReply();
+ OFBsnGetMirroringReply bsnGetMirroringReply(short reportMirrorPorts);
+ OFBsnGetMirroringRequest.Builder buildBsnGetMirroringRequest();
+ OFBsnGetMirroringRequest bsnGetMirroringRequest(short reportMirrorPorts);
+ OFBsnHybridGetReply.Builder buildBsnHybridGetReply() throws UnsupportedOperationException;
+ OFBsnHybridGetRequest.Builder buildBsnHybridGetRequest() throws UnsupportedOperationException;
+ OFBsnHybridGetRequest bsnHybridGetRequest();
+ OFBsnInterface.Builder buildBsnInterface();
+ OFBsnPduRxReply.Builder buildBsnPduRxReply();
+ OFBsnPduRxRequest.Builder buildBsnPduRxRequest();
+ OFBsnPduRxTimeout.Builder buildBsnPduRxTimeout();
+ OFBsnPduTxReply.Builder buildBsnPduTxReply();
+ OFBsnPduTxRequest.Builder buildBsnPduTxRequest();
+ OFBsnSetIpMask.Builder buildBsnSetIpMask() throws UnsupportedOperationException;
+ OFBsnSetL2TableReply.Builder buildBsnSetL2TableReply() throws UnsupportedOperationException;
+ OFBsnSetL2TableRequest.Builder buildBsnSetL2TableRequest() throws UnsupportedOperationException;
+ OFBsnSetMirroring.Builder buildBsnSetMirroring();
+ OFBsnSetMirroring bsnSetMirroring(short reportMirrorPorts);
+ OFBsnSetPktinSuppressionReply.Builder buildBsnSetPktinSuppressionReply();
+ OFBsnSetPktinSuppressionReply bsnSetPktinSuppressionReply(long status);
+ OFBsnSetPktinSuppressionRequest.Builder buildBsnSetPktinSuppressionRequest();
+ OFBsnShellCommand.Builder buildBsnShellCommand() throws UnsupportedOperationException;
+ OFBsnShellOutput.Builder buildBsnShellOutput() throws UnsupportedOperationException;
+ OFBsnShellOutput bsnShellOutput(byte[] data);
+ OFBsnShellStatus.Builder buildBsnShellStatus() throws UnsupportedOperationException;
+ OFBsnShellStatus bsnShellStatus(long status);
+ OFBsnVirtualPortCreateReply.Builder buildBsnVirtualPortCreateReply();
+ OFBsnVirtualPortCreateRequest.Builder buildBsnVirtualPortCreateRequest();
+ OFBsnVirtualPortCreateRequest bsnVirtualPortCreateRequest(OFBsnVport vport);
+ OFBsnVirtualPortRemoveReply.Builder buildBsnVirtualPortRemoveReply();
+ OFBsnVirtualPortRemoveReply bsnVirtualPortRemoveReply(long status);
+ OFBsnVirtualPortRemoveRequest.Builder buildBsnVirtualPortRemoveRequest();
+ OFBsnVirtualPortRemoveRequest bsnVirtualPortRemoveRequest(long vportNo);
+ OFBsnVportL2Gre.Builder buildBsnVportL2Gre();
+ OFBsnVportQInQ.Builder buildBsnVportQInQ();
+ OFDescStatsReply.Builder buildDescStatsReply();
+ OFDescStatsRequest.Builder buildDescStatsRequest();
+ OFDescStatsRequest descStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFEchoReply.Builder buildEchoReply();
+ OFEchoReply echoReply(byte[] data);
+ OFEchoRequest.Builder buildEchoRequest();
+ OFEchoRequest echoRequest(byte[] data);
+ OFFeaturesReply.Builder buildFeaturesReply();
+ OFFeaturesRequest.Builder buildFeaturesRequest();
+ OFFeaturesRequest featuresRequest();
+ OFFlowAdd.Builder buildFlowAdd();
+ OFFlowDelete.Builder buildFlowDelete();
+ OFFlowDeleteStrict.Builder buildFlowDeleteStrict();
+ OFFlowModify.Builder buildFlowModify();
+ OFFlowModifyStrict.Builder buildFlowModifyStrict();
+ OFFlowRemoved.Builder buildFlowRemoved();
+ OFFlowStatsEntry.Builder buildFlowStatsEntry();
+ OFFlowStatsReply.Builder buildFlowStatsReply();
+ OFFlowStatsRequest.Builder buildFlowStatsRequest();
+ OFGetConfigReply.Builder buildGetConfigReply();
+ OFGetConfigRequest.Builder buildGetConfigRequest();
+ OFGetConfigRequest getConfigRequest();
+ OFHello.Builder buildHello();
+ OFHello hello(List<OFHelloElem> elements);
+ OFMatchV1.Builder buildMatchV1() throws UnsupportedOperationException;
+ OFNiciraControllerRoleReply.Builder buildNiciraControllerRoleReply() throws UnsupportedOperationException;
+ OFNiciraControllerRoleReply niciraControllerRoleReply(OFNiciraControllerRole role);
+ OFNiciraControllerRoleRequest.Builder buildNiciraControllerRoleRequest() throws UnsupportedOperationException;
+ OFNiciraControllerRoleRequest niciraControllerRoleRequest(OFNiciraControllerRole role);
+ OFPacketIn.Builder buildPacketIn();
+ OFPacketOut.Builder buildPacketOut();
+ OFPacketQueue.Builder buildPacketQueue();
+ OFPortDesc.Builder buildPortDesc();
+ OFPortMod.Builder buildPortMod();
+ OFPortStatsEntry.Builder buildPortStatsEntry();
+ OFPortStatsReply.Builder buildPortStatsReply();
+ OFPortStatsRequest.Builder buildPortStatsRequest();
+ OFPortStatus.Builder buildPortStatus();
+ OFQueueGetConfigReply.Builder buildQueueGetConfigReply();
+ OFQueueGetConfigRequest.Builder buildQueueGetConfigRequest();
+ OFQueueGetConfigRequest queueGetConfigRequest(OFPort port);
+ OFQueueStatsEntry.Builder buildQueueStatsEntry();
+ OFQueueStatsReply.Builder buildQueueStatsReply();
+ OFQueueStatsRequest.Builder buildQueueStatsRequest();
+ OFSetConfig.Builder buildSetConfig();
+ OFTableMod.Builder buildTableMod();
+ OFTableStatsEntry.Builder buildTableStatsEntry();
+ OFTableStatsReply.Builder buildTableStatsReply();
+ OFTableStatsRequest.Builder buildTableStatsRequest();
+ OFTableStatsRequest tableStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBucket.Builder buildBucket() throws UnsupportedOperationException;
+ OFBucketCounter.Builder buildBucketCounter() throws UnsupportedOperationException;
+ OFBucketCounter bucketCounter(U64 packetCount, U64 byteCount);
+ OFGroupAdd.Builder buildGroupAdd() throws UnsupportedOperationException;
+ OFGroupDelete.Builder buildGroupDelete() throws UnsupportedOperationException;
+ OFGroupDescStatsEntry.Builder buildGroupDescStatsEntry() throws UnsupportedOperationException;
+ OFGroupDescStatsReply.Builder buildGroupDescStatsReply() throws UnsupportedOperationException;
+ OFGroupDescStatsRequest.Builder buildGroupDescStatsRequest() throws UnsupportedOperationException;
+ OFGroupDescStatsRequest groupDescStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFGroupModify.Builder buildGroupModify() throws UnsupportedOperationException;
+ OFGroupStatsEntry.Builder buildGroupStatsEntry() throws UnsupportedOperationException;
+ OFGroupStatsReply.Builder buildGroupStatsReply() throws UnsupportedOperationException;
+ OFGroupStatsRequest.Builder buildGroupStatsRequest() throws UnsupportedOperationException;
+ OFMatchV2.Builder buildMatchV2() throws UnsupportedOperationException;
+ OFGroupFeaturesStatsReply.Builder buildGroupFeaturesStatsReply() throws UnsupportedOperationException;
+ OFGroupFeaturesStatsRequest.Builder buildGroupFeaturesStatsRequest() throws UnsupportedOperationException;
+ OFGroupFeaturesStatsRequest groupFeaturesStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFMatchV3.Builder buildMatchV3() throws UnsupportedOperationException;
+ OFMatchV3 matchV3(OFOxmList oxmList);
+ OFRoleReply.Builder buildRoleReply() throws UnsupportedOperationException;
+ OFRoleRequest.Builder buildRoleRequest() throws UnsupportedOperationException;
+ OFAsyncGetReply.Builder buildAsyncGetReply() throws UnsupportedOperationException;
+ OFAsyncGetRequest.Builder buildAsyncGetRequest() throws UnsupportedOperationException;
+ OFAsyncSet.Builder buildAsyncSet() throws UnsupportedOperationException;
+ OFBsnArpIdle.Builder buildBsnArpIdle() throws UnsupportedOperationException;
+ OFBsnControllerConnection.Builder buildBsnControllerConnection() throws UnsupportedOperationException;
+ OFBsnControllerConnectionsReply.Builder buildBsnControllerConnectionsReply() throws UnsupportedOperationException;
+ OFBsnControllerConnectionsReply bsnControllerConnectionsReply(List<OFBsnControllerConnection> connections);
+ OFBsnControllerConnectionsRequest.Builder buildBsnControllerConnectionsRequest() throws UnsupportedOperationException;
+ OFBsnControllerConnectionsRequest bsnControllerConnectionsRequest();
+ OFBsnDebugCounterDescStatsEntry.Builder buildBsnDebugCounterDescStatsEntry() throws UnsupportedOperationException;
+ OFBsnDebugCounterDescStatsReply.Builder buildBsnDebugCounterDescStatsReply() throws UnsupportedOperationException;
+ OFBsnDebugCounterDescStatsRequest.Builder buildBsnDebugCounterDescStatsRequest() throws UnsupportedOperationException;
+ OFBsnDebugCounterDescStatsRequest bsnDebugCounterDescStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBsnDebugCounterStatsEntry.Builder buildBsnDebugCounterStatsEntry() throws UnsupportedOperationException;
+ OFBsnDebugCounterStatsEntry bsnDebugCounterStatsEntry(U64 counterId, U64 value);
+ OFBsnDebugCounterStatsReply.Builder buildBsnDebugCounterStatsReply() throws UnsupportedOperationException;
+ OFBsnDebugCounterStatsRequest.Builder buildBsnDebugCounterStatsRequest() throws UnsupportedOperationException;
+ OFBsnDebugCounterStatsRequest bsnDebugCounterStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBsnFlowChecksumBucketStatsEntry.Builder buildBsnFlowChecksumBucketStatsEntry() throws UnsupportedOperationException;
+ OFBsnFlowChecksumBucketStatsEntry bsnFlowChecksumBucketStatsEntry(U64 checksum);
+ OFBsnFlowChecksumBucketStatsReply.Builder buildBsnFlowChecksumBucketStatsReply() throws UnsupportedOperationException;
+ OFBsnFlowChecksumBucketStatsRequest.Builder buildBsnFlowChecksumBucketStatsRequest() throws UnsupportedOperationException;
+ OFBsnFlowIdle.Builder buildBsnFlowIdle() throws UnsupportedOperationException;
+ OFBsnFlowIdleEnableGetReply.Builder buildBsnFlowIdleEnableGetReply() throws UnsupportedOperationException;
+ OFBsnFlowIdleEnableGetReply bsnFlowIdleEnableGetReply(long enabled);
+ OFBsnFlowIdleEnableGetRequest.Builder buildBsnFlowIdleEnableGetRequest() throws UnsupportedOperationException;
+ OFBsnFlowIdleEnableGetRequest bsnFlowIdleEnableGetRequest();
+ OFBsnFlowIdleEnableSetReply.Builder buildBsnFlowIdleEnableSetReply() throws UnsupportedOperationException;
+ OFBsnFlowIdleEnableSetRequest.Builder buildBsnFlowIdleEnableSetRequest() throws UnsupportedOperationException;
+ OFBsnFlowIdleEnableSetRequest bsnFlowIdleEnableSetRequest(long enable);
+ OFBsnGentableBucketStatsEntry.Builder buildBsnGentableBucketStatsEntry() throws UnsupportedOperationException;
+ OFBsnGentableBucketStatsEntry bsnGentableBucketStatsEntry(U128 checksum);
+ OFBsnGentableBucketStatsReply.Builder buildBsnGentableBucketStatsReply() throws UnsupportedOperationException;
+ OFBsnGentableBucketStatsRequest.Builder buildBsnGentableBucketStatsRequest() throws UnsupportedOperationException;
+ OFBsnGentableClearReply.Builder buildBsnGentableClearReply() throws UnsupportedOperationException;
+ OFBsnGentableClearRequest.Builder buildBsnGentableClearRequest() throws UnsupportedOperationException;
+ OFBsnGentableDescStatsEntry.Builder buildBsnGentableDescStatsEntry() throws UnsupportedOperationException;
+ OFBsnGentableDescStatsReply.Builder buildBsnGentableDescStatsReply() throws UnsupportedOperationException;
+ OFBsnGentableDescStatsRequest.Builder buildBsnGentableDescStatsRequest() throws UnsupportedOperationException;
+ OFBsnGentableDescStatsRequest bsnGentableDescStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBsnGentableEntryAdd.Builder buildBsnGentableEntryAdd() throws UnsupportedOperationException;
+ OFBsnGentableEntryDelete.Builder buildBsnGentableEntryDelete() throws UnsupportedOperationException;
+ OFBsnGentableEntryDescStatsEntry.Builder buildBsnGentableEntryDescStatsEntry() throws UnsupportedOperationException;
+ OFBsnGentableEntryDescStatsReply.Builder buildBsnGentableEntryDescStatsReply() throws UnsupportedOperationException;
+ OFBsnGentableEntryDescStatsRequest.Builder buildBsnGentableEntryDescStatsRequest() throws UnsupportedOperationException;
+ OFBsnGentableEntryStatsEntry.Builder buildBsnGentableEntryStatsEntry() throws UnsupportedOperationException;
+ OFBsnGentableEntryStatsEntry bsnGentableEntryStatsEntry(List<OFBsnTlv> key, List<OFBsnTlv> stats);
+ OFBsnGentableEntryStatsReply.Builder buildBsnGentableEntryStatsReply() throws UnsupportedOperationException;
+ OFBsnGentableEntryStatsRequest.Builder buildBsnGentableEntryStatsRequest() throws UnsupportedOperationException;
+ OFBsnGentableSetBucketsSize.Builder buildBsnGentableSetBucketsSize() throws UnsupportedOperationException;
+ OFBsnGentableStatsEntry.Builder buildBsnGentableStatsEntry() throws UnsupportedOperationException;
+ OFBsnGentableStatsReply.Builder buildBsnGentableStatsReply() throws UnsupportedOperationException;
+ OFBsnGentableStatsRequest.Builder buildBsnGentableStatsRequest() throws UnsupportedOperationException;
+ OFBsnGentableStatsRequest bsnGentableStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBsnGetSwitchPipelineReply.Builder buildBsnGetSwitchPipelineReply() throws UnsupportedOperationException;
+ OFBsnGetSwitchPipelineReply bsnGetSwitchPipelineReply(String pipeline);
+ OFBsnGetSwitchPipelineRequest.Builder buildBsnGetSwitchPipelineRequest() throws UnsupportedOperationException;
+ OFBsnGetSwitchPipelineRequest bsnGetSwitchPipelineRequest();
+ OFBsnImageDescStatsReply.Builder buildBsnImageDescStatsReply() throws UnsupportedOperationException;
+ OFBsnImageDescStatsRequest.Builder buildBsnImageDescStatsRequest() throws UnsupportedOperationException;
+ OFBsnImageDescStatsRequest bsnImageDescStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBsnLacpConvergenceNotif.Builder buildBsnLacpConvergenceNotif() throws UnsupportedOperationException;
+ OFBsnLacpStatsEntry.Builder buildBsnLacpStatsEntry() throws UnsupportedOperationException;
+ OFBsnLacpStatsReply.Builder buildBsnLacpStatsReply() throws UnsupportedOperationException;
+ OFBsnLacpStatsRequest.Builder buildBsnLacpStatsRequest() throws UnsupportedOperationException;
+ OFBsnLacpStatsRequest bsnLacpStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBsnLog.Builder buildBsnLog() throws UnsupportedOperationException;
+ OFBsnPortCounterStatsEntry.Builder buildBsnPortCounterStatsEntry() throws UnsupportedOperationException;
+ OFBsnPortCounterStatsEntry bsnPortCounterStatsEntry(OFPort portNo, List<U64> values);
+ OFBsnPortCounterStatsReply.Builder buildBsnPortCounterStatsReply() throws UnsupportedOperationException;
+ OFBsnPortCounterStatsRequest.Builder buildBsnPortCounterStatsRequest() throws UnsupportedOperationException;
+ OFBsnRoleStatus.Builder buildBsnRoleStatus() throws UnsupportedOperationException;
+ OFBsnSetAuxCxnsReply.Builder buildBsnSetAuxCxnsReply() throws UnsupportedOperationException;
+ OFBsnSetAuxCxnsRequest.Builder buildBsnSetAuxCxnsRequest() throws UnsupportedOperationException;
+ OFBsnSetAuxCxnsRequest bsnSetAuxCxnsRequest(long numAux);
+ OFBsnSetLacpReply.Builder buildBsnSetLacpReply() throws UnsupportedOperationException;
+ OFBsnSetLacpRequest.Builder buildBsnSetLacpRequest() throws UnsupportedOperationException;
+ OFBsnSetSwitchPipelineReply.Builder buildBsnSetSwitchPipelineReply() throws UnsupportedOperationException;
+ OFBsnSetSwitchPipelineReply bsnSetSwitchPipelineReply(long status);
+ OFBsnSetSwitchPipelineRequest.Builder buildBsnSetSwitchPipelineRequest() throws UnsupportedOperationException;
+ OFBsnSetSwitchPipelineRequest bsnSetSwitchPipelineRequest(String pipeline);
+ OFBsnSwitchPipelineStatsEntry.Builder buildBsnSwitchPipelineStatsEntry() throws UnsupportedOperationException;
+ OFBsnSwitchPipelineStatsEntry bsnSwitchPipelineStatsEntry(String pipeline);
+ OFBsnSwitchPipelineStatsReply.Builder buildBsnSwitchPipelineStatsReply() throws UnsupportedOperationException;
+ OFBsnSwitchPipelineStatsRequest.Builder buildBsnSwitchPipelineStatsRequest() throws UnsupportedOperationException;
+ OFBsnSwitchPipelineStatsRequest bsnSwitchPipelineStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBsnTableChecksumStatsEntry.Builder buildBsnTableChecksumStatsEntry() throws UnsupportedOperationException;
+ OFBsnTableChecksumStatsEntry bsnTableChecksumStatsEntry(TableId tableId, U64 checksum);
+ OFBsnTableChecksumStatsReply.Builder buildBsnTableChecksumStatsReply() throws UnsupportedOperationException;
+ OFBsnTableChecksumStatsRequest.Builder buildBsnTableChecksumStatsRequest() throws UnsupportedOperationException;
+ OFBsnTableChecksumStatsRequest bsnTableChecksumStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFBsnTableSetBucketsSize.Builder buildBsnTableSetBucketsSize() throws UnsupportedOperationException;
+ OFBsnTimeReply.Builder buildBsnTimeReply() throws UnsupportedOperationException;
+ OFBsnTimeReply bsnTimeReply(U64 timeMs);
+ OFBsnTimeRequest.Builder buildBsnTimeRequest() throws UnsupportedOperationException;
+ OFBsnTimeRequest bsnTimeRequest();
+ OFBsnVlanCounterStatsEntry.Builder buildBsnVlanCounterStatsEntry() throws UnsupportedOperationException;
+ OFBsnVlanCounterStatsEntry bsnVlanCounterStatsEntry(int vlanVid, List<U64> values);
+ OFBsnVlanCounterStatsReply.Builder buildBsnVlanCounterStatsReply() throws UnsupportedOperationException;
+ OFBsnVlanCounterStatsRequest.Builder buildBsnVlanCounterStatsRequest() throws UnsupportedOperationException;
+ OFBsnVrfCounterStatsEntry.Builder buildBsnVrfCounterStatsEntry() throws UnsupportedOperationException;
+ OFBsnVrfCounterStatsEntry bsnVrfCounterStatsEntry(long vrf, List<U64> values);
+ OFBsnVrfCounterStatsReply.Builder buildBsnVrfCounterStatsReply() throws UnsupportedOperationException;
+ OFBsnVrfCounterStatsRequest.Builder buildBsnVrfCounterStatsRequest() throws UnsupportedOperationException;
+ OFHelloElemVersionbitmap.Builder buildHelloElemVersionbitmap() throws UnsupportedOperationException;
+ OFHelloElemVersionbitmap helloElemVersionbitmap(List<U32> bitmaps);
+ OFMeterBandStats.Builder buildMeterBandStats() throws UnsupportedOperationException;
+ OFMeterBandStats meterBandStats(U64 packetBandCount, U64 byteBandCount);
+ OFMeterConfig.Builder buildMeterConfig() throws UnsupportedOperationException;
+ OFMeterConfigStatsReply.Builder buildMeterConfigStatsReply() throws UnsupportedOperationException;
+ OFMeterConfigStatsRequest.Builder buildMeterConfigStatsRequest() throws UnsupportedOperationException;
+ OFMeterFeatures.Builder buildMeterFeatures() throws UnsupportedOperationException;
+ OFMeterFeaturesStatsReply.Builder buildMeterFeaturesStatsReply() throws UnsupportedOperationException;
+ OFMeterFeaturesStatsRequest.Builder buildMeterFeaturesStatsRequest() throws UnsupportedOperationException;
+ OFMeterFeaturesStatsRequest meterFeaturesStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFMeterMod.Builder buildMeterMod() throws UnsupportedOperationException;
+ OFMeterStats.Builder buildMeterStats() throws UnsupportedOperationException;
+ OFMeterStatsReply.Builder buildMeterStatsReply() throws UnsupportedOperationException;
+ OFMeterStatsRequest.Builder buildMeterStatsRequest() throws UnsupportedOperationException;
+ OFPortDescStatsReply.Builder buildPortDescStatsReply() throws UnsupportedOperationException;
+ OFPortDescStatsRequest.Builder buildPortDescStatsRequest() throws UnsupportedOperationException;
+ OFPortDescStatsRequest portDescStatsRequest(Set<OFStatsRequestFlags> flags);
+ OFTableFeaturePropApplyActions.Builder buildTableFeaturePropApplyActions() throws UnsupportedOperationException;
+ OFTableFeaturePropApplyActions tableFeaturePropApplyActions(List<OFActionId> actionIds);
+ OFTableFeaturePropApplyActionsMiss.Builder buildTableFeaturePropApplyActionsMiss() throws UnsupportedOperationException;
+ OFTableFeaturePropApplyActionsMiss tableFeaturePropApplyActionsMiss(List<OFActionId> actionIds);
+ OFTableFeaturePropApplySetfield.Builder buildTableFeaturePropApplySetfield() throws UnsupportedOperationException;
+ OFTableFeaturePropApplySetfield tableFeaturePropApplySetfield(List<U32> oxmIds);
+ OFTableFeaturePropApplySetfieldMiss.Builder buildTableFeaturePropApplySetfieldMiss() throws UnsupportedOperationException;
+ OFTableFeaturePropApplySetfieldMiss tableFeaturePropApplySetfieldMiss(List<U32> oxmIds);
+ OFTableFeaturePropExperimenter.Builder buildTableFeaturePropExperimenter() throws UnsupportedOperationException;
+ OFTableFeaturePropExperimenterMiss.Builder buildTableFeaturePropExperimenterMiss() throws UnsupportedOperationException;
+ OFTableFeaturePropInstructions.Builder buildTableFeaturePropInstructions() throws UnsupportedOperationException;
+ OFTableFeaturePropInstructions tableFeaturePropInstructions(List<OFInstructionId> instructionIds);
+ OFTableFeaturePropInstructionsMiss.Builder buildTableFeaturePropInstructionsMiss() throws UnsupportedOperationException;
+ OFTableFeaturePropInstructionsMiss tableFeaturePropInstructionsMiss(List<OFInstructionId> instructionIds);
+ OFTableFeaturePropMatch.Builder buildTableFeaturePropMatch() throws UnsupportedOperationException;
+ OFTableFeaturePropMatch tableFeaturePropMatch(List<U32> oxmIds);
+ OFTableFeaturePropNextTables.Builder buildTableFeaturePropNextTables() throws UnsupportedOperationException;
+ OFTableFeaturePropNextTables tableFeaturePropNextTables(List<U8> nextTableIds);
+ OFTableFeaturePropNextTablesMiss.Builder buildTableFeaturePropNextTablesMiss() throws UnsupportedOperationException;
+ OFTableFeaturePropNextTablesMiss tableFeaturePropNextTablesMiss(List<U8> nextTableIds);
+ OFTableFeaturePropWildcards.Builder buildTableFeaturePropWildcards() throws UnsupportedOperationException;
+ OFTableFeaturePropWildcards tableFeaturePropWildcards(List<U32> oxmIds);
+ OFTableFeaturePropWriteActions.Builder buildTableFeaturePropWriteActions() throws UnsupportedOperationException;
+ OFTableFeaturePropWriteActions tableFeaturePropWriteActions(List<OFActionId> actionIds);
+ OFTableFeaturePropWriteActionsMiss.Builder buildTableFeaturePropWriteActionsMiss() throws UnsupportedOperationException;
+ OFTableFeaturePropWriteActionsMiss tableFeaturePropWriteActionsMiss(List<OFActionId> actionIds);
+ OFTableFeaturePropWriteSetfield.Builder buildTableFeaturePropWriteSetfield() throws UnsupportedOperationException;
+ OFTableFeaturePropWriteSetfield tableFeaturePropWriteSetfield(List<U32> oxmIds);
+ OFTableFeaturePropWriteSetfieldMiss.Builder buildTableFeaturePropWriteSetfieldMiss() throws UnsupportedOperationException;
+ OFTableFeaturePropWriteSetfieldMiss tableFeaturePropWriteSetfieldMiss(List<U32> oxmIds);
+ OFTableFeatures.Builder buildTableFeatures() throws UnsupportedOperationException;
+ OFTableFeaturesStatsReply.Builder buildTableFeaturesStatsReply() throws UnsupportedOperationException;
+ OFTableFeaturesStatsRequest.Builder buildTableFeaturesStatsRequest() throws UnsupportedOperationException;
+ OFUint64.Builder buildUint64() throws UnsupportedOperationException;
+ OFUint64 uint64(U64 value);
+ Match.Builder buildMatch();
+ Match matchWildcardAll();
+
+ OFMessageReader<OFMessage> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesReply.java
new file mode 100644
index 0000000..4d0ab31
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesReply.java
@@ -0,0 +1,69 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFeaturesReply extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ DatapathId getDatapathId();
+ long getNBuffers();
+ short getNTables();
+ Set<OFCapabilities> getCapabilities();
+ long getReserved() throws UnsupportedOperationException;
+ List<OFPortDesc> getPorts() throws UnsupportedOperationException;
+ Set<OFActionType> getActions() throws UnsupportedOperationException;
+ OFAuxId getAuxiliaryId() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFFeaturesReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ DatapathId getDatapathId();
+ Builder setDatapathId(DatapathId datapathId);
+ long getNBuffers();
+ Builder setNBuffers(long nBuffers);
+ short getNTables();
+ Builder setNTables(short nTables);
+ Set<OFCapabilities> getCapabilities();
+ Builder setCapabilities(Set<OFCapabilities> capabilities);
+ long getReserved() throws UnsupportedOperationException;
+ Builder setReserved(long reserved) throws UnsupportedOperationException;
+ List<OFPortDesc> getPorts() throws UnsupportedOperationException;
+ Builder setPorts(List<OFPortDesc> ports) throws UnsupportedOperationException;
+ Set<OFActionType> getActions() throws UnsupportedOperationException;
+ Builder setActions(Set<OFActionType> actions) throws UnsupportedOperationException;
+ OFAuxId getAuxiliaryId() throws UnsupportedOperationException;
+ Builder setAuxiliaryId(OFAuxId auxiliaryId) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesRequest.java
new file mode 100644
index 0000000..78cb71b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFeaturesRequest.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFeaturesRequest extends OFObject, OFMessage, OFRequest<OFFeaturesReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFFeaturesRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowAdd.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowAdd.java
new file mode 100644
index 0000000..19dccbf
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowAdd.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowAdd extends OFObject, OFFlowMod {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ U64 getCookie();
+ U64 getCookieMask() throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ int getHardTimeout();
+ int getPriority();
+ OFBufferId getBufferId();
+ OFPort getOutPort();
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Match getMatch();
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFFlowMod.Builder {
+ OFFlowAdd build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout();
+ Builder setHardTimeout(int hardTimeout);
+ int getPriority();
+ Builder setPriority(int priority);
+ OFBufferId getBufferId();
+ Builder setBufferId(OFBufferId bufferId);
+ OFPort getOutPort();
+ Builder setOutPort(OFPort outPort);
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Builder setFlags(Set<OFFlowModFlags> flags);
+ Match getMatch();
+ Builder setMatch(Match match);
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+ Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDelete.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDelete.java
new file mode 100644
index 0000000..09f7f3a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDelete.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowDelete extends OFObject, OFFlowMod {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ U64 getCookie();
+ U64 getCookieMask() throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ int getHardTimeout();
+ int getPriority();
+ OFBufferId getBufferId();
+ OFPort getOutPort();
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Match getMatch();
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFFlowMod.Builder {
+ OFFlowDelete build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout();
+ Builder setHardTimeout(int hardTimeout);
+ int getPriority();
+ Builder setPriority(int priority);
+ OFBufferId getBufferId();
+ Builder setBufferId(OFBufferId bufferId);
+ OFPort getOutPort();
+ Builder setOutPort(OFPort outPort);
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Builder setFlags(Set<OFFlowModFlags> flags);
+ Match getMatch();
+ Builder setMatch(Match match);
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+ Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDeleteStrict.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDeleteStrict.java
new file mode 100644
index 0000000..72931d1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowDeleteStrict.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowDeleteStrict extends OFObject, OFFlowMod {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ U64 getCookie();
+ U64 getCookieMask() throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ int getHardTimeout();
+ int getPriority();
+ OFBufferId getBufferId();
+ OFPort getOutPort();
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Match getMatch();
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFFlowMod.Builder {
+ OFFlowDeleteStrict build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout();
+ Builder setHardTimeout(int hardTimeout);
+ int getPriority();
+ Builder setPriority(int priority);
+ OFBufferId getBufferId();
+ Builder setBufferId(OFBufferId bufferId);
+ OFPort getOutPort();
+ Builder setOutPort(OFPort outPort);
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Builder setFlags(Set<OFFlowModFlags> flags);
+ Match getMatch();
+ Builder setMatch(Match match);
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+ Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowMod.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowMod.java
new file mode 100644
index 0000000..76da051
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowMod.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowMod extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ U64 getCookie();
+ U64 getCookieMask() throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ int getHardTimeout();
+ int getPriority();
+ OFBufferId getBufferId();
+ OFPort getOutPort();
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Match getMatch();
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFFlowMod build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout();
+ Builder setHardTimeout(int hardTimeout);
+ int getPriority();
+ Builder setPriority(int priority);
+ OFBufferId getBufferId();
+ Builder setBufferId(OFBufferId bufferId);
+ OFPort getOutPort();
+ Builder setOutPort(OFPort outPort);
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Builder setFlags(Set<OFFlowModFlags> flags);
+ Match getMatch();
+ Builder setMatch(Match match);
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+ Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModCommand.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModCommand.java
new file mode 100644
index 0000000..dd0b856
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModCommand.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowModCommand {
+ ADD,
+ MODIFY,
+ MODIFY_STRICT,
+ DELETE,
+ DELETE_STRICT;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFailedCode.java
new file mode 100644
index 0000000..17cf0d2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFailedCode.java
@@ -0,0 +1,39 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowModFailedCode {
+ ALL_TABLES_FULL,
+ OVERLAP,
+ EPERM,
+ BAD_EMERG_TIMEOUT,
+ BAD_COMMAND,
+ UNSUPPORTED,
+ UNKNOWN,
+ TABLE_FULL,
+ BAD_TABLE_ID,
+ BAD_TIMEOUT,
+ BAD_FLAGS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFlags.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFlags.java
new file mode 100644
index 0000000..86c709f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModFlags.java
@@ -0,0 +1,35 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowModFlags {
+ SEND_FLOW_REM,
+ CHECK_OVERLAP,
+ EMERG,
+ RESET_COUNTS,
+ NO_PKT_COUNTS,
+ NO_BYT_COUNTS,
+ BSN_SEND_IDLE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModify.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModify.java
new file mode 100644
index 0000000..cc3129f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModify.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowModify extends OFObject, OFFlowMod {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ U64 getCookie();
+ U64 getCookieMask() throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ int getHardTimeout();
+ int getPriority();
+ OFBufferId getBufferId();
+ OFPort getOutPort();
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Match getMatch();
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFFlowMod.Builder {
+ OFFlowModify build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout();
+ Builder setHardTimeout(int hardTimeout);
+ int getPriority();
+ Builder setPriority(int priority);
+ OFBufferId getBufferId();
+ Builder setBufferId(OFBufferId bufferId);
+ OFPort getOutPort();
+ Builder setOutPort(OFPort outPort);
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Builder setFlags(Set<OFFlowModFlags> flags);
+ Match getMatch();
+ Builder setMatch(Match match);
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+ Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModifyStrict.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModifyStrict.java
new file mode 100644
index 0000000..15809c9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowModifyStrict.java
@@ -0,0 +1,86 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowModifyStrict extends OFObject, OFFlowMod {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ U64 getCookie();
+ U64 getCookieMask() throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ int getHardTimeout();
+ int getPriority();
+ OFBufferId getBufferId();
+ OFPort getOutPort();
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Match getMatch();
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFFlowMod.Builder {
+ OFFlowModifyStrict build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+ TableId getTableId() throws UnsupportedOperationException;
+ Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+ OFFlowModCommand getCommand();
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout();
+ Builder setHardTimeout(int hardTimeout);
+ int getPriority();
+ Builder setPriority(int priority);
+ OFBufferId getBufferId();
+ Builder setBufferId(OFBufferId bufferId);
+ OFPort getOutPort();
+ Builder setOutPort(OFPort outPort);
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags();
+ Builder setFlags(Set<OFFlowModFlags> flags);
+ Match getMatch();
+ Builder setMatch(Match match);
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+ Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemoved.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemoved.java
new file mode 100644
index 0000000..186b8a6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemoved.java
@@ -0,0 +1,76 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowRemoved extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ U64 getCookie();
+ int getPriority();
+ short getReason();
+ TableId getTableId() throws UnsupportedOperationException;
+ long getDurationSec();
+ long getDurationNsec();
+ int getIdleTimeout();
+ int getHardTimeout() throws UnsupportedOperationException;
+ U64 getPacketCount();
+ U64 getByteCount();
+ Match getMatch();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFFlowRemoved build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ int getPriority();
+ Builder setPriority(int priority);
+ short getReason();
+ Builder setReason(short reason);
+ TableId getTableId() throws UnsupportedOperationException;
+ Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+ long getDurationSec();
+ Builder setDurationSec(long durationSec);
+ long getDurationNsec();
+ Builder setDurationNsec(long durationNsec);
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout() throws UnsupportedOperationException;
+ Builder setHardTimeout(int hardTimeout) throws UnsupportedOperationException;
+ U64 getPacketCount();
+ Builder setPacketCount(U64 packetCount);
+ U64 getByteCount();
+ Builder setByteCount(U64 byteCount);
+ Match getMatch();
+ Builder setMatch(Match match);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemovedReason.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemovedReason.java
new file mode 100644
index 0000000..689b43f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowRemovedReason.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowRemovedReason {
+ IDLE_TIMEOUT,
+ HARD_TIMEOUT,
+ DELETE,
+ GROUP_DELETE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsEntry.java
new file mode 100644
index 0000000..db9b486
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsEntry.java
@@ -0,0 +1,79 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowStatsEntry extends OFObject {
+ TableId getTableId();
+ long getDurationSec();
+ long getDurationNsec();
+ int getPriority();
+ int getIdleTimeout();
+ int getHardTimeout();
+ U64 getCookie();
+ U64 getPacketCount();
+ U64 getByteCount();
+ Match getMatch();
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags() throws UnsupportedOperationException;
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFFlowStatsEntry build();
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ long getDurationSec();
+ Builder setDurationSec(long durationSec);
+ long getDurationNsec();
+ Builder setDurationNsec(long durationNsec);
+ int getPriority();
+ Builder setPriority(int priority);
+ int getIdleTimeout();
+ Builder setIdleTimeout(int idleTimeout);
+ int getHardTimeout();
+ Builder setHardTimeout(int hardTimeout);
+ U64 getCookie();
+ Builder setCookie(U64 cookie);
+ U64 getPacketCount();
+ Builder setPacketCount(U64 packetCount);
+ U64 getByteCount();
+ Builder setByteCount(U64 byteCount);
+ Match getMatch();
+ Builder setMatch(Match match);
+ List<OFInstruction> getInstructions() throws UnsupportedOperationException;
+ Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException;
+ List<OFAction> getActions() throws UnsupportedOperationException;
+ Builder setActions(List<OFAction> actions) throws UnsupportedOperationException;
+ Set<OFFlowModFlags> getFlags() throws UnsupportedOperationException;
+ Builder setFlags(Set<OFFlowModFlags> flags) throws UnsupportedOperationException;
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsReply.java
new file mode 100644
index 0000000..488acc2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFFlowStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFFlowStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFFlowStatsEntry> getEntries();
+ Builder setEntries(List<OFFlowStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsRequest.java
new file mode 100644
index 0000000..56fd5d8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowStatsRequest.java
@@ -0,0 +1,67 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowStatsRequest extends OFObject, OFStatsRequest<OFFlowStatsReply>, OFRequest<OFFlowStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ TableId getTableId();
+ OFPort getOutPort();
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ U64 getCookie() throws UnsupportedOperationException;
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Match getMatch();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFFlowStatsReply> {
+ OFFlowStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ OFPort getOutPort();
+ Builder setOutPort(OFPort outPort);
+ OFGroup getOutGroup() throws UnsupportedOperationException;
+ Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException;
+ U64 getCookie() throws UnsupportedOperationException;
+ Builder setCookie(U64 cookie) throws UnsupportedOperationException;
+ U64 getCookieMask() throws UnsupportedOperationException;
+ Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException;
+ Match getMatch();
+ Builder setMatch(Match match);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowWildcards.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowWildcards.java
new file mode 100644
index 0000000..d732d7d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFFlowWildcards.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFFlowWildcards {
+ IN_PORT,
+ DL_VLAN,
+ DL_SRC,
+ DL_DST,
+ DL_TYPE,
+ NW_PROTO,
+ TP_SRC,
+ TP_DST,
+ NW_SRC_ALL,
+ NW_SRC_MASK,
+ NW_DST_ALL,
+ NW_DST_MASK,
+ DL_VLAN_PCP,
+ NW_TOS,
+ ALL,
+ MPLS_LABEL,
+ MPLS_TC;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigReply.java
new file mode 100644
index 0000000..d3c0bd8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGetConfigReply extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Set<OFConfigFlags> getFlags();
+ int getMissSendLen();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFGetConfigReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ Set<OFConfigFlags> getFlags();
+ Builder setFlags(Set<OFConfigFlags> flags);
+ int getMissSendLen();
+ Builder setMissSendLen(int missSendLen);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigRequest.java
new file mode 100644
index 0000000..ec49dfe
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGetConfigRequest.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGetConfigRequest extends OFObject, OFMessage, OFRequest<OFGetConfigReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFGetConfigRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupAdd.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupAdd.java
new file mode 100644
index 0000000..6502d85
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupAdd.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupAdd extends OFObject, OFGroupMod {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFGroupModCommand getCommand();
+ OFGroupType getGroupType();
+ OFGroup getGroup();
+ List<OFBucket> getBuckets();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFGroupMod.Builder {
+ OFGroupAdd build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFGroupModCommand getCommand();
+ OFGroupType getGroupType();
+ Builder setGroupType(OFGroupType groupType);
+ OFGroup getGroup();
+ Builder setGroup(OFGroup group);
+ List<OFBucket> getBuckets();
+ Builder setBuckets(List<OFBucket> buckets);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupCapabilities.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupCapabilities.java
new file mode 100644
index 0000000..679fad6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupCapabilities.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFGroupCapabilities {
+ SELECT_WEIGHT,
+ SELECT_LIVENESS,
+ CHAINING,
+ CHAINING_CHECKS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDelete.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDelete.java
new file mode 100644
index 0000000..c649b82
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDelete.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupDelete extends OFObject, OFGroupMod {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFGroupModCommand getCommand();
+ OFGroupType getGroupType();
+ OFGroup getGroup();
+ List<OFBucket> getBuckets();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFGroupMod.Builder {
+ OFGroupDelete build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFGroupModCommand getCommand();
+ OFGroupType getGroupType();
+ Builder setGroupType(OFGroupType groupType);
+ OFGroup getGroup();
+ Builder setGroup(OFGroup group);
+ List<OFBucket> getBuckets();
+ Builder setBuckets(List<OFBucket> buckets);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsEntry.java
new file mode 100644
index 0000000..be11fa0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsEntry.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupDescStatsEntry extends OFObject {
+ OFGroupType getGroupType();
+ OFGroup getGroup();
+ List<OFBucket> getBuckets();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFGroupDescStatsEntry build();
+ OFGroupType getGroupType();
+ Builder setGroupType(OFGroupType groupType);
+ OFGroup getGroup();
+ Builder setGroup(OFGroup group);
+ List<OFBucket> getBuckets();
+ Builder setBuckets(List<OFBucket> buckets);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsReply.java
new file mode 100644
index 0000000..c3943e8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupDescStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFGroupDescStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFGroupDescStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFGroupDescStatsEntry> getEntries();
+ Builder setEntries(List<OFGroupDescStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsRequest.java
new file mode 100644
index 0000000..260e411
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupDescStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupDescStatsRequest extends OFObject, OFStatsRequest<OFGroupDescStatsReply>, OFRequest<OFGroupDescStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFGroupDescStatsReply> {
+ OFGroupDescStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsReply.java
new file mode 100644
index 0000000..c449fdf
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsReply.java
@@ -0,0 +1,79 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupFeaturesStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ long getTypes();
+ long getCapabilities();
+ long getMaxGroupsAll();
+ long getMaxGroupsSelect();
+ long getMaxGroupsIndirect();
+ long getMaxGroupsFf();
+ long getActionsAll();
+ long getActionsSelect();
+ long getActionsIndirect();
+ long getActionsFf();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFGroupFeaturesStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ long getTypes();
+ Builder setTypes(long types);
+ long getCapabilities();
+ Builder setCapabilities(long capabilities);
+ long getMaxGroupsAll();
+ Builder setMaxGroupsAll(long maxGroupsAll);
+ long getMaxGroupsSelect();
+ Builder setMaxGroupsSelect(long maxGroupsSelect);
+ long getMaxGroupsIndirect();
+ Builder setMaxGroupsIndirect(long maxGroupsIndirect);
+ long getMaxGroupsFf();
+ Builder setMaxGroupsFf(long maxGroupsFf);
+ long getActionsAll();
+ Builder setActionsAll(long actionsAll);
+ long getActionsSelect();
+ Builder setActionsSelect(long actionsSelect);
+ long getActionsIndirect();
+ Builder setActionsIndirect(long actionsIndirect);
+ long getActionsFf();
+ Builder setActionsFf(long actionsFf);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsRequest.java
new file mode 100644
index 0000000..741a13d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupFeaturesStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupFeaturesStatsRequest extends OFObject, OFStatsRequest<OFGroupFeaturesStatsReply>, OFRequest<OFGroupFeaturesStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFGroupFeaturesStatsReply> {
+ OFGroupFeaturesStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupMod.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupMod.java
new file mode 100644
index 0000000..65bfe68
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupMod.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupMod extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFGroupModCommand getCommand();
+ OFGroupType getGroupType();
+ OFGroup getGroup();
+ List<OFBucket> getBuckets();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFGroupMod build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFGroupModCommand getCommand();
+ OFGroupType getGroupType();
+ Builder setGroupType(OFGroupType groupType);
+ OFGroup getGroup();
+ Builder setGroup(OFGroup group);
+ List<OFBucket> getBuckets();
+ Builder setBuckets(List<OFBucket> buckets);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModCommand.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModCommand.java
new file mode 100644
index 0000000..30f122c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModCommand.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFGroupModCommand {
+ ADD,
+ MODIFY,
+ DELETE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModFailedCode.java
new file mode 100644
index 0000000..e88b22d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModFailedCode.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFGroupModFailedCode {
+ GROUP_EXISTS,
+ INVALID_GROUP,
+ WEIGHT_UNSUPPORTED,
+ OUT_OF_GROUPS,
+ OUT_OF_BUCKETS,
+ CHAINING_UNSUPPORTED,
+ WATCH_UNSUPPORTED,
+ LOOP,
+ UNKNOWN_GROUP,
+ CHAINED_GROUP,
+ BAD_TYPE,
+ BAD_COMMAND,
+ BAD_BUCKET,
+ BAD_WATCH,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModify.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModify.java
new file mode 100644
index 0000000..3c408fe
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupModify.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupModify extends OFObject, OFGroupMod {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFGroupModCommand getCommand();
+ OFGroupType getGroupType();
+ OFGroup getGroup();
+ List<OFBucket> getBuckets();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFGroupMod.Builder {
+ OFGroupModify build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFGroupModCommand getCommand();
+ OFGroupType getGroupType();
+ Builder setGroupType(OFGroupType groupType);
+ OFGroup getGroup();
+ Builder setGroup(OFGroup group);
+ List<OFBucket> getBuckets();
+ Builder setBuckets(List<OFBucket> buckets);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsEntry.java
new file mode 100644
index 0000000..efa4bf2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsEntry.java
@@ -0,0 +1,60 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupStatsEntry extends OFObject {
+ OFGroup getGroup();
+ long getRefCount();
+ U64 getPacketCount();
+ U64 getByteCount();
+ List<OFBucketCounter> getBucketStats();
+ long getDurationSec() throws UnsupportedOperationException;
+ long getDurationNsec() throws UnsupportedOperationException;
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFGroupStatsEntry build();
+ OFGroup getGroup();
+ Builder setGroup(OFGroup group);
+ long getRefCount();
+ Builder setRefCount(long refCount);
+ U64 getPacketCount();
+ Builder setPacketCount(U64 packetCount);
+ U64 getByteCount();
+ Builder setByteCount(U64 byteCount);
+ List<OFBucketCounter> getBucketStats();
+ Builder setBucketStats(List<OFBucketCounter> bucketStats);
+ long getDurationSec() throws UnsupportedOperationException;
+ Builder setDurationSec(long durationSec) throws UnsupportedOperationException;
+ long getDurationNsec() throws UnsupportedOperationException;
+ Builder setDurationNsec(long durationNsec) throws UnsupportedOperationException;
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsReply.java
new file mode 100644
index 0000000..df8ea80
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFGroupStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFGroupStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFGroupStatsEntry> getEntries();
+ Builder setEntries(List<OFGroupStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsRequest.java
new file mode 100644
index 0000000..24bdcb5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupStatsRequest.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupStatsRequest extends OFObject, OFStatsRequest<OFGroupStatsReply>, OFRequest<OFGroupStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ OFGroup getGroup();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFGroupStatsReply> {
+ OFGroupStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ OFGroup getGroup();
+ Builder setGroup(OFGroup group);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupType.java
new file mode 100644
index 0000000..bd7c37e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFGroupType.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFGroupType {
+ ALL,
+ SELECT,
+ INDIRECT,
+ FF;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHello.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHello.java
new file mode 100644
index 0000000..0858559
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHello.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFHello extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ List<OFHelloElem> getElements() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFHello build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ List<OFHelloElem> getElements() throws UnsupportedOperationException;
+ Builder setElements(List<OFHelloElem> elements) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElem.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElem.java
new file mode 100644
index 0000000..68d69cc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElem.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFHelloElem extends OFObject {
+ int getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFHelloElem build();
+ int getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemType.java
new file mode 100644
index 0000000..1b221bd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemType.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFHelloElemType {
+ VERSIONBITMAP;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemVersionbitmap.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemVersionbitmap.java
new file mode 100644
index 0000000..e8eb3c7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloElemVersionbitmap.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFHelloElemVersionbitmap extends OFObject, OFHelloElem {
+ int getType();
+ List<U32> getBitmaps();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFHelloElem.Builder {
+ OFHelloElemVersionbitmap build();
+ int getType();
+ List<U32> getBitmaps();
+ Builder setBitmaps(List<U32> bitmaps);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloFailedCode.java
new file mode 100644
index 0000000..92312dd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFHelloFailedCode.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFHelloFailedCode {
+ INCOMPATIBLE,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFInstructionType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFInstructionType.java
new file mode 100644
index 0000000..8fc38eb
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFInstructionType.java
@@ -0,0 +1,35 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFInstructionType {
+ GOTO_TABLE,
+ WRITE_METADATA,
+ WRITE_ACTIONS,
+ APPLY_ACTIONS,
+ CLEAR_ACTIONS,
+ EXPERIMENTER,
+ METER;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFIpv6ExthdrFlags.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFIpv6ExthdrFlags.java
new file mode 100644
index 0000000..7c33b94
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFIpv6ExthdrFlags.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFIpv6ExthdrFlags {
+ NONEXT,
+ ESP,
+ AUTH,
+ DEST,
+ FRAG,
+ ROUTER,
+ HOP,
+ UNREP,
+ UNSEQ;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchType.java
new file mode 100644
index 0000000..17e768c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchType.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMatchType {
+ STANDARD,
+ OXM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV1.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV1.java
new file mode 100644
index 0000000..06deb6b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV1.java
@@ -0,0 +1,77 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMatchV1 extends OFObject, Match {
+ int getWildcards();
+ OFPort getInPort();
+ MacAddress getEthSrc();
+ MacAddress getEthDst();
+ OFVlanVidMatch getVlanVid();
+ VlanPcp getVlanPcp();
+ EthType getEthType();
+ IpDscp getIpDscp();
+ IpProtocol getIpProto();
+ IPv4Address getIpv4Src();
+ IPv4Address getIpv4Dst();
+ TransportPort getTcpSrc();
+ TransportPort getTcpDst();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends Match.Builder {
+ OFMatchV1 build();
+ int getWildcards();
+ Builder setWildcards(int wildcards);
+ OFPort getInPort();
+ Builder setInPort(OFPort inPort);
+ MacAddress getEthSrc();
+ Builder setEthSrc(MacAddress ethSrc);
+ MacAddress getEthDst();
+ Builder setEthDst(MacAddress ethDst);
+ OFVlanVidMatch getVlanVid();
+ Builder setVlanVid(OFVlanVidMatch vlanVid);
+ VlanPcp getVlanPcp();
+ Builder setVlanPcp(VlanPcp vlanPcp);
+ EthType getEthType();
+ Builder setEthType(EthType ethType);
+ IpDscp getIpDscp();
+ Builder setIpDscp(IpDscp ipDscp);
+ IpProtocol getIpProto();
+ Builder setIpProto(IpProtocol ipProto);
+ IPv4Address getIpv4Src();
+ Builder setIpv4Src(IPv4Address ipv4Src);
+ IPv4Address getIpv4Dst();
+ Builder setIpv4Dst(IPv4Address ipv4Dst);
+ TransportPort getTcpSrc();
+ Builder setTcpSrc(TransportPort tcpSrc);
+ TransportPort getTcpDst();
+ Builder setTcpDst(TransportPort tcpDst);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV2.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV2.java
new file mode 100644
index 0000000..7d40266
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV2.java
@@ -0,0 +1,103 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMatchV2 extends OFObject, Match {
+ int getType();
+ OFPort getInPort();
+ int getWildcards();
+ MacAddress getEthSrc();
+ MacAddress getEthSrcMask();
+ MacAddress getEthDst();
+ MacAddress getEthDstMask();
+ int getVlanVid();
+ short getVlanPcp();
+ int getEthType();
+ short getIpDscp();
+ short getIpProto();
+ IPv4Address getIpv4Src();
+ IPv4Address getIpv4SrcMask();
+ IPv4Address getIpv4Dst();
+ IPv4Address getIpv4DstMask();
+ int getTcpSrc();
+ int getTcpDst();
+ long getMplsLabel();
+ short getMplsTc();
+ U64 getMetadata();
+ U64 getMetadataMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends Match.Builder {
+ OFMatchV2 build();
+ int getType();
+ OFPort getInPort();
+ Builder setInPort(OFPort inPort);
+ int getWildcards();
+ Builder setWildcards(int wildcards);
+ MacAddress getEthSrc();
+ Builder setEthSrc(MacAddress ethSrc);
+ MacAddress getEthSrcMask();
+ Builder setEthSrcMask(MacAddress ethSrcMask);
+ MacAddress getEthDst();
+ Builder setEthDst(MacAddress ethDst);
+ MacAddress getEthDstMask();
+ Builder setEthDstMask(MacAddress ethDstMask);
+ int getVlanVid();
+ Builder setVlanVid(int vlanVid);
+ short getVlanPcp();
+ Builder setVlanPcp(short vlanPcp);
+ int getEthType();
+ Builder setEthType(int ethType);
+ short getIpDscp();
+ Builder setIpDscp(short ipDscp);
+ short getIpProto();
+ Builder setIpProto(short ipProto);
+ IPv4Address getIpv4Src();
+ Builder setIpv4Src(IPv4Address ipv4Src);
+ IPv4Address getIpv4SrcMask();
+ Builder setIpv4SrcMask(IPv4Address ipv4SrcMask);
+ IPv4Address getIpv4Dst();
+ Builder setIpv4Dst(IPv4Address ipv4Dst);
+ IPv4Address getIpv4DstMask();
+ Builder setIpv4DstMask(IPv4Address ipv4DstMask);
+ int getTcpSrc();
+ Builder setTcpSrc(int tcpSrc);
+ int getTcpDst();
+ Builder setTcpDst(int tcpDst);
+ long getMplsLabel();
+ Builder setMplsLabel(long mplsLabel);
+ short getMplsTc();
+ Builder setMplsTc(short mplsTc);
+ U64 getMetadata();
+ Builder setMetadata(U64 metadata);
+ U64 getMetadataMask();
+ Builder setMetadataMask(U64 metadataMask);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV3.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV3.java
new file mode 100644
index 0000000..6bfca6e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMatchV3.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMatchV3 extends OFObject, Match {
+ int getType();
+ OFOxmList getOxmList();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends Match.Builder {
+ OFMatchV3 build();
+ int getType();
+ OFOxmList getOxmList();
+ Builder setOxmList(OFOxmList oxmList);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMessage.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMessage.java
new file mode 100644
index 0000000..9a9d6f4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMessage.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMessage extends OFObject {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFMessage build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeter.java
new file mode 100644
index 0000000..20b4e47
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeter.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeter {
+ MAX,
+ SLOWPATH,
+ CONTROLLER,
+ ALL;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandStats.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandStats.java
new file mode 100644
index 0000000..32adcc0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandStats.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBandStats extends OFObject {
+ U64 getPacketBandCount();
+ U64 getByteBandCount();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFMeterBandStats build();
+ U64 getPacketBandCount();
+ Builder setPacketBandCount(U64 packetBandCount);
+ U64 getByteBandCount();
+ Builder setByteBandCount(U64 byteBandCount);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandType.java
new file mode 100644
index 0000000..ac61fb2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterBandType.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeterBandType {
+ DROP,
+ DSCP_REMARK,
+ EXPERIMENTER;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfig.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfig.java
new file mode 100644
index 0000000..5cd55b3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfig.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterConfig extends OFObject {
+ int getFlags();
+ long getMeterId();
+ List<OFMeterBand> getEntries();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFMeterConfig build();
+ int getFlags();
+ Builder setFlags(int flags);
+ long getMeterId();
+ Builder setMeterId(long meterId);
+ List<OFMeterBand> getEntries();
+ Builder setEntries(List<OFMeterBand> entries);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsReply.java
new file mode 100644
index 0000000..b80c158
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterConfigStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFMeterBand> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFMeterConfigStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFMeterBand> getEntries();
+ Builder setEntries(List<OFMeterBand> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsRequest.java
new file mode 100644
index 0000000..6ab1828
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterConfigStatsRequest.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterConfigStatsRequest extends OFObject, OFStatsRequest<OFMeterConfigStatsReply>, OFRequest<OFMeterConfigStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getMeterId();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFMeterConfigStatsReply> {
+ OFMeterConfigStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getMeterId();
+ Builder setMeterId(long meterId);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeatures.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeatures.java
new file mode 100644
index 0000000..4108de3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeatures.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterFeatures extends OFObject {
+ long getMaxMeter();
+ long getBandTypes();
+ long getCapabilities();
+ short getMaxBands();
+ short getMaxColor();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFMeterFeatures build();
+ long getMaxMeter();
+ Builder setMaxMeter(long maxMeter);
+ long getBandTypes();
+ Builder setBandTypes(long bandTypes);
+ long getCapabilities();
+ Builder setCapabilities(long capabilities);
+ short getMaxBands();
+ Builder setMaxBands(short maxBands);
+ short getMaxColor();
+ Builder setMaxColor(short maxColor);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsReply.java
new file mode 100644
index 0000000..be19e8d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsReply.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterFeaturesStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ OFMeterFeatures getFeatures();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFMeterFeaturesStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ OFMeterFeatures getFeatures();
+ Builder setFeatures(OFMeterFeatures features);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsRequest.java
new file mode 100644
index 0000000..b239a22
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFeaturesStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterFeaturesStatsRequest extends OFObject, OFStatsRequest<OFMeterFeaturesStatsReply>, OFRequest<OFMeterFeaturesStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFMeterFeaturesStatsReply> {
+ OFMeterFeaturesStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFlags.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFlags.java
new file mode 100644
index 0000000..2df9c70
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterFlags.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeterFlags {
+ KBPS,
+ PKTPS,
+ BURST,
+ STATS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterMod.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterMod.java
new file mode 100644
index 0000000..b01f37c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterMod.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterMod extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ int getCommand();
+ int getFlags();
+ long getMeterId();
+ List<OFMeterBand> getMeters();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFMeterMod build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ int getCommand();
+ Builder setCommand(int command);
+ int getFlags();
+ Builder setFlags(int flags);
+ long getMeterId();
+ Builder setMeterId(long meterId);
+ List<OFMeterBand> getMeters();
+ Builder setMeters(List<OFMeterBand> meters);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModCommand.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModCommand.java
new file mode 100644
index 0000000..31bbe23
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModCommand.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeterModCommand {
+ ADD,
+ MODIFY,
+ DELETE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModFailedCode.java
new file mode 100644
index 0000000..b977cc3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterModFailedCode.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFMeterModFailedCode {
+ UNKNOWN,
+ METER_EXISTS,
+ INVALID_METER,
+ UNKNOWN_METER,
+ BAD_COMMAND,
+ BAD_FLAGS,
+ BAD_RATE,
+ BAD_BURST,
+ BAD_BAND,
+ BAD_BAND_VALUE,
+ OUT_OF_METERS,
+ OUT_OF_BANDS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStats.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStats.java
new file mode 100644
index 0000000..a5310eb
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStats.java
@@ -0,0 +1,60 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterStats extends OFObject {
+ long getMeterId();
+ long getFlowCount();
+ U64 getPacketInCount();
+ U64 getByteInCount();
+ long getDurationSec();
+ long getDurationNsec();
+ List<OFMeterBandStats> getBandStats();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFMeterStats build();
+ long getMeterId();
+ Builder setMeterId(long meterId);
+ long getFlowCount();
+ Builder setFlowCount(long flowCount);
+ U64 getPacketInCount();
+ Builder setPacketInCount(U64 packetInCount);
+ U64 getByteInCount();
+ Builder setByteInCount(U64 byteInCount);
+ long getDurationSec();
+ Builder setDurationSec(long durationSec);
+ long getDurationNsec();
+ Builder setDurationNsec(long durationNsec);
+ List<OFMeterBandStats> getBandStats();
+ Builder setBandStats(List<OFMeterBandStats> bandStats);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsReply.java
new file mode 100644
index 0000000..7795fae
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFMeterStats> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFMeterStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFMeterStats> getEntries();
+ Builder setEntries(List<OFMeterStats> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsRequest.java
new file mode 100644
index 0000000..f48fb64
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFMeterStatsRequest.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterStatsRequest extends OFObject, OFStatsRequest<OFMeterStatsReply>, OFRequest<OFMeterStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ long getMeterId();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFMeterStatsReply> {
+ OFMeterStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ long getMeterId();
+ Builder setMeterId(long meterId);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRole.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRole.java
new file mode 100644
index 0000000..e3babe3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRole.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFNiciraControllerRole {
+ ROLE_OTHER,
+ ROLE_MASTER,
+ ROLE_SLAVE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleReply.java
new file mode 100644
index 0000000..5ec1cb4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFNiciraControllerRoleReply extends OFObject, OFNiciraHeader {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ OFNiciraControllerRole getRole();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFNiciraHeader.Builder {
+ OFNiciraControllerRoleReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ OFNiciraControllerRole getRole();
+ Builder setRole(OFNiciraControllerRole role);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleRequest.java
new file mode 100644
index 0000000..002980c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraControllerRoleRequest.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFNiciraControllerRoleRequest extends OFObject, OFNiciraHeader, OFRequest<OFNiciraControllerRoleReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+ OFNiciraControllerRole getRole();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFNiciraHeader.Builder {
+ OFNiciraControllerRoleRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ OFNiciraControllerRole getRole();
+ Builder setRole(OFNiciraControllerRole role);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraHeader.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraHeader.java
new file mode 100644
index 0000000..9be1c52
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFNiciraHeader.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFNiciraHeader extends OFObject, OFExperimenter {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ long getExperimenter();
+ long getSubtype();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFExperimenter.Builder {
+ OFNiciraHeader build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ long getExperimenter();
+ long getSubtype();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFOxmClass.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFOxmClass.java
new file mode 100644
index 0000000..005b0e9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFOxmClass.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFOxmClass {
+ NXM_0,
+ NXM_1,
+ OPENFLOW_BASIC,
+ EXPERIMENTER;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketIn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketIn.java
new file mode 100644
index 0000000..f1b1297
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketIn.java
@@ -0,0 +1,70 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPacketIn extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFBufferId getBufferId();
+ int getTotalLen();
+ OFPacketInReason getReason();
+ TableId getTableId() throws UnsupportedOperationException;
+ Match getMatch() throws UnsupportedOperationException;
+ byte[] getData();
+ OFPort getInPort() throws UnsupportedOperationException;
+ OFPort getInPhyPort() throws UnsupportedOperationException;
+ U64 getCookie() throws UnsupportedOperationException;
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFPacketIn build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFBufferId getBufferId();
+ Builder setBufferId(OFBufferId bufferId);
+ int getTotalLen();
+ Builder setTotalLen(int totalLen);
+ OFPacketInReason getReason();
+ Builder setReason(OFPacketInReason reason);
+ TableId getTableId() throws UnsupportedOperationException;
+ Builder setTableId(TableId tableId) throws UnsupportedOperationException;
+ Match getMatch() throws UnsupportedOperationException;
+ Builder setMatch(Match match) throws UnsupportedOperationException;
+ byte[] getData();
+ Builder setData(byte[] data);
+ OFPort getInPort() throws UnsupportedOperationException;
+ Builder setInPort(OFPort inPort) throws UnsupportedOperationException;
+ OFPort getInPhyPort() throws UnsupportedOperationException;
+ Builder setInPhyPort(OFPort inPhyPort) throws UnsupportedOperationException;
+ U64 getCookie() throws UnsupportedOperationException;
+ Builder setCookie(U64 cookie) throws UnsupportedOperationException;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketInReason.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketInReason.java
new file mode 100644
index 0000000..f13fb3c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketInReason.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPacketInReason {
+ NO_MATCH,
+ ACTION,
+ INVALID_TTL,
+ BSN_NEW_HOST,
+ BSN_STATION_MOVE,
+ BSN_BAD_VLAN,
+ BSN_DESTINATION_LOOKUP_FAILURE,
+ BSN_NO_ROUTE,
+ BSN_ICMP_ECHO_REQUEST,
+ BSN_DEST_NETWORK_UNREACHABLE,
+ BSN_DEST_HOST_UNREACHABLE,
+ BSN_DEST_PORT_UNREACHABLE,
+ BSN_FRAGMENTATION_REQUIRED,
+ BSN_ARP,
+ BSN_DHCP,
+ BSN_DEBUG,
+ BSN_PACKET_OF_DEATH;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketOut.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketOut.java
new file mode 100644
index 0000000..e17516d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketOut.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPacketOut extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFBufferId getBufferId();
+ OFPort getInPort();
+ List<OFAction> getActions();
+ byte[] getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFPacketOut build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFBufferId getBufferId();
+ Builder setBufferId(OFBufferId bufferId);
+ OFPort getInPort();
+ Builder setInPort(OFPort inPort);
+ List<OFAction> getActions();
+ Builder setActions(List<OFAction> actions);
+ byte[] getData();
+ Builder setData(byte[] data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketQueue.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketQueue.java
new file mode 100644
index 0000000..33d6521
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPacketQueue.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPacketQueue extends OFObject {
+ long getQueueId();
+ OFPort getPort() throws UnsupportedOperationException;
+ List<OFQueueProp> getProperties();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFPacketQueue build();
+ long getQueueId();
+ Builder setQueueId(long queueId);
+ OFPort getPort() throws UnsupportedOperationException;
+ Builder setPort(OFPort port) throws UnsupportedOperationException;
+ List<OFQueueProp> getProperties();
+ Builder setProperties(List<OFQueueProp> properties);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortConfig.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortConfig.java
new file mode 100644
index 0000000..5201415
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortConfig.java
@@ -0,0 +1,36 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortConfig {
+ PORT_DOWN,
+ NO_STP,
+ NO_RECV,
+ NO_RECV_STP,
+ NO_FLOOD,
+ NO_FWD,
+ NO_PACKET_IN,
+ BSN_MIRROR_DEST;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDesc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDesc.java
new file mode 100644
index 0000000..4e2d85a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDesc.java
@@ -0,0 +1,72 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortDesc extends OFObject {
+ OFPort getPortNo();
+ MacAddress getHwAddr();
+ String getName();
+ Set<OFPortConfig> getConfig();
+ Set<OFPortState> getState();
+ Set<OFPortFeatures> getCurr();
+ Set<OFPortFeatures> getAdvertised();
+ Set<OFPortFeatures> getSupported();
+ Set<OFPortFeatures> getPeer();
+ long getCurrSpeed() throws UnsupportedOperationException;
+ long getMaxSpeed() throws UnsupportedOperationException;
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFPortDesc build();
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ MacAddress getHwAddr();
+ Builder setHwAddr(MacAddress hwAddr);
+ String getName();
+ Builder setName(String name);
+ Set<OFPortConfig> getConfig();
+ Builder setConfig(Set<OFPortConfig> config);
+ Set<OFPortState> getState();
+ Builder setState(Set<OFPortState> state);
+ Set<OFPortFeatures> getCurr();
+ Builder setCurr(Set<OFPortFeatures> curr);
+ Set<OFPortFeatures> getAdvertised();
+ Builder setAdvertised(Set<OFPortFeatures> advertised);
+ Set<OFPortFeatures> getSupported();
+ Builder setSupported(Set<OFPortFeatures> supported);
+ Set<OFPortFeatures> getPeer();
+ Builder setPeer(Set<OFPortFeatures> peer);
+ long getCurrSpeed() throws UnsupportedOperationException;
+ Builder setCurrSpeed(long currSpeed) throws UnsupportedOperationException;
+ long getMaxSpeed() throws UnsupportedOperationException;
+ Builder setMaxSpeed(long maxSpeed) throws UnsupportedOperationException;
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsReply.java
new file mode 100644
index 0000000..c445c24
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortDescStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFPortDesc> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFPortDescStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFPortDesc> getEntries();
+ Builder setEntries(List<OFPortDesc> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsRequest.java
new file mode 100644
index 0000000..418e612
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortDescStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortDescStatsRequest extends OFObject, OFStatsRequest<OFPortDescStatsReply>, OFRequest<OFPortDescStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFPortDescStatsReply> {
+ OFPortDescStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortFeatures.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortFeatures.java
new file mode 100644
index 0000000..fd33a69
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortFeatures.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortFeatures {
+ PF_10MB_HD(PortSpeed.SPEED_10MB),
+ PF_10MB_FD(PortSpeed.SPEED_10MB),
+ PF_100MB_HD(PortSpeed.SPEED_100MB),
+ PF_100MB_FD(PortSpeed.SPEED_100MB),
+ PF_1GB_HD(PortSpeed.SPEED_1GB),
+ PF_1GB_FD(PortSpeed.SPEED_1GB),
+ PF_10GB_FD(PortSpeed.SPEED_10GB),
+ PF_COPPER(PortSpeed.SPEED_NONE),
+ PF_FIBER(PortSpeed.SPEED_NONE),
+ PF_AUTONEG(PortSpeed.SPEED_NONE),
+ PF_PAUSE(PortSpeed.SPEED_NONE),
+ PF_PAUSE_ASYM(PortSpeed.SPEED_NONE),
+ PF_40GB_FD(PortSpeed.SPEED_40GB),
+ PF_100GB_FD(PortSpeed.SPEED_100GB),
+ PF_1TB_FD(PortSpeed.SPEED_1TB),
+ PF_OTHER(PortSpeed.SPEED_NONE);
+
+ private final PortSpeed portSpeed;
+
+ private OFPortFeatures(PortSpeed portSpeed) {
+ this.portSpeed = portSpeed;
+ }
+
+ public PortSpeed getPortSpeed() {
+ return portSpeed;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortMod.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortMod.java
new file mode 100644
index 0000000..5c81061
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortMod.java
@@ -0,0 +1,58 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortMod extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFPort getPortNo();
+ MacAddress getHwAddr();
+ long getConfig();
+ long getMask();
+ long getAdvertise();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFPortMod build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ MacAddress getHwAddr();
+ Builder setHwAddr(MacAddress hwAddr);
+ long getConfig();
+ Builder setConfig(long config);
+ long getMask();
+ Builder setMask(long mask);
+ long getAdvertise();
+ Builder setAdvertise(long advertise);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortModFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortModFailedCode.java
new file mode 100644
index 0000000..e43b52c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortModFailedCode.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortModFailedCode {
+ BAD_PORT,
+ BAD_HW_ADDR,
+ BAD_CONFIG,
+ BAD_ADVERTISE,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortReason.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortReason.java
new file mode 100644
index 0000000..2e75baa
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortReason.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortReason {
+ ADD,
+ DELETE,
+ MODIFY;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortState.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortState.java
new file mode 100644
index 0000000..40d1c6b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortState.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFPortState {
+ LINK_DOWN(false),
+ STP_LISTEN(true),
+ STP_LEARN(true),
+ STP_FORWARD(true),
+ STP_BLOCK(true),
+ STP_MASK(true),
+ BLOCKED(false),
+ LIVE(false);
+
+ private final boolean stpState;
+
+ private OFPortState(boolean stpState) {
+ this.stpState = stpState;
+ }
+
+ public boolean isStpState() {
+ return stpState;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsEntry.java
new file mode 100644
index 0000000..fd844f9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsEntry.java
@@ -0,0 +1,83 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortStatsEntry extends OFObject {
+ OFPort getPortNo();
+ U64 getRxPackets();
+ U64 getTxPackets();
+ U64 getRxBytes();
+ U64 getTxBytes();
+ U64 getRxDropped();
+ U64 getTxDropped();
+ U64 getRxErrors();
+ U64 getTxErrors();
+ U64 getRxFrameErr();
+ U64 getRxOverErr();
+ U64 getRxCrcErr();
+ U64 getCollisions();
+ long getDurationSec() throws UnsupportedOperationException;
+ long getDurationNsec() throws UnsupportedOperationException;
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFPortStatsEntry build();
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ U64 getRxPackets();
+ Builder setRxPackets(U64 rxPackets);
+ U64 getTxPackets();
+ Builder setTxPackets(U64 txPackets);
+ U64 getRxBytes();
+ Builder setRxBytes(U64 rxBytes);
+ U64 getTxBytes();
+ Builder setTxBytes(U64 txBytes);
+ U64 getRxDropped();
+ Builder setRxDropped(U64 rxDropped);
+ U64 getTxDropped();
+ Builder setTxDropped(U64 txDropped);
+ U64 getRxErrors();
+ Builder setRxErrors(U64 rxErrors);
+ U64 getTxErrors();
+ Builder setTxErrors(U64 txErrors);
+ U64 getRxFrameErr();
+ Builder setRxFrameErr(U64 rxFrameErr);
+ U64 getRxOverErr();
+ Builder setRxOverErr(U64 rxOverErr);
+ U64 getRxCrcErr();
+ Builder setRxCrcErr(U64 rxCrcErr);
+ U64 getCollisions();
+ Builder setCollisions(U64 collisions);
+ long getDurationSec() throws UnsupportedOperationException;
+ Builder setDurationSec(long durationSec) throws UnsupportedOperationException;
+ long getDurationNsec() throws UnsupportedOperationException;
+ Builder setDurationNsec(long durationNsec) throws UnsupportedOperationException;
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsReply.java
new file mode 100644
index 0000000..90e0c31
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFPortStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFPortStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFPortStatsEntry> getEntries();
+ Builder setEntries(List<OFPortStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsRequest.java
new file mode 100644
index 0000000..2bbdf93
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatsRequest.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortStatsRequest extends OFObject, OFStatsRequest<OFPortStatsReply>, OFRequest<OFPortStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ OFPort getPortNo();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFPortStatsReply> {
+ OFPortStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatus.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatus.java
new file mode 100644
index 0000000..e7bee5b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFPortStatus.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortStatus extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFPortReason getReason();
+ OFPortDesc getDesc();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFPortStatus build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFPortReason getReason();
+ Builder setReason(OFPortReason reason);
+ OFPortDesc getDesc();
+ Builder setDesc(OFPortDesc desc);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigReply.java
new file mode 100644
index 0000000..d31aab4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigReply.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueGetConfigReply extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFPort getPort();
+ List<OFPacketQueue> getQueues();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFQueueGetConfigReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFPort getPort();
+ Builder setPort(OFPort port);
+ List<OFPacketQueue> getQueues();
+ Builder setQueues(List<OFPacketQueue> queues);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigRequest.java
new file mode 100644
index 0000000..cddc9f0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueGetConfigRequest.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueGetConfigRequest extends OFObject, OFMessage, OFRequest<OFQueueGetConfigReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFPort getPort();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFQueueGetConfigRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFPort getPort();
+ Builder setPort(OFPort port);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueOpFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueOpFailedCode.java
new file mode 100644
index 0000000..21549e2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueOpFailedCode.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFQueueOpFailedCode {
+ BAD_PORT,
+ BAD_QUEUE,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueProperties.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueProperties.java
new file mode 100644
index 0000000..a5a11fc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueProperties.java
@@ -0,0 +1,32 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFQueueProperties {
+ NONE,
+ MIN_RATE,
+ MAX_RATE,
+ EXPERIMENTER;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsEntry.java
new file mode 100644
index 0000000..4f04ad8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsEntry.java
@@ -0,0 +1,59 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueStatsEntry extends OFObject {
+ OFPort getPortNo();
+ long getQueueId();
+ U64 getTxBytes();
+ U64 getTxPackets();
+ U64 getTxErrors();
+ long getDurationSec() throws UnsupportedOperationException;
+ long getDurationNsec() throws UnsupportedOperationException;
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFQueueStatsEntry build();
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ long getQueueId();
+ Builder setQueueId(long queueId);
+ U64 getTxBytes();
+ Builder setTxBytes(U64 txBytes);
+ U64 getTxPackets();
+ Builder setTxPackets(U64 txPackets);
+ U64 getTxErrors();
+ Builder setTxErrors(U64 txErrors);
+ long getDurationSec() throws UnsupportedOperationException;
+ Builder setDurationSec(long durationSec) throws UnsupportedOperationException;
+ long getDurationNsec() throws UnsupportedOperationException;
+ Builder setDurationNsec(long durationNsec) throws UnsupportedOperationException;
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsReply.java
new file mode 100644
index 0000000..efeb67d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFQueueStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFQueueStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFQueueStatsEntry> getEntries();
+ Builder setEntries(List<OFQueueStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsRequest.java
new file mode 100644
index 0000000..3101abe
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFQueueStatsRequest.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueStatsRequest extends OFObject, OFStatsRequest<OFQueueStatsReply>, OFRequest<OFQueueStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ OFPort getPortNo();
+ long getQueueId();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFQueueStatsReply> {
+ OFQueueStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ OFPort getPortNo();
+ Builder setPortNo(OFPort portNo);
+ long getQueueId();
+ Builder setQueueId(long queueId);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleReply.java
new file mode 100644
index 0000000..2b3a992
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleReply.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFRoleReply extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFControllerRole getRole();
+ U64 getGenerationId();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFRoleReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFControllerRole getRole();
+ Builder setRole(OFControllerRole role);
+ U64 getGenerationId();
+ Builder setGenerationId(U64 generationId);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequest.java
new file mode 100644
index 0000000..15bae7e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFRoleRequest extends OFObject, OFMessage, OFRequest<OFRoleReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFControllerRole getRole();
+ U64 getGenerationId();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFRoleRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFControllerRole getRole();
+ Builder setRole(OFControllerRole role);
+ U64 getGenerationId();
+ Builder setGenerationId(U64 generationId);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequestFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequestFailedCode.java
new file mode 100644
index 0000000..19793ec
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFRoleRequestFailedCode.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFRoleRequestFailedCode {
+ STALE,
+ UNSUP,
+ BAD_ROLE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSetConfig.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSetConfig.java
new file mode 100644
index 0000000..2caf3f4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSetConfig.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFSetConfig extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Set<OFConfigFlags> getFlags();
+ int getMissSendLen();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFSetConfig build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ Set<OFConfigFlags> getFlags();
+ Builder setFlags(Set<OFConfigFlags> flags);
+ int getMissSendLen();
+ Builder setMissSendLen(int missSendLen);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReply.java
new file mode 100644
index 0000000..504180a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReply.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFStatsReply extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReplyFlags.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReplyFlags.java
new file mode 100644
index 0000000..e521381
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsReplyFlags.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFStatsReplyFlags {
+ REPLY_MORE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequest.java
new file mode 100644
index 0000000..94ea80b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFStatsRequest<T extends OFStatsReply> extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder<T> createBuilder();
+ public interface Builder<T extends OFStatsReply> extends OFMessage.Builder {
+ OFStatsRequest<T> build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder<T> setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder<T> setFlags(Set<OFStatsRequestFlags> flags);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequestFlags.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequestFlags.java
new file mode 100644
index 0000000..80ba542
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsRequestFlags.java
@@ -0,0 +1,29 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFStatsRequestFlags {
+ REQ_MORE;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsType.java
new file mode 100644
index 0000000..fee8757
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFStatsType.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFStatsType {
+ DESC,
+ FLOW,
+ AGGREGATE,
+ TABLE,
+ PORT,
+ QUEUE,
+ EXPERIMENTER,
+ GROUP,
+ GROUP_DESC,
+ GROUP_FEATURES,
+ METER,
+ METER_CONFIG,
+ METER_FEATURES,
+ TABLE_FEATURES,
+ PORT_DESC;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSwitchConfigFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSwitchConfigFailedCode.java
new file mode 100644
index 0000000..646ce00
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFSwitchConfigFailedCode.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFSwitchConfigFailedCode {
+ BAD_FLAGS,
+ BAD_LEN,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTable.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTable.java
new file mode 100644
index 0000000..301ce93
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTable.java
@@ -0,0 +1,30 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTable {
+ MAX,
+ ALL;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableConfig.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableConfig.java
new file mode 100644
index 0000000..d620606
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableConfig.java
@@ -0,0 +1,33 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTableConfig {
+ TABLE_MISS_CONTROLLER,
+ TABLE_MISS_CONTINUE,
+ TABLE_MISS_DROP,
+ TABLE_MISS_MASK,
+ DEPRECATED_MASK;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatureProp.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatureProp.java
new file mode 100644
index 0000000..4df78c2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatureProp.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeatureProp extends OFObject {
+ int getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFTableFeatureProp build();
+ int getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActions.java
new file mode 100644
index 0000000..35ac87a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropApplyActions extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<OFActionId> getActionIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropApplyActions build();
+ int getType();
+ List<OFActionId> getActionIds();
+ Builder setActionIds(List<OFActionId> actionIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActionsMiss.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActionsMiss.java
new file mode 100644
index 0000000..00dff4d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplyActionsMiss.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropApplyActionsMiss extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<OFActionId> getActionIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropApplyActionsMiss build();
+ int getType();
+ List<OFActionId> getActionIds();
+ Builder setActionIds(List<OFActionId> actionIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfield.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfield.java
new file mode 100644
index 0000000..2fc37f7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfield.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropApplySetfield extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<U32> getOxmIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropApplySetfield build();
+ int getType();
+ List<U32> getOxmIds();
+ Builder setOxmIds(List<U32> oxmIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfieldMiss.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfieldMiss.java
new file mode 100644
index 0000000..a1208be
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropApplySetfieldMiss.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropApplySetfieldMiss extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<U32> getOxmIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropApplySetfieldMiss build();
+ int getType();
+ List<U32> getOxmIds();
+ Builder setOxmIds(List<U32> oxmIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenter.java
new file mode 100644
index 0000000..2b80219
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenter.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropExperimenter extends OFObject, OFTableFeatureProp {
+ int getType();
+ long getExperimenter();
+ long getSubtype();
+ byte[] getExperimenterData();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropExperimenter build();
+ int getType();
+ long getExperimenter();
+ Builder setExperimenter(long experimenter);
+ long getSubtype();
+ Builder setSubtype(long subtype);
+ byte[] getExperimenterData();
+ Builder setExperimenterData(byte[] experimenterData);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenterMiss.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenterMiss.java
new file mode 100644
index 0000000..74a2040
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropExperimenterMiss.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropExperimenterMiss extends OFObject, OFTableFeatureProp {
+ int getType();
+ long getExperimenter();
+ long getSubtype();
+ byte[] getExperimenterData();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropExperimenterMiss build();
+ int getType();
+ long getExperimenter();
+ Builder setExperimenter(long experimenter);
+ long getSubtype();
+ Builder setSubtype(long subtype);
+ byte[] getExperimenterData();
+ Builder setExperimenterData(byte[] experimenterData);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructions.java
new file mode 100644
index 0000000..43d489f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropInstructions extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<OFInstructionId> getInstructionIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropInstructions build();
+ int getType();
+ List<OFInstructionId> getInstructionIds();
+ Builder setInstructionIds(List<OFInstructionId> instructionIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructionsMiss.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructionsMiss.java
new file mode 100644
index 0000000..edd4684
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropInstructionsMiss.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropInstructionsMiss extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<OFInstructionId> getInstructionIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropInstructionsMiss build();
+ int getType();
+ List<OFInstructionId> getInstructionIds();
+ Builder setInstructionIds(List<OFInstructionId> instructionIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropMatch.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropMatch.java
new file mode 100644
index 0000000..a065105
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropMatch.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropMatch extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<U32> getOxmIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropMatch build();
+ int getType();
+ List<U32> getOxmIds();
+ Builder setOxmIds(List<U32> oxmIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTables.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTables.java
new file mode 100644
index 0000000..ec3dc29
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTables.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropNextTables extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<U8> getNextTableIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropNextTables build();
+ int getType();
+ List<U8> getNextTableIds();
+ Builder setNextTableIds(List<U8> nextTableIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTablesMiss.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTablesMiss.java
new file mode 100644
index 0000000..d9c5911
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropNextTablesMiss.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropNextTablesMiss extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<U8> getNextTableIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropNextTablesMiss build();
+ int getType();
+ List<U8> getNextTableIds();
+ Builder setNextTableIds(List<U8> nextTableIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropType.java
new file mode 100644
index 0000000..36691ee
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropType.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTableFeaturePropType {
+ INSTRUCTIONS,
+ INSTRUCTIONS_MISS,
+ NEXT_TABLES,
+ NEXT_TABLES_MISS,
+ WRITE_ACTIONS,
+ WRITE_ACTIONS_MISS,
+ APPLY_ACTIONS,
+ APPLY_ACTIONS_MISS,
+ MATCH,
+ WILDCARDS,
+ WRITE_SETFIELD,
+ WRITE_SETFIELD_MISS,
+ APPLY_SETFIELD,
+ APPLY_SETFIELD_MISS,
+ EXPERIMENTER,
+ EXPERIMENTER_MISS;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWildcards.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWildcards.java
new file mode 100644
index 0000000..c513561
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWildcards.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWildcards extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<U32> getOxmIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropWildcards build();
+ int getType();
+ List<U32> getOxmIds();
+ Builder setOxmIds(List<U32> oxmIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActions.java
new file mode 100644
index 0000000..9b7dec1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWriteActions extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<OFActionId> getActionIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropWriteActions build();
+ int getType();
+ List<OFActionId> getActionIds();
+ Builder setActionIds(List<OFActionId> actionIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActionsMiss.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActionsMiss.java
new file mode 100644
index 0000000..e3deb3c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteActionsMiss.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWriteActionsMiss extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<OFActionId> getActionIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropWriteActionsMiss build();
+ int getType();
+ List<OFActionId> getActionIds();
+ Builder setActionIds(List<OFActionId> actionIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfield.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfield.java
new file mode 100644
index 0000000..7b5811b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfield.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWriteSetfield extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<U32> getOxmIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropWriteSetfield build();
+ int getType();
+ List<U32> getOxmIds();
+ Builder setOxmIds(List<U32> oxmIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfieldMiss.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfieldMiss.java
new file mode 100644
index 0000000..f68d90d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturePropWriteSetfieldMiss.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturePropWriteSetfieldMiss extends OFObject, OFTableFeatureProp {
+ int getType();
+ List<U32> getOxmIds();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFTableFeatureProp.Builder {
+ OFTableFeaturePropWriteSetfieldMiss build();
+ int getType();
+ List<U32> getOxmIds();
+ Builder setOxmIds(List<U32> oxmIds);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatures.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatures.java
new file mode 100644
index 0000000..d74de81
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeatures.java
@@ -0,0 +1,60 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeatures extends OFObject {
+ TableId getTableId();
+ String getName();
+ U64 getMetadataMatch();
+ U64 getMetadataWrite();
+ long getConfig();
+ long getMaxEntries();
+ List<OFTableFeatureProp> getProperties();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFTableFeatures build();
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ String getName();
+ Builder setName(String name);
+ U64 getMetadataMatch();
+ Builder setMetadataMatch(U64 metadataMatch);
+ U64 getMetadataWrite();
+ Builder setMetadataWrite(U64 metadataWrite);
+ long getConfig();
+ Builder setConfig(long config);
+ long getMaxEntries();
+ Builder setMaxEntries(long maxEntries);
+ List<OFTableFeatureProp> getProperties();
+ Builder setProperties(List<OFTableFeatureProp> properties);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesFailedCode.java
new file mode 100644
index 0000000..5703e53
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesFailedCode.java
@@ -0,0 +1,34 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTableFeaturesFailedCode {
+ BAD_TABLE,
+ BAD_METADATA,
+ BAD_TYPE,
+ BAD_LEN,
+ BAD_ARGUMENT,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsReply.java
new file mode 100644
index 0000000..10d48ff
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturesStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFTableFeatures> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFTableFeaturesStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFTableFeatures> getEntries();
+ Builder setEntries(List<OFTableFeatures> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsRequest.java
new file mode 100644
index 0000000..00dc72d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableFeaturesStatsRequest.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturesStatsRequest extends OFObject, OFStatsRequest<OFTableFeaturesStatsReply>, OFRequest<OFTableFeaturesStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ List<OFTableFeatures> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFTableFeaturesStatsReply> {
+ OFTableFeaturesStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ List<OFTableFeatures> getEntries();
+ Builder setEntries(List<OFTableFeatures> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableMod.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableMod.java
new file mode 100644
index 0000000..be009c9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableMod.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableMod extends OFObject, OFMessage {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ TableId getTableId();
+ long getConfig();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMessage.Builder {
+ OFTableMod build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ long getConfig();
+ Builder setConfig(long config);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableModFailedCode.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableModFailedCode.java
new file mode 100644
index 0000000..6f81b11
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableModFailedCode.java
@@ -0,0 +1,31 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFTableModFailedCode {
+ BAD_TABLE,
+ BAD_CONFIG,
+ EPERM;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsEntry.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsEntry.java
new file mode 100644
index 0000000..ee02f19
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsEntry.java
@@ -0,0 +1,87 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableStatsEntry extends OFObject {
+ TableId getTableId();
+ String getName() throws UnsupportedOperationException;
+ OFMatchBmap getMatch() throws UnsupportedOperationException;
+ int getWildcards() throws UnsupportedOperationException;
+ long getWriteActions() throws UnsupportedOperationException;
+ long getApplyActions() throws UnsupportedOperationException;
+ U64 getWriteSetfields() throws UnsupportedOperationException;
+ U64 getApplySetfields() throws UnsupportedOperationException;
+ U64 getMetadataMatch() throws UnsupportedOperationException;
+ U64 getMetadataWrite() throws UnsupportedOperationException;
+ long getInstructions() throws UnsupportedOperationException;
+ long getConfig() throws UnsupportedOperationException;
+ long getMaxEntries() throws UnsupportedOperationException;
+ long getActiveCount();
+ U64 getLookupCount();
+ U64 getMatchedCount();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFTableStatsEntry build();
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ String getName() throws UnsupportedOperationException;
+ Builder setName(String name) throws UnsupportedOperationException;
+ OFMatchBmap getMatch() throws UnsupportedOperationException;
+ Builder setMatch(OFMatchBmap match) throws UnsupportedOperationException;
+ int getWildcards() throws UnsupportedOperationException;
+ Builder setWildcards(int wildcards) throws UnsupportedOperationException;
+ long getWriteActions() throws UnsupportedOperationException;
+ Builder setWriteActions(long writeActions) throws UnsupportedOperationException;
+ long getApplyActions() throws UnsupportedOperationException;
+ Builder setApplyActions(long applyActions) throws UnsupportedOperationException;
+ U64 getWriteSetfields() throws UnsupportedOperationException;
+ Builder setWriteSetfields(U64 writeSetfields) throws UnsupportedOperationException;
+ U64 getApplySetfields() throws UnsupportedOperationException;
+ Builder setApplySetfields(U64 applySetfields) throws UnsupportedOperationException;
+ U64 getMetadataMatch() throws UnsupportedOperationException;
+ Builder setMetadataMatch(U64 metadataMatch) throws UnsupportedOperationException;
+ U64 getMetadataWrite() throws UnsupportedOperationException;
+ Builder setMetadataWrite(U64 metadataWrite) throws UnsupportedOperationException;
+ long getInstructions() throws UnsupportedOperationException;
+ Builder setInstructions(long instructions) throws UnsupportedOperationException;
+ long getConfig() throws UnsupportedOperationException;
+ Builder setConfig(long config) throws UnsupportedOperationException;
+ long getMaxEntries() throws UnsupportedOperationException;
+ Builder setMaxEntries(long maxEntries) throws UnsupportedOperationException;
+ long getActiveCount();
+ Builder setActiveCount(long activeCount);
+ U64 getLookupCount();
+ Builder setLookupCount(U64 lookupCount);
+ U64 getMatchedCount();
+ Builder setMatchedCount(U64 matchedCount);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsReply.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsReply.java
new file mode 100644
index 0000000..e16d879
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsReply.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableStatsReply extends OFObject, OFStatsReply {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ List<OFTableStatsEntry> getEntries();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsReply.Builder {
+ OFTableStatsReply build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsReplyFlags> getFlags();
+ Builder setFlags(Set<OFStatsReplyFlags> flags);
+ List<OFTableStatsEntry> getEntries();
+ Builder setEntries(List<OFTableStatsEntry> entries);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsRequest.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsRequest.java
new file mode 100644
index 0000000..a9dff30
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFTableStatsRequest.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableStatsRequest extends OFObject, OFStatsRequest<OFTableStatsReply>, OFRequest<OFTableStatsReply> {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFStatsRequest.Builder<OFTableStatsReply> {
+ OFTableStatsRequest build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFStatsType getStatsType();
+ Set<OFStatsRequestFlags> getFlags();
+ Builder setFlags(Set<OFStatsRequestFlags> flags);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFType.java
new file mode 100644
index 0000000..aef779f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFType.java
@@ -0,0 +1,58 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public enum OFType {
+ HELLO,
+ ERROR,
+ ECHO_REQUEST,
+ ECHO_REPLY,
+ EXPERIMENTER,
+ FEATURES_REQUEST,
+ FEATURES_REPLY,
+ GET_CONFIG_REQUEST,
+ GET_CONFIG_REPLY,
+ SET_CONFIG,
+ PACKET_IN,
+ FLOW_REMOVED,
+ PORT_STATUS,
+ PACKET_OUT,
+ FLOW_MOD,
+ PORT_MOD,
+ STATS_REQUEST,
+ STATS_REPLY,
+ BARRIER_REQUEST,
+ BARRIER_REPLY,
+ QUEUE_GET_CONFIG_REQUEST,
+ QUEUE_GET_CONFIG_REPLY,
+ GROUP_MOD,
+ TABLE_MOD,
+ ROLE_REQUEST,
+ ROLE_REPLY,
+ GET_ASYNC_REQUEST,
+ GET_ASYNC_REPLY,
+ SET_ASYNC,
+ METER_MOD;
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFUint64.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFUint64.java
new file mode 100644
index 0000000..c9d5edd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/OFUint64.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFUint64 extends OFObject {
+ U64 getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFUint64 build();
+ U64 getValue();
+ Builder setValue(U64 value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFAction.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFAction.java
new file mode 100644
index 0000000..6a2f731
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFAction.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFAction extends OFObject {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFAction build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsn.java
new file mode 100644
index 0000000..c644ffd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionBsn extends OFObject, OFActionExperimenter {
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionExperimenter.Builder {
+ OFActionBsn build();
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnChecksum.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnChecksum.java
new file mode 100644
index 0000000..e09c19c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnChecksum.java
@@ -0,0 +1,47 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionBsnChecksum extends OFObject, OFActionBsn {
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ U128 getChecksum();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionBsn.Builder {
+ OFActionBsnChecksum build();
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ U128 getChecksum();
+ Builder setChecksum(U128 checksum);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnMirror.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnMirror.java
new file mode 100644
index 0000000..8b15cd2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnMirror.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionBsnMirror extends OFObject, OFActionBsn {
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFPort getDestPort();
+ long getVlanTag();
+ short getCopyStage();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionBsn.Builder {
+ OFActionBsnMirror build();
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFPort getDestPort();
+ Builder setDestPort(OFPort destPort);
+ long getVlanTag();
+ Builder setVlanTag(long vlanTag);
+ short getCopyStage();
+ Builder setCopyStage(short copyStage);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnSetTunnelDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnSetTunnelDst.java
new file mode 100644
index 0000000..24dbb3a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionBsnSetTunnelDst.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionBsnSetTunnelDst extends OFObject, OFActionBsn {
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ long getDst();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionBsn.Builder {
+ OFActionBsnSetTunnelDst build();
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ long getDst();
+ Builder setDst(long dst);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlIn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlIn.java
new file mode 100644
index 0000000..166d4a7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlIn.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionCopyTtlIn extends OFObject, OFAction {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionCopyTtlIn build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlOut.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlOut.java
new file mode 100644
index 0000000..d78e511
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionCopyTtlOut.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionCopyTtlOut extends OFObject, OFAction {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionCopyTtlOut build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecMplsTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecMplsTtl.java
new file mode 100644
index 0000000..e855cf0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecMplsTtl.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionDecMplsTtl extends OFObject, OFAction {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionDecMplsTtl build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecNwTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecNwTtl.java
new file mode 100644
index 0000000..5dbec27
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionDecNwTtl.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionDecNwTtl extends OFObject, OFAction {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionDecNwTtl build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionEnqueue.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionEnqueue.java
new file mode 100644
index 0000000..11ab1a6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionEnqueue.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionEnqueue extends OFObject, OFAction {
+ OFActionType getType();
+ OFPort getPort();
+ long getQueueId();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionEnqueue build();
+ OFActionType getType();
+ OFPort getPort();
+ Builder setPort(OFPort port);
+ long getQueueId();
+ Builder setQueueId(long queueId);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionExperimenter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionExperimenter.java
new file mode 100644
index 0000000..56d9ef9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionExperimenter.java
@@ -0,0 +1,42 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionExperimenter extends OFObject, OFAction {
+ OFActionType getType();
+ long getExperimenter();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionExperimenter build();
+ OFActionType getType();
+ long getExperimenter();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionGroup.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionGroup.java
new file mode 100644
index 0000000..8d65fa8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionGroup.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionGroup extends OFObject, OFAction {
+ OFActionType getType();
+ OFGroup getGroup();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionGroup build();
+ OFActionType getType();
+ OFGroup getGroup();
+ Builder setGroup(OFGroup group);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNicira.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNicira.java
new file mode 100644
index 0000000..aad3c35
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNicira.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionNicira extends OFObject, OFActionExperimenter {
+ OFActionType getType();
+ long getExperimenter();
+ int getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionExperimenter.Builder {
+ OFActionNicira build();
+ OFActionType getType();
+ long getExperimenter();
+ int getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNiciraDecTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNiciraDecTtl.java
new file mode 100644
index 0000000..55b81c9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionNiciraDecTtl.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionNiciraDecTtl extends OFObject, OFActionNicira {
+ OFActionType getType();
+ long getExperimenter();
+ int getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionNicira.Builder {
+ OFActionNiciraDecTtl build();
+ OFActionType getType();
+ long getExperimenter();
+ int getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionOutput.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionOutput.java
new file mode 100644
index 0000000..b673a22
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionOutput.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionOutput extends OFObject, OFAction {
+ OFActionType getType();
+ OFPort getPort();
+ int getMaxLen();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionOutput build();
+ OFActionType getType();
+ OFPort getPort();
+ Builder setPort(OFPort port);
+ int getMaxLen();
+ Builder setMaxLen(int maxLen);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopMpls.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopMpls.java
new file mode 100644
index 0000000..3067e2f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopMpls.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPopMpls extends OFObject, OFAction {
+ OFActionType getType();
+ EthType getEthertype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionPopMpls build();
+ OFActionType getType();
+ EthType getEthertype();
+ Builder setEthertype(EthType ethertype);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopPbb.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopPbb.java
new file mode 100644
index 0000000..33934b6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopPbb.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPopPbb extends OFObject, OFAction {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionPopPbb build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopVlan.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopVlan.java
new file mode 100644
index 0000000..998f7db
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPopVlan.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPopVlan extends OFObject, OFAction {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionPopVlan build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushMpls.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushMpls.java
new file mode 100644
index 0000000..76b7da2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushMpls.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPushMpls extends OFObject, OFAction {
+ OFActionType getType();
+ EthType getEthertype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionPushMpls build();
+ OFActionType getType();
+ EthType getEthertype();
+ Builder setEthertype(EthType ethertype);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushPbb.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushPbb.java
new file mode 100644
index 0000000..0177569
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushPbb.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPushPbb extends OFObject, OFAction {
+ OFActionType getType();
+ EthType getEthertype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionPushPbb build();
+ OFActionType getType();
+ EthType getEthertype();
+ Builder setEthertype(EthType ethertype);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushVlan.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushVlan.java
new file mode 100644
index 0000000..e98513b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionPushVlan.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionPushVlan extends OFObject, OFAction {
+ OFActionType getType();
+ EthType getEthertype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionPushVlan build();
+ OFActionType getType();
+ EthType getEthertype();
+ Builder setEthertype(EthType ethertype);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlDst.java
new file mode 100644
index 0000000..1897651
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlDst.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetDlDst extends OFObject, OFAction {
+ OFActionType getType();
+ MacAddress getDlAddr();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetDlDst build();
+ OFActionType getType();
+ MacAddress getDlAddr();
+ Builder setDlAddr(MacAddress dlAddr);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlSrc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlSrc.java
new file mode 100644
index 0000000..8dcc7f5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetDlSrc.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetDlSrc extends OFObject, OFAction {
+ OFActionType getType();
+ MacAddress getDlAddr();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetDlSrc build();
+ OFActionType getType();
+ MacAddress getDlAddr();
+ Builder setDlAddr(MacAddress dlAddr);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetField.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetField.java
new file mode 100644
index 0000000..25f91ce
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetField.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetField extends OFObject, OFAction {
+ OFActionType getType();
+ OFOxm<?> getField();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetField build();
+ OFActionType getType();
+ OFOxm<?> getField();
+ Builder setField(OFOxm<?> field);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsLabel.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsLabel.java
new file mode 100644
index 0000000..214d66b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsLabel.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetMplsLabel extends OFObject, OFAction {
+ OFActionType getType();
+ long getMplsLabel();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetMplsLabel build();
+ OFActionType getType();
+ long getMplsLabel();
+ Builder setMplsLabel(long mplsLabel);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTc.java
new file mode 100644
index 0000000..6c43156
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTc.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetMplsTc extends OFObject, OFAction {
+ OFActionType getType();
+ short getMplsTc();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetMplsTc build();
+ OFActionType getType();
+ short getMplsTc();
+ Builder setMplsTc(short mplsTc);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTtl.java
new file mode 100644
index 0000000..c8513c6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetMplsTtl.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetMplsTtl extends OFObject, OFAction {
+ OFActionType getType();
+ short getMplsTtl();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetMplsTtl build();
+ OFActionType getType();
+ short getMplsTtl();
+ Builder setMplsTtl(short mplsTtl);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwDst.java
new file mode 100644
index 0000000..539cd37
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwDst.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwDst extends OFObject, OFAction {
+ OFActionType getType();
+ IPv4Address getNwAddr();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetNwDst build();
+ OFActionType getType();
+ IPv4Address getNwAddr();
+ Builder setNwAddr(IPv4Address nwAddr);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwEcn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwEcn.java
new file mode 100644
index 0000000..a42e2c8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwEcn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwEcn extends OFObject, OFAction {
+ OFActionType getType();
+ IpEcn getNwEcn();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetNwEcn build();
+ OFActionType getType();
+ IpEcn getNwEcn();
+ Builder setNwEcn(IpEcn nwEcn);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwSrc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwSrc.java
new file mode 100644
index 0000000..cd27977
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwSrc.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwSrc extends OFObject, OFAction {
+ OFActionType getType();
+ IPv4Address getNwAddr();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetNwSrc build();
+ OFActionType getType();
+ IPv4Address getNwAddr();
+ Builder setNwAddr(IPv4Address nwAddr);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTos.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTos.java
new file mode 100644
index 0000000..38a133b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTos.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwTos extends OFObject, OFAction {
+ OFActionType getType();
+ short getNwTos();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetNwTos build();
+ OFActionType getType();
+ short getNwTos();
+ Builder setNwTos(short nwTos);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTtl.java
new file mode 100644
index 0000000..ed35d59
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetNwTtl.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetNwTtl extends OFObject, OFAction {
+ OFActionType getType();
+ short getNwTtl();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetNwTtl build();
+ OFActionType getType();
+ short getNwTtl();
+ Builder setNwTtl(short nwTtl);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetQueue.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetQueue.java
new file mode 100644
index 0000000..b2115ab
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetQueue.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetQueue extends OFObject, OFAction {
+ OFActionType getType();
+ long getQueueId();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetQueue build();
+ OFActionType getType();
+ long getQueueId();
+ Builder setQueueId(long queueId);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpDst.java
new file mode 100644
index 0000000..680b99a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpDst.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetTpDst extends OFObject, OFAction {
+ OFActionType getType();
+ TransportPort getTpPort();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetTpDst build();
+ OFActionType getType();
+ TransportPort getTpPort();
+ Builder setTpPort(TransportPort tpPort);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpSrc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpSrc.java
new file mode 100644
index 0000000..bf555aa
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetTpSrc.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetTpSrc extends OFObject, OFAction {
+ OFActionType getType();
+ TransportPort getTpPort();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetTpSrc build();
+ OFActionType getType();
+ TransportPort getTpPort();
+ Builder setTpPort(TransportPort tpPort);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanPcp.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanPcp.java
new file mode 100644
index 0000000..a448078
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanPcp.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetVlanPcp extends OFObject, OFAction {
+ OFActionType getType();
+ VlanPcp getVlanPcp();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetVlanPcp build();
+ OFActionType getType();
+ VlanPcp getVlanPcp();
+ Builder setVlanPcp(VlanPcp vlanPcp);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanVid.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanVid.java
new file mode 100644
index 0000000..5bbf2c7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionSetVlanVid.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionSetVlanVid extends OFObject, OFAction {
+ OFActionType getType();
+ VlanVid getVlanVid();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionSetVlanVid build();
+ OFActionType getType();
+ VlanVid getVlanVid();
+ Builder setVlanVid(VlanVid vlanVid);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionStripVlan.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionStripVlan.java
new file mode 100644
index 0000000..d3fcc90
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActionStripVlan.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionStripVlan extends OFObject, OFAction {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFAction.Builder {
+ OFActionStripVlan build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActions.java
new file mode 100644
index 0000000..e465ac5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/action/OFActions.java
@@ -0,0 +1,93 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.action;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+
+public interface OFActions {
+ // Subfactories
+
+ OFActionBsnChecksum.Builder buildBsnChecksum();
+ OFActionBsnChecksum bsnChecksum(U128 checksum);
+ OFActionBsnMirror.Builder buildBsnMirror();
+ OFActionBsnSetTunnelDst.Builder buildBsnSetTunnelDst();
+ OFActionBsnSetTunnelDst bsnSetTunnelDst(long dst);
+ OFActionEnqueue.Builder buildEnqueue() throws UnsupportedOperationException;
+ OFActionEnqueue enqueue(OFPort port, long queueId);
+ OFActionNiciraDecTtl niciraDecTtl();
+ OFActionOutput.Builder buildOutput();
+ OFActionOutput output(OFPort port, int maxLen);
+ OFActionSetDlDst.Builder buildSetDlDst() throws UnsupportedOperationException;
+ OFActionSetDlDst setDlDst(MacAddress dlAddr);
+ OFActionSetDlSrc.Builder buildSetDlSrc() throws UnsupportedOperationException;
+ OFActionSetDlSrc setDlSrc(MacAddress dlAddr);
+ OFActionSetNwDst.Builder buildSetNwDst() throws UnsupportedOperationException;
+ OFActionSetNwDst setNwDst(IPv4Address nwAddr);
+ OFActionSetNwSrc.Builder buildSetNwSrc() throws UnsupportedOperationException;
+ OFActionSetNwSrc setNwSrc(IPv4Address nwAddr);
+ OFActionSetNwTos.Builder buildSetNwTos() throws UnsupportedOperationException;
+ OFActionSetNwTos setNwTos(short nwTos);
+ OFActionSetTpDst.Builder buildSetTpDst() throws UnsupportedOperationException;
+ OFActionSetTpDst setTpDst(TransportPort tpPort);
+ OFActionSetTpSrc.Builder buildSetTpSrc() throws UnsupportedOperationException;
+ OFActionSetTpSrc setTpSrc(TransportPort tpPort);
+ OFActionSetVlanPcp.Builder buildSetVlanPcp() throws UnsupportedOperationException;
+ OFActionSetVlanPcp setVlanPcp(VlanPcp vlanPcp);
+ OFActionSetVlanVid.Builder buildSetVlanVid() throws UnsupportedOperationException;
+ OFActionSetVlanVid setVlanVid(VlanVid vlanVid);
+ OFActionStripVlan stripVlan();
+ OFActionCopyTtlIn copyTtlIn();
+ OFActionCopyTtlOut copyTtlOut();
+ OFActionDecMplsTtl decMplsTtl();
+ OFActionDecNwTtl decNwTtl();
+ OFActionGroup.Builder buildGroup() throws UnsupportedOperationException;
+ OFActionGroup group(OFGroup group);
+ OFActionPopMpls.Builder buildPopMpls() throws UnsupportedOperationException;
+ OFActionPopMpls popMpls(EthType ethertype);
+ OFActionPopVlan popVlan();
+ OFActionPushMpls.Builder buildPushMpls() throws UnsupportedOperationException;
+ OFActionPushMpls pushMpls(EthType ethertype);
+ OFActionPushVlan.Builder buildPushVlan() throws UnsupportedOperationException;
+ OFActionPushVlan pushVlan(EthType ethertype);
+ OFActionSetMplsLabel.Builder buildSetMplsLabel() throws UnsupportedOperationException;
+ OFActionSetMplsLabel setMplsLabel(long mplsLabel);
+ OFActionSetMplsTc.Builder buildSetMplsTc() throws UnsupportedOperationException;
+ OFActionSetMplsTc setMplsTc(short mplsTc);
+ OFActionSetMplsTtl.Builder buildSetMplsTtl() throws UnsupportedOperationException;
+ OFActionSetMplsTtl setMplsTtl(short mplsTtl);
+ OFActionSetNwEcn.Builder buildSetNwEcn() throws UnsupportedOperationException;
+ OFActionSetNwEcn setNwEcn(IpEcn nwEcn);
+ OFActionSetNwTtl.Builder buildSetNwTtl() throws UnsupportedOperationException;
+ OFActionSetNwTtl setNwTtl(short nwTtl);
+ OFActionSetQueue.Builder buildSetQueue() throws UnsupportedOperationException;
+ OFActionSetQueue setQueue(long queueId);
+ OFActionSetField.Builder buildSetField() throws UnsupportedOperationException;
+ OFActionSetField setField(OFOxm<?> field);
+ OFActionPopPbb popPbb();
+ OFActionPushPbb.Builder buildPushPbb() throws UnsupportedOperationException;
+ OFActionPushPbb pushPbb(EthType ethertype);
+
+ OFMessageReader<OFAction> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionId.java
new file mode 100644
index 0000000..0ffacb4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionId.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionId extends OFObject {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFActionId build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsn.java
new file mode 100644
index 0000000..c74b037
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdBsn extends OFObject, OFActionIdExperimenter {
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionIdExperimenter.Builder {
+ OFActionIdBsn build();
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnChecksum.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnChecksum.java
new file mode 100644
index 0000000..b051b37
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnChecksum.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdBsnChecksum extends OFObject, OFActionIdBsn {
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionIdBsn.Builder {
+ OFActionIdBsnChecksum build();
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnMirror.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnMirror.java
new file mode 100644
index 0000000..60c4c92
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnMirror.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdBsnMirror extends OFObject, OFActionIdBsn {
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionIdBsn.Builder {
+ OFActionIdBsnMirror build();
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnSetTunnelDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnSetTunnelDst.java
new file mode 100644
index 0000000..b2c407a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdBsnSetTunnelDst.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdBsnSetTunnelDst extends OFObject, OFActionIdBsn {
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionIdBsn.Builder {
+ OFActionIdBsnSetTunnelDst build();
+ OFActionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlIn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlIn.java
new file mode 100644
index 0000000..0be31c3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlIn.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdCopyTtlIn extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdCopyTtlIn build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlOut.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlOut.java
new file mode 100644
index 0000000..b29d1ff
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdCopyTtlOut.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdCopyTtlOut extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdCopyTtlOut build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecMplsTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecMplsTtl.java
new file mode 100644
index 0000000..dfcc979
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecMplsTtl.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdDecMplsTtl extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdDecMplsTtl build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecNwTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecNwTtl.java
new file mode 100644
index 0000000..f9b31f1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdDecNwTtl.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdDecNwTtl extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdDecNwTtl build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdExperimenter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdExperimenter.java
new file mode 100644
index 0000000..084ca57
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdExperimenter.java
@@ -0,0 +1,42 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdExperimenter extends OFObject, OFActionId {
+ OFActionType getType();
+ long getExperimenter();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdExperimenter build();
+ OFActionType getType();
+ long getExperimenter();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdGroup.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdGroup.java
new file mode 100644
index 0000000..b38c9ab
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdGroup.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdGroup extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdGroup build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNicira.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNicira.java
new file mode 100644
index 0000000..7c723ac
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNicira.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdNicira extends OFObject, OFActionIdExperimenter {
+ OFActionType getType();
+ long getExperimenter();
+ int getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionIdExperimenter.Builder {
+ OFActionIdNicira build();
+ OFActionType getType();
+ long getExperimenter();
+ int getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNiciraDecTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNiciraDecTtl.java
new file mode 100644
index 0000000..6d53414
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdNiciraDecTtl.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdNiciraDecTtl extends OFObject, OFActionIdNicira {
+ OFActionType getType();
+ long getExperimenter();
+ int getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionIdNicira.Builder {
+ OFActionIdNiciraDecTtl build();
+ OFActionType getType();
+ long getExperimenter();
+ int getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdOutput.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdOutput.java
new file mode 100644
index 0000000..ea2749c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdOutput.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdOutput extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdOutput build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopMpls.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopMpls.java
new file mode 100644
index 0000000..9308ca1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopMpls.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPopMpls extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdPopMpls build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopPbb.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopPbb.java
new file mode 100644
index 0000000..4371ec2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopPbb.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPopPbb extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdPopPbb build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopVlan.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopVlan.java
new file mode 100644
index 0000000..757d40a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPopVlan.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPopVlan extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdPopVlan build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushMpls.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushMpls.java
new file mode 100644
index 0000000..5f76d66
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushMpls.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPushMpls extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdPushMpls build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushPbb.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushPbb.java
new file mode 100644
index 0000000..0005457
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushPbb.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPushPbb extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdPushPbb build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushVlan.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushVlan.java
new file mode 100644
index 0000000..c94cb34
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdPushVlan.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdPushVlan extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdPushVlan build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetField.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetField.java
new file mode 100644
index 0000000..d3f5328
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetField.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdSetField extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdSetField build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetMplsTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetMplsTtl.java
new file mode 100644
index 0000000..706c772
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetMplsTtl.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdSetMplsTtl extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdSetMplsTtl build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetNwTtl.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetNwTtl.java
new file mode 100644
index 0000000..8e588be
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetNwTtl.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdSetNwTtl extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdSetNwTtl build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetQueue.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetQueue.java
new file mode 100644
index 0000000..2c29b66
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIdSetQueue.java
@@ -0,0 +1,41 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFActionIdSetQueue extends OFObject, OFActionId {
+ OFActionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFActionId.Builder {
+ OFActionIdSetQueue build();
+ OFActionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIds.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIds.java
new file mode 100644
index 0000000..8c6c132
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/actionid/OFActionIds.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.actionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+
+public interface OFActionIds {
+ // Subfactories
+
+ OFActionIdBsnChecksum bsnChecksum();
+ OFActionIdBsnMirror bsnMirror();
+ OFActionIdBsnSetTunnelDst bsnSetTunnelDst();
+ OFActionIdCopyTtlIn copyTtlIn();
+ OFActionIdCopyTtlOut copyTtlOut();
+ OFActionIdDecMplsTtl decMplsTtl();
+ OFActionIdDecNwTtl decNwTtl();
+ OFActionIdGroup group();
+ OFActionIdNiciraDecTtl niciraDecTtl();
+ OFActionIdOutput output();
+ OFActionIdPopMpls popMpls();
+ OFActionIdPopPbb popPbb();
+ OFActionIdPopVlan popVlan();
+ OFActionIdPushMpls pushMpls();
+ OFActionIdPushPbb pushPbb();
+ OFActionIdPushVlan pushVlan();
+ OFActionIdSetField setField();
+ OFActionIdSetMplsTtl setMplsTtl();
+ OFActionIdSetNwTtl setNwTtl();
+ OFActionIdSetQueue setQueue();
+
+ OFMessageReader<OFActionId> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlv.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlv.java
new file mode 100644
index 0000000..bc150fd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlv.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlv extends OFObject {
+ int getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFBsnTlv build();
+ int getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvBroadcastQueryTimeout.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvBroadcastQueryTimeout.java
new file mode 100644
index 0000000..7de728a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvBroadcastQueryTimeout.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvBroadcastQueryTimeout extends OFObject, OFBsnTlv {
+ int getType();
+ long getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvBroadcastQueryTimeout build();
+ int getType();
+ long getValue();
+ Builder setValue(long value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCircuitId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCircuitId.java
new file mode 100644
index 0000000..d20aed0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCircuitId.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvCircuitId extends OFObject, OFBsnTlv {
+ int getType();
+ byte[] getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvCircuitId build();
+ int getType();
+ byte[] getValue();
+ Builder setValue(byte[] value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCrcEnabled.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCrcEnabled.java
new file mode 100644
index 0000000..ec66f67
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvCrcEnabled.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvCrcEnabled extends OFObject, OFBsnTlv {
+ int getType();
+ short getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvCrcEnabled build();
+ int getType();
+ short getValue();
+ Builder setValue(short value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleNotification.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleNotification.java
new file mode 100644
index 0000000..57dd477
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleNotification.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvIdleNotification extends OFObject, OFBsnTlv {
+ int getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvIdleNotification build();
+ int getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTime.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTime.java
new file mode 100644
index 0000000..ac87110
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTime.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvIdleTime extends OFObject, OFBsnTlv {
+ int getType();
+ U64 getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvIdleTime build();
+ int getType();
+ U64 getValue();
+ Builder setValue(U64 value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTimeout.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTimeout.java
new file mode 100644
index 0000000..deb7e68
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIdleTimeout.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvIdleTimeout extends OFObject, OFBsnTlv {
+ int getType();
+ long getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvIdleTimeout build();
+ int getType();
+ long getValue();
+ Builder setValue(long value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIpv4.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIpv4.java
new file mode 100644
index 0000000..ea7dc41
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvIpv4.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvIpv4 extends OFObject, OFBsnTlv {
+ int getType();
+ IPv4Address getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvIpv4 build();
+ int getType();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMac.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMac.java
new file mode 100644
index 0000000..f6978a5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMac.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvMac extends OFObject, OFBsnTlv {
+ int getType();
+ MacAddress getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvMac build();
+ int getType();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMissPackets.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMissPackets.java
new file mode 100644
index 0000000..2b9a7ea
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvMissPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvMissPackets extends OFObject, OFBsnTlv {
+ int getType();
+ U64 getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvMissPackets build();
+ int getType();
+ U64 getValue();
+ Builder setValue(U64 value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvPort.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvPort.java
new file mode 100644
index 0000000..536075a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvPort.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvPort extends OFObject, OFBsnTlv {
+ int getType();
+ OFPort getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvPort build();
+ int getType();
+ OFPort getValue();
+ Builder setValue(OFPort value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueId.java
new file mode 100644
index 0000000..844c727
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueId.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvQueueId extends OFObject, OFBsnTlv {
+ int getType();
+ long getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvQueueId build();
+ int getType();
+ long getValue();
+ Builder setValue(long value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueWeight.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueWeight.java
new file mode 100644
index 0000000..a41686d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvQueueWeight.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvQueueWeight extends OFObject, OFBsnTlv {
+ int getType();
+ long getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvQueueWeight build();
+ int getType();
+ long getValue();
+ Builder setValue(long value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvReplyPackets.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvReplyPackets.java
new file mode 100644
index 0000000..ef2d93e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvReplyPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvReplyPackets extends OFObject, OFBsnTlv {
+ int getType();
+ U64 getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvReplyPackets build();
+ int getType();
+ U64 getValue();
+ Builder setValue(U64 value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRequestPackets.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRequestPackets.java
new file mode 100644
index 0000000..bed22ae
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRequestPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvRequestPackets extends OFObject, OFBsnTlv {
+ int getType();
+ U64 getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvRequestPackets build();
+ int getType();
+ U64 getValue();
+ Builder setValue(U64 value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRxPackets.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRxPackets.java
new file mode 100644
index 0000000..98ac7da
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvRxPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvRxPackets extends OFObject, OFBsnTlv {
+ int getType();
+ U64 getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvRxPackets build();
+ int getType();
+ U64 getValue();
+ Builder setValue(U64 value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvTxPackets.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvTxPackets.java
new file mode 100644
index 0000000..e292b24
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvTxPackets.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvTxPackets extends OFObject, OFBsnTlv {
+ int getType();
+ U64 getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvTxPackets build();
+ int getType();
+ U64 getValue();
+ Builder setValue(U64 value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfAnchor.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfAnchor.java
new file mode 100644
index 0000000..05eea9b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfAnchor.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUdfAnchor extends OFObject, OFBsnTlv {
+ int getType();
+ OFBsnUdfAnchor getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvUdfAnchor build();
+ int getType();
+ OFBsnUdfAnchor getValue();
+ Builder setValue(OFBsnUdfAnchor value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfId.java
new file mode 100644
index 0000000..ff5156b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfId.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUdfId extends OFObject, OFBsnTlv {
+ int getType();
+ int getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvUdfId build();
+ int getType();
+ int getValue();
+ Builder setValue(int value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfLength.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfLength.java
new file mode 100644
index 0000000..03ed71b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfLength.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUdfLength extends OFObject, OFBsnTlv {
+ int getType();
+ int getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvUdfLength build();
+ int getType();
+ int getValue();
+ Builder setValue(int value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfOffset.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfOffset.java
new file mode 100644
index 0000000..c572fbf
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUdfOffset.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUdfOffset extends OFObject, OFBsnTlv {
+ int getType();
+ int getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvUdfOffset build();
+ int getType();
+ int getValue();
+ Builder setValue(int value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUnicastQueryTimeout.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUnicastQueryTimeout.java
new file mode 100644
index 0000000..26c6b12
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvUnicastQueryTimeout.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvUnicastQueryTimeout extends OFObject, OFBsnTlv {
+ int getType();
+ long getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvUnicastQueryTimeout build();
+ int getType();
+ long getValue();
+ Builder setValue(long value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVlanVid.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVlanVid.java
new file mode 100644
index 0000000..3943538
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVlanVid.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvVlanVid extends OFObject, OFBsnTlv {
+ int getType();
+ VlanVid getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvVlanVid build();
+ int getType();
+ VlanVid getValue();
+ Builder setValue(VlanVid value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVrf.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVrf.java
new file mode 100644
index 0000000..b89d0e3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvVrf.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBsnTlvVrf extends OFObject, OFBsnTlv {
+ int getType();
+ long getValue();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFBsnTlv.Builder {
+ OFBsnTlvVrf build();
+ int getType();
+ long getValue();
+ Builder setValue(long value);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvs.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvs.java
new file mode 100644
index 0000000..b89d774
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/bsntlv/OFBsnTlvs.java
@@ -0,0 +1,78 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.bsntlv;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFBsnTlvs {
+ // Subfactories
+
+ OFBsnTlvBroadcastQueryTimeout.Builder buildBroadcastQueryTimeout() throws UnsupportedOperationException;
+ OFBsnTlvBroadcastQueryTimeout broadcastQueryTimeout(long value);
+ OFBsnTlvCircuitId.Builder buildCircuitId() throws UnsupportedOperationException;
+ OFBsnTlvCircuitId circuitId(byte[] value);
+ OFBsnTlvCrcEnabled.Builder buildCrcEnabled() throws UnsupportedOperationException;
+ OFBsnTlvCrcEnabled crcEnabled(short value);
+ OFBsnTlvIdleNotification idleNotification();
+ OFBsnTlvIdleTime.Builder buildIdleTime() throws UnsupportedOperationException;
+ OFBsnTlvIdleTime idleTime(U64 value);
+ OFBsnTlvIdleTimeout.Builder buildIdleTimeout() throws UnsupportedOperationException;
+ OFBsnTlvIdleTimeout idleTimeout(long value);
+ OFBsnTlvIpv4.Builder buildIpv4() throws UnsupportedOperationException;
+ OFBsnTlvIpv4 ipv4(IPv4Address value);
+ OFBsnTlvMac.Builder buildMac() throws UnsupportedOperationException;
+ OFBsnTlvMac mac(MacAddress value);
+ OFBsnTlvMissPackets.Builder buildMissPackets() throws UnsupportedOperationException;
+ OFBsnTlvMissPackets missPackets(U64 value);
+ OFBsnTlvPort.Builder buildPort() throws UnsupportedOperationException;
+ OFBsnTlvPort port(OFPort value);
+ OFBsnTlvQueueId.Builder buildQueueId() throws UnsupportedOperationException;
+ OFBsnTlvQueueId queueId(long value);
+ OFBsnTlvQueueWeight.Builder buildQueueWeight() throws UnsupportedOperationException;
+ OFBsnTlvQueueWeight queueWeight(long value);
+ OFBsnTlvReplyPackets.Builder buildReplyPackets() throws UnsupportedOperationException;
+ OFBsnTlvReplyPackets replyPackets(U64 value);
+ OFBsnTlvRequestPackets.Builder buildRequestPackets() throws UnsupportedOperationException;
+ OFBsnTlvRequestPackets requestPackets(U64 value);
+ OFBsnTlvRxPackets.Builder buildRxPackets() throws UnsupportedOperationException;
+ OFBsnTlvRxPackets rxPackets(U64 value);
+ OFBsnTlvTxPackets.Builder buildTxPackets() throws UnsupportedOperationException;
+ OFBsnTlvTxPackets txPackets(U64 value);
+ OFBsnTlvUdfAnchor.Builder buildUdfAnchor() throws UnsupportedOperationException;
+ OFBsnTlvUdfAnchor udfAnchor(OFBsnUdfAnchor value);
+ OFBsnTlvUdfId.Builder buildUdfId() throws UnsupportedOperationException;
+ OFBsnTlvUdfId udfId(int value);
+ OFBsnTlvUdfLength.Builder buildUdfLength() throws UnsupportedOperationException;
+ OFBsnTlvUdfLength udfLength(int value);
+ OFBsnTlvUdfOffset.Builder buildUdfOffset() throws UnsupportedOperationException;
+ OFBsnTlvUdfOffset udfOffset(int value);
+ OFBsnTlvUnicastQueryTimeout.Builder buildUnicastQueryTimeout() throws UnsupportedOperationException;
+ OFBsnTlvUnicastQueryTimeout unicastQueryTimeout(long value);
+ OFBsnTlvVlanVid.Builder buildVlanVid() throws UnsupportedOperationException;
+ OFBsnTlvVlanVid vlanVid(VlanVid value);
+ OFBsnTlvVrf.Builder buildVrf() throws UnsupportedOperationException;
+ OFBsnTlvVrf vrf(long value);
+
+ OFMessageReader<OFBsnTlv> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadActionErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadActionErrorMsg.java
new file mode 100644
index 0000000..b21fd98
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadActionErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBadActionErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFBadActionCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFBadActionErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFBadActionCode getCode();
+ Builder setCode(OFBadActionCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadInstructionErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadInstructionErrorMsg.java
new file mode 100644
index 0000000..2a9ae22
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadInstructionErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBadInstructionErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFBadInstructionCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFBadInstructionErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFBadInstructionCode getCode();
+ Builder setCode(OFBadInstructionCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadMatchErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadMatchErrorMsg.java
new file mode 100644
index 0000000..73a2508
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadMatchErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBadMatchErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFBadMatchCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFBadMatchErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFBadMatchCode getCode();
+ Builder setCode(OFBadMatchCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadRequestErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadRequestErrorMsg.java
new file mode 100644
index 0000000..dac9bcc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFBadRequestErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFBadRequestErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFBadRequestCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFBadRequestErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFBadRequestCode getCode();
+ Builder setCode(OFBadRequestCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFErrorMsgs.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFErrorMsgs.java
new file mode 100644
index 0000000..db7485d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFErrorMsgs.java
@@ -0,0 +1,48 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFErrorMsgs extends XidGenerator {
+ // Subfactories
+
+ OFBadActionErrorMsg.Builder buildBadActionErrorMsg();
+ OFBadRequestErrorMsg.Builder buildBadRequestErrorMsg();
+ OFFlowModFailedErrorMsg.Builder buildFlowModFailedErrorMsg();
+ OFHelloFailedErrorMsg.Builder buildHelloFailedErrorMsg();
+ OFPortModFailedErrorMsg.Builder buildPortModFailedErrorMsg();
+ OFQueueOpFailedErrorMsg.Builder buildQueueOpFailedErrorMsg();
+ OFBadInstructionErrorMsg.Builder buildBadInstructionErrorMsg() throws UnsupportedOperationException;
+ OFBadMatchErrorMsg.Builder buildBadMatchErrorMsg() throws UnsupportedOperationException;
+ OFGroupModFailedErrorMsg.Builder buildGroupModFailedErrorMsg() throws UnsupportedOperationException;
+ OFSwitchConfigFailedErrorMsg.Builder buildSwitchConfigFailedErrorMsg() throws UnsupportedOperationException;
+ OFTableModFailedErrorMsg.Builder buildTableModFailedErrorMsg() throws UnsupportedOperationException;
+ OFExperimenterErrorMsg.Builder buildExperimenterErrorMsg() throws UnsupportedOperationException;
+ OFRoleRequestFailedErrorMsg.Builder buildRoleRequestFailedErrorMsg() throws UnsupportedOperationException;
+ OFMeterModFailedErrorMsg.Builder buildMeterModFailedErrorMsg() throws UnsupportedOperationException;
+ OFTableFeaturesFailedErrorMsg.Builder buildTableFeaturesFailedErrorMsg() throws UnsupportedOperationException;
+
+ OFMessageReader<OFErrorMsg> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFExperimenterErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFExperimenterErrorMsg.java
new file mode 100644
index 0000000..124b01e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFExperimenterErrorMsg.java
@@ -0,0 +1,54 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFExperimenterErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ int getSubtype();
+ long getExperimenter();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFExperimenterErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ int getSubtype();
+ Builder setSubtype(int subtype);
+ long getExperimenter();
+ Builder setExperimenter(long experimenter);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFFlowModFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFFlowModFailedErrorMsg.java
new file mode 100644
index 0000000..91d0d43
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFFlowModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFFlowModFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFFlowModFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFFlowModFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFFlowModFailedCode getCode();
+ Builder setCode(OFFlowModFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFGroupModFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFGroupModFailedErrorMsg.java
new file mode 100644
index 0000000..93944c1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFGroupModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFGroupModFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFGroupModFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFGroupModFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFGroupModFailedCode getCode();
+ Builder setCode(OFGroupModFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFHelloFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFHelloFailedErrorMsg.java
new file mode 100644
index 0000000..7cf3afd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFHelloFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFHelloFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFHelloFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFHelloFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFHelloFailedCode getCode();
+ Builder setCode(OFHelloFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFMeterModFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFMeterModFailedErrorMsg.java
new file mode 100644
index 0000000..3d7a0c3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFMeterModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterModFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFMeterModFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFMeterModFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFMeterModFailedCode getCode();
+ Builder setCode(OFMeterModFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFPortModFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFPortModFailedErrorMsg.java
new file mode 100644
index 0000000..dfdfb79
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFPortModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFPortModFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFPortModFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFPortModFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFPortModFailedCode getCode();
+ Builder setCode(OFPortModFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFQueueOpFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFQueueOpFailedErrorMsg.java
new file mode 100644
index 0000000..6c460df
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFQueueOpFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueOpFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFQueueOpFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFQueueOpFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFQueueOpFailedCode getCode();
+ Builder setCode(OFQueueOpFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFRoleRequestFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFRoleRequestFailedErrorMsg.java
new file mode 100644
index 0000000..c24d291
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFRoleRequestFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFRoleRequestFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFRoleRequestFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFRoleRequestFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFRoleRequestFailedCode getCode();
+ Builder setCode(OFRoleRequestFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFSwitchConfigFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFSwitchConfigFailedErrorMsg.java
new file mode 100644
index 0000000..1c797ab
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFSwitchConfigFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFSwitchConfigFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFSwitchConfigFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFSwitchConfigFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFSwitchConfigFailedCode getCode();
+ Builder setCode(OFSwitchConfigFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableFeaturesFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableFeaturesFailedErrorMsg.java
new file mode 100644
index 0000000..93075dd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableFeaturesFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableFeaturesFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFTableFeaturesFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFTableFeaturesFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFTableFeaturesFailedCode getCode();
+ Builder setCode(OFTableFeaturesFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableModFailedErrorMsg.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableModFailedErrorMsg.java
new file mode 100644
index 0000000..9e7c822
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/errormsg/OFTableModFailedErrorMsg.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.errormsg;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFTableModFailedErrorMsg extends OFObject, OFErrorMsg {
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ OFErrorType getErrType();
+ OFTableModFailedCode getCode();
+ OFErrorCauseData getData();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFErrorMsg.Builder {
+ OFTableModFailedErrorMsg build();
+ OFVersion getVersion();
+ OFType getType();
+ long getXid();
+ Builder setXid(long xid);
+ OFErrorType getErrType();
+ OFTableModFailedCode getCode();
+ Builder setCode(OFTableModFailedCode code);
+ OFErrorCauseData getData();
+ Builder setData(OFErrorCauseData data);
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstruction.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstruction.java
new file mode 100644
index 0000000..85c4292
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstruction.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstruction extends OFObject {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFInstruction build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionApplyActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionApplyActions.java
new file mode 100644
index 0000000..5547beb
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionApplyActions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionApplyActions extends OFObject, OFInstruction {
+ OFInstructionType getType();
+ List<OFAction> getActions();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstruction.Builder {
+ OFInstructionApplyActions build();
+ OFInstructionType getType();
+ List<OFAction> getActions();
+ Builder setActions(List<OFAction> actions);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsn.java
new file mode 100644
index 0000000..24f9237
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsn extends OFObject, OFInstructionExperimenter {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionExperimenter.Builder {
+ OFInstructionBsn build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnArpOffload.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnArpOffload.java
new file mode 100644
index 0000000..add97cc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnArpOffload.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnArpOffload extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnArpOffload build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDeny.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDeny.java
new file mode 100644
index 0000000..e930943
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDeny.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDeny extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnDeny build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDhcpOffload.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDhcpOffload.java
new file mode 100644
index 0000000..eb8a422
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDhcpOffload.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDhcpOffload extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnDhcpOffload build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSplitHorizonCheck.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSplitHorizonCheck.java
new file mode 100644
index 0000000..bef2b49
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSplitHorizonCheck.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDisableSplitHorizonCheck extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnDisableSplitHorizonCheck build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSrcMacCheck.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSrcMacCheck.java
new file mode 100644
index 0000000..3e38615
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableSrcMacCheck.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDisableSrcMacCheck extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnDisableSrcMacCheck build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableVlanCounters.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableVlanCounters.java
new file mode 100644
index 0000000..9295e32
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnDisableVlanCounters.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnDisableVlanCounters extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnDisableVlanCounters build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPacketOfDeath.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPacketOfDeath.java
new file mode 100644
index 0000000..0f34780
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPacketOfDeath.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnPacketOfDeath extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnPacketOfDeath build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPermit.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPermit.java
new file mode 100644
index 0000000..a23fcf3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPermit.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnPermit extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnPermit build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPrioritizePdus.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPrioritizePdus.java
new file mode 100644
index 0000000..41c242e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnPrioritizePdus.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnPrioritizePdus extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnPrioritizePdus build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnRequireVlanXlate.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnRequireVlanXlate.java
new file mode 100644
index 0000000..b6d4f9b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionBsnRequireVlanXlate.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionBsnRequireVlanXlate extends OFObject, OFInstructionBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionBsn.Builder {
+ OFInstructionBsnRequireVlanXlate build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionClearActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionClearActions.java
new file mode 100644
index 0000000..8323776
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionClearActions.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionClearActions extends OFObject, OFInstruction {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstruction.Builder {
+ OFInstructionClearActions build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionExperimenter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionExperimenter.java
new file mode 100644
index 0000000..f6b4244
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionExperimenter.java
@@ -0,0 +1,42 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionExperimenter extends OFObject, OFInstruction {
+ OFInstructionType getType();
+ long getExperimenter();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstruction.Builder {
+ OFInstructionExperimenter build();
+ OFInstructionType getType();
+ long getExperimenter();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionGotoTable.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionGotoTable.java
new file mode 100644
index 0000000..9a80fb2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionGotoTable.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionGotoTable extends OFObject, OFInstruction {
+ OFInstructionType getType();
+ TableId getTableId();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstruction.Builder {
+ OFInstructionGotoTable build();
+ OFInstructionType getType();
+ TableId getTableId();
+ Builder setTableId(TableId tableId);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionMeter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionMeter.java
new file mode 100644
index 0000000..e965291
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionMeter.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionMeter extends OFObject, OFInstruction {
+ OFInstructionType getType();
+ long getMeterId();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstruction.Builder {
+ OFInstructionMeter build();
+ OFInstructionType getType();
+ long getMeterId();
+ Builder setMeterId(long meterId);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteActions.java
new file mode 100644
index 0000000..a6f62c4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteActions.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionWriteActions extends OFObject, OFInstruction {
+ OFInstructionType getType();
+ List<OFAction> getActions();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstruction.Builder {
+ OFInstructionWriteActions build();
+ OFInstructionType getType();
+ List<OFAction> getActions();
+ Builder setActions(List<OFAction> actions);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteMetadata.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteMetadata.java
new file mode 100644
index 0000000..4706932
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructionWriteMetadata.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionWriteMetadata extends OFObject, OFInstruction {
+ OFInstructionType getType();
+ U64 getMetadata();
+ U64 getMetadataMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstruction.Builder {
+ OFInstructionWriteMetadata build();
+ OFInstructionType getType();
+ U64 getMetadata();
+ Builder setMetadata(U64 metadata);
+ U64 getMetadataMask();
+ Builder setMetadataMask(U64 metadataMask);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructions.java
new file mode 100644
index 0000000..fe09c2c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instruction/OFInstructions.java
@@ -0,0 +1,55 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instruction;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.List;
+
+public interface OFInstructions {
+ // Subfactories
+
+ OFInstructionApplyActions.Builder buildApplyActions() throws UnsupportedOperationException;
+ OFInstructionApplyActions applyActions(List<OFAction> actions);
+ OFInstructionClearActions clearActions();
+ OFInstructionGotoTable.Builder buildGotoTable() throws UnsupportedOperationException;
+ OFInstructionGotoTable gotoTable(TableId tableId);
+ OFInstructionWriteActions.Builder buildWriteActions() throws UnsupportedOperationException;
+ OFInstructionWriteActions writeActions(List<OFAction> actions);
+ OFInstructionWriteMetadata.Builder buildWriteMetadata() throws UnsupportedOperationException;
+ OFInstructionWriteMetadata writeMetadata(U64 metadata, U64 metadataMask);
+ OFInstructionBsnArpOffload bsnArpOffload();
+ OFInstructionBsnDeny bsnDeny();
+ OFInstructionBsnDhcpOffload bsnDhcpOffload();
+ OFInstructionBsnDisableSplitHorizonCheck bsnDisableSplitHorizonCheck();
+ OFInstructionBsnDisableSrcMacCheck bsnDisableSrcMacCheck();
+ OFInstructionBsnDisableVlanCounters bsnDisableVlanCounters();
+ OFInstructionBsnPacketOfDeath bsnPacketOfDeath();
+ OFInstructionBsnPermit bsnPermit();
+ OFInstructionBsnPrioritizePdus bsnPrioritizePdus();
+ OFInstructionBsnRequireVlanXlate bsnRequireVlanXlate();
+ OFInstructionMeter.Builder buildMeter() throws UnsupportedOperationException;
+ OFInstructionMeter meter(long meterId);
+
+ OFMessageReader<OFInstruction> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionId.java
new file mode 100644
index 0000000..906401c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionId.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionId extends OFObject {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFInstructionId build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdApplyActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdApplyActions.java
new file mode 100644
index 0000000..8d37525
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdApplyActions.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdApplyActions extends OFObject, OFInstructionId {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionId.Builder {
+ OFInstructionIdApplyActions build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsn.java
new file mode 100644
index 0000000..7114df8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsn.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsn extends OFObject, OFInstructionIdExperimenter {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdExperimenter.Builder {
+ OFInstructionIdBsn build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnArpOffload.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnArpOffload.java
new file mode 100644
index 0000000..c669714
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnArpOffload.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnArpOffload extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnArpOffload build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDeny.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDeny.java
new file mode 100644
index 0000000..5f4f489
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDeny.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDeny extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnDeny build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDhcpOffload.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDhcpOffload.java
new file mode 100644
index 0000000..43e6fc8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDhcpOffload.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDhcpOffload extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnDhcpOffload build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSplitHorizonCheck.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSplitHorizonCheck.java
new file mode 100644
index 0000000..57fc457
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSplitHorizonCheck.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDisableSplitHorizonCheck extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnDisableSplitHorizonCheck build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSrcMacCheck.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSrcMacCheck.java
new file mode 100644
index 0000000..7b92fbc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableSrcMacCheck.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDisableSrcMacCheck extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnDisableSrcMacCheck build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableVlanCounters.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableVlanCounters.java
new file mode 100644
index 0000000..1e1366a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnDisableVlanCounters.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnDisableVlanCounters extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnDisableVlanCounters build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPacketOfDeath.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPacketOfDeath.java
new file mode 100644
index 0000000..a38265e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPacketOfDeath.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnPacketOfDeath extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnPacketOfDeath build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPermit.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPermit.java
new file mode 100644
index 0000000..a499743
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPermit.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnPermit extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnPermit build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPrioritizePdus.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPrioritizePdus.java
new file mode 100644
index 0000000..08f1e7e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnPrioritizePdus.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnPrioritizePdus extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnPrioritizePdus build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnRequireVlanXlate.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnRequireVlanXlate.java
new file mode 100644
index 0000000..f6b9dc9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdBsnRequireVlanXlate.java
@@ -0,0 +1,44 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdBsnRequireVlanXlate extends OFObject, OFInstructionIdBsn {
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionIdBsn.Builder {
+ OFInstructionIdBsnRequireVlanXlate build();
+ OFInstructionType getType();
+ long getExperimenter();
+ long getSubtype();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdClearActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdClearActions.java
new file mode 100644
index 0000000..8c7c1d7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdClearActions.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdClearActions extends OFObject, OFInstructionId {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionId.Builder {
+ OFInstructionIdClearActions build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdExperimenter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdExperimenter.java
new file mode 100644
index 0000000..d54f3f9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdExperimenter.java
@@ -0,0 +1,42 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdExperimenter extends OFObject, OFInstructionId {
+ OFInstructionType getType();
+ long getExperimenter();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionId.Builder {
+ OFInstructionIdExperimenter build();
+ OFInstructionType getType();
+ long getExperimenter();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdGotoTable.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdGotoTable.java
new file mode 100644
index 0000000..4e12baa
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdGotoTable.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdGotoTable extends OFObject, OFInstructionId {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionId.Builder {
+ OFInstructionIdGotoTable build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdMeter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdMeter.java
new file mode 100644
index 0000000..277ab6e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdMeter.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdMeter extends OFObject, OFInstructionId {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionId.Builder {
+ OFInstructionIdMeter build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteActions.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteActions.java
new file mode 100644
index 0000000..13b7dee
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteActions.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdWriteActions extends OFObject, OFInstructionId {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionId.Builder {
+ OFInstructionIdWriteActions build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteMetadata.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteMetadata.java
new file mode 100644
index 0000000..96ea693
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIdWriteMetadata.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFInstructionIdWriteMetadata extends OFObject, OFInstructionId {
+ OFInstructionType getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFInstructionId.Builder {
+ OFInstructionIdWriteMetadata build();
+ OFInstructionType getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIds.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIds.java
new file mode 100644
index 0000000..901b87a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/instructionid/OFInstructionIds.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.instructionid;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFInstructionIds {
+ // Subfactories
+
+ OFInstructionIdApplyActions applyActions();
+ OFInstructionIdBsnArpOffload bsnArpOffload();
+ OFInstructionIdBsnDeny bsnDeny();
+ OFInstructionIdBsnDhcpOffload bsnDhcpOffload();
+ OFInstructionIdBsnDisableSplitHorizonCheck bsnDisableSplitHorizonCheck();
+ OFInstructionIdBsnDisableSrcMacCheck bsnDisableSrcMacCheck();
+ OFInstructionIdBsnDisableVlanCounters bsnDisableVlanCounters();
+ OFInstructionIdBsnPacketOfDeath bsnPacketOfDeath();
+ OFInstructionIdBsnPermit bsnPermit();
+ OFInstructionIdBsnPrioritizePdus bsnPrioritizePdus();
+ OFInstructionIdBsnRequireVlanXlate bsnRequireVlanXlate();
+ OFInstructionIdClearActions clearActions();
+ OFInstructionIdGotoTable gotoTable();
+ OFInstructionIdMeter meter();
+ OFInstructionIdWriteActions writeActions();
+ OFInstructionIdWriteMetadata writeMetadata();
+
+ OFMessageReader<OFInstructionId> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBand.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBand.java
new file mode 100644
index 0000000..51edbfc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBand.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBand extends OFObject {
+ int getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFMeterBand build();
+ int getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDrop.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDrop.java
new file mode 100644
index 0000000..701ac61
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDrop.java
@@ -0,0 +1,46 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBandDrop extends OFObject, OFMeterBand {
+ int getType();
+ long getRate();
+ long getBurstSize();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMeterBand.Builder {
+ OFMeterBandDrop build();
+ int getType();
+ long getRate();
+ Builder setRate(long rate);
+ long getBurstSize();
+ Builder setBurstSize(long burstSize);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDscpRemark.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDscpRemark.java
new file mode 100644
index 0000000..8bb096d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandDscpRemark.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBandDscpRemark extends OFObject, OFMeterBand {
+ int getType();
+ long getRate();
+ long getBurstSize();
+ short getPrecLevel();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMeterBand.Builder {
+ OFMeterBandDscpRemark build();
+ int getType();
+ long getRate();
+ Builder setRate(long rate);
+ long getBurstSize();
+ Builder setBurstSize(long burstSize);
+ short getPrecLevel();
+ Builder setPrecLevel(short precLevel);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandExperimenter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandExperimenter.java
new file mode 100644
index 0000000..f621170
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBandExperimenter.java
@@ -0,0 +1,49 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFMeterBandExperimenter extends OFObject, OFMeterBand {
+ int getType();
+ long getRate();
+ long getBurstSize();
+ long getExperimenter();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFMeterBand.Builder {
+ OFMeterBandExperimenter build();
+ int getType();
+ long getRate();
+ Builder setRate(long rate);
+ long getBurstSize();
+ Builder setBurstSize(long burstSize);
+ long getExperimenter();
+ Builder setExperimenter(long experimenter);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBands.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBands.java
new file mode 100644
index 0000000..52e6181
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/meterband/OFMeterBands.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.meterband;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFMeterBands {
+ // Subfactories
+
+ OFMeterBandDrop.Builder buildDrop() throws UnsupportedOperationException;
+ OFMeterBandDrop drop(long rate, long burstSize);
+ OFMeterBandDscpRemark.Builder buildDscpRemark() throws UnsupportedOperationException;
+ OFMeterBandExperimenter.Builder buildExperimenter() throws UnsupportedOperationException;
+
+ OFMessageReader<OFMeterBand> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxm.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxm.java
new file mode 100644
index 0000000..d14aa42
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxm.java
@@ -0,0 +1,50 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxm<T extends OFValueType<T>> extends OFObject {
+ long getTypeLen();
+ T getValue();
+ T getMask();
+ MatchField<T> getMatchField();
+ boolean isMasked();
+ OFOxm<T> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder<T> createBuilder();
+ public interface Builder<T extends OFValueType<T>> {
+ OFOxm<T> build();
+ long getTypeLen();
+ T getValue();
+ T getMask();
+ MatchField<T> getMatchField();
+ boolean isMasked();
+ OFOxm<T> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOp.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOp.java
new file mode 100644
index 0000000..5526177
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOp.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpOp extends OFObject, OFOxm<ArpOpcode> {
+ long getTypeLen();
+ ArpOpcode getValue();
+ MatchField<ArpOpcode> getMatchField();
+ boolean isMasked();
+ OFOxm<ArpOpcode> getCanonical();
+ ArpOpcode getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ArpOpcode> {
+ OFOxmArpOp build();
+ long getTypeLen();
+ ArpOpcode getValue();
+ Builder setValue(ArpOpcode value);
+ MatchField<ArpOpcode> getMatchField();
+ boolean isMasked();
+ OFOxm<ArpOpcode> getCanonical();
+ ArpOpcode getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOpMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOpMasked.java
new file mode 100644
index 0000000..92e0b8a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpOpMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpOpMasked extends OFObject, OFOxm<ArpOpcode> {
+ long getTypeLen();
+ ArpOpcode getValue();
+ ArpOpcode getMask();
+ MatchField<ArpOpcode> getMatchField();
+ boolean isMasked();
+ OFOxm<ArpOpcode> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ArpOpcode> {
+ OFOxmArpOpMasked build();
+ long getTypeLen();
+ ArpOpcode getValue();
+ Builder setValue(ArpOpcode value);
+ ArpOpcode getMask();
+ Builder setMask(ArpOpcode mask);
+ MatchField<ArpOpcode> getMatchField();
+ boolean isMasked();
+ OFOxm<ArpOpcode> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSha.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSha.java
new file mode 100644
index 0000000..dcb5a02
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSha.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpSha extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmArpSha build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpShaMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpShaMasked.java
new file mode 100644
index 0000000..210fe89
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpShaMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpShaMasked extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MacAddress getMask();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmArpShaMasked build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MacAddress getMask();
+ Builder setMask(MacAddress mask);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpa.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpa.java
new file mode 100644
index 0000000..0b2cab1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpa.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpSpa extends OFObject, OFOxm<IPv4Address> {
+ long getTypeLen();
+ IPv4Address getValue();
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ IPv4Address getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv4Address> {
+ OFOxmArpSpa build();
+ long getTypeLen();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ IPv4Address getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpaMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpaMasked.java
new file mode 100644
index 0000000..023fcb2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpSpaMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpSpaMasked extends OFObject, OFOxm<IPv4Address> {
+ long getTypeLen();
+ IPv4Address getValue();
+ IPv4Address getMask();
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv4Address> {
+ OFOxmArpSpaMasked build();
+ long getTypeLen();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ IPv4Address getMask();
+ Builder setMask(IPv4Address mask);
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTha.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTha.java
new file mode 100644
index 0000000..c91c1bc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTha.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpTha extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmArpTha build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpThaMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpThaMasked.java
new file mode 100644
index 0000000..e24bd33
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpThaMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpThaMasked extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MacAddress getMask();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmArpThaMasked build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MacAddress getMask();
+ Builder setMask(MacAddress mask);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpa.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpa.java
new file mode 100644
index 0000000..3ea1500
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpa.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpTpa extends OFObject, OFOxm<IPv4Address> {
+ long getTypeLen();
+ IPv4Address getValue();
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ IPv4Address getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv4Address> {
+ OFOxmArpTpa build();
+ long getTypeLen();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ IPv4Address getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpaMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpaMasked.java
new file mode 100644
index 0000000..81501a7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmArpTpaMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmArpTpaMasked extends OFObject, OFOxm<IPv4Address> {
+ long getTypeLen();
+ IPv4Address getValue();
+ IPv4Address getMask();
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv4Address> {
+ OFOxmArpTpaMasked build();
+ long getTypeLen();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ IPv4Address getMask();
+ Builder setMask(IPv4Address mask);
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupId.java
new file mode 100644
index 0000000..b23df57
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnEgrPortGroupId extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnEgrPortGroupId build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupIdMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupIdMasked.java
new file mode 100644
index 0000000..055fd7a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnEgrPortGroupIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnEgrPortGroupIdMasked extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ ClassId getMask();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnEgrPortGroupIdMasked build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ ClassId getMask();
+ Builder setMask(ClassId mask);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowed.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowed.java
new file mode 100644
index 0000000..b56e34c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowed.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnGlobalVrfAllowed extends OFObject, OFOxm<OFBooleanValue> {
+ long getTypeLen();
+ OFBooleanValue getValue();
+ MatchField<OFBooleanValue> getMatchField();
+ boolean isMasked();
+ OFOxm<OFBooleanValue> getCanonical();
+ OFBooleanValue getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFBooleanValue> {
+ OFOxmBsnGlobalVrfAllowed build();
+ long getTypeLen();
+ OFBooleanValue getValue();
+ Builder setValue(OFBooleanValue value);
+ MatchField<OFBooleanValue> getMatchField();
+ boolean isMasked();
+ OFOxm<OFBooleanValue> getCanonical();
+ OFBooleanValue getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowedMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowedMasked.java
new file mode 100644
index 0000000..7b5c7d7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnGlobalVrfAllowedMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnGlobalVrfAllowedMasked extends OFObject, OFOxm<OFBooleanValue> {
+ long getTypeLen();
+ OFBooleanValue getValue();
+ OFBooleanValue getMask();
+ MatchField<OFBooleanValue> getMatchField();
+ boolean isMasked();
+ OFOxm<OFBooleanValue> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFBooleanValue> {
+ OFOxmBsnGlobalVrfAllowedMasked build();
+ long getTypeLen();
+ OFBooleanValue getValue();
+ Builder setValue(OFBooleanValue value);
+ OFBooleanValue getMask();
+ Builder setMask(OFBooleanValue mask);
+ MatchField<OFBooleanValue> getMatchField();
+ boolean isMasked();
+ OFOxm<OFBooleanValue> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128.java
new file mode 100644
index 0000000..42a86ff
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnInPorts128 extends OFObject, OFOxm<OFBitMask128> {
+ long getTypeLen();
+ OFBitMask128 getValue();
+ MatchField<OFBitMask128> getMatchField();
+ boolean isMasked();
+ OFOxm<OFBitMask128> getCanonical();
+ OFBitMask128 getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFBitMask128> {
+ OFOxmBsnInPorts128 build();
+ long getTypeLen();
+ OFBitMask128 getValue();
+ Builder setValue(OFBitMask128 value);
+ MatchField<OFBitMask128> getMatchField();
+ boolean isMasked();
+ OFOxm<OFBitMask128> getCanonical();
+ OFBitMask128 getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128Masked.java
new file mode 100644
index 0000000..9826f7a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnInPorts128Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnInPorts128Masked extends OFObject, OFOxm<OFBitMask128> {
+ long getTypeLen();
+ OFBitMask128 getValue();
+ OFBitMask128 getMask();
+ MatchField<OFBitMask128> getMatchField();
+ boolean isMasked();
+ OFOxm<OFBitMask128> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFBitMask128> {
+ OFOxmBsnInPorts128Masked build();
+ long getTypeLen();
+ OFBitMask128 getValue();
+ Builder setValue(OFBitMask128 value);
+ OFBitMask128 getMask();
+ Builder setMask(OFBitMask128 mask);
+ MatchField<OFBitMask128> getMatchField();
+ boolean isMasked();
+ OFOxm<OFBitMask128> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassId.java
new file mode 100644
index 0000000..b587941
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3DstClassId extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnL3DstClassId build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassIdMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassIdMasked.java
new file mode 100644
index 0000000..b3619d0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3DstClassIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3DstClassIdMasked extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ ClassId getMask();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnL3DstClassIdMasked build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ ClassId getMask();
+ Builder setMask(ClassId mask);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassId.java
new file mode 100644
index 0000000..2ab08da
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3InterfaceClassId extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnL3InterfaceClassId build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassIdMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassIdMasked.java
new file mode 100644
index 0000000..5dbc3c2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3InterfaceClassIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3InterfaceClassIdMasked extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ ClassId getMask();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnL3InterfaceClassIdMasked build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ ClassId getMask();
+ Builder setMask(ClassId mask);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassId.java
new file mode 100644
index 0000000..0202270
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3SrcClassId extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnL3SrcClassId build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassIdMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassIdMasked.java
new file mode 100644
index 0000000..06adca0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnL3SrcClassIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnL3SrcClassIdMasked extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ ClassId getMask();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnL3SrcClassIdMasked build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ ClassId getMask();
+ Builder setMask(ClassId mask);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagId.java
new file mode 100644
index 0000000..c8c73f6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnLagId extends OFObject, OFOxm<LagId> {
+ long getTypeLen();
+ LagId getValue();
+ MatchField<LagId> getMatchField();
+ boolean isMasked();
+ OFOxm<LagId> getCanonical();
+ LagId getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<LagId> {
+ OFOxmBsnLagId build();
+ long getTypeLen();
+ LagId getValue();
+ Builder setValue(LagId value);
+ MatchField<LagId> getMatchField();
+ boolean isMasked();
+ OFOxm<LagId> getCanonical();
+ LagId getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagIdMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagIdMasked.java
new file mode 100644
index 0000000..6b117dd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnLagIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnLagIdMasked extends OFObject, OFOxm<LagId> {
+ long getTypeLen();
+ LagId getValue();
+ LagId getMask();
+ MatchField<LagId> getMatchField();
+ boolean isMasked();
+ OFOxm<LagId> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<LagId> {
+ OFOxmBsnLagIdMasked build();
+ long getTypeLen();
+ LagId getValue();
+ Builder setValue(LagId value);
+ LagId getMask();
+ Builder setMask(LagId mask);
+ MatchField<LagId> getMatchField();
+ boolean isMasked();
+ OFOxm<LagId> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlags.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlags.java
new file mode 100644
index 0000000..c1a31d1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlags.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnTcpFlags extends OFObject, OFOxm<U16> {
+ long getTypeLen();
+ U16 getValue();
+ MatchField<U16> getMatchField();
+ boolean isMasked();
+ OFOxm<U16> getCanonical();
+ U16 getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U16> {
+ OFOxmBsnTcpFlags build();
+ long getTypeLen();
+ U16 getValue();
+ Builder setValue(U16 value);
+ MatchField<U16> getMatchField();
+ boolean isMasked();
+ OFOxm<U16> getCanonical();
+ U16 getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlagsMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlagsMasked.java
new file mode 100644
index 0000000..694c8b3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnTcpFlagsMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnTcpFlagsMasked extends OFObject, OFOxm<U16> {
+ long getTypeLen();
+ U16 getValue();
+ U16 getMask();
+ MatchField<U16> getMatchField();
+ boolean isMasked();
+ OFOxm<U16> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U16> {
+ OFOxmBsnTcpFlagsMasked build();
+ long getTypeLen();
+ U16 getValue();
+ Builder setValue(U16 value);
+ U16 getMask();
+ Builder setMask(U16 mask);
+ MatchField<U16> getMatchField();
+ boolean isMasked();
+ OFOxm<U16> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0.java
new file mode 100644
index 0000000..7143e5a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf0 extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf0 build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0Masked.java
new file mode 100644
index 0000000..ee1c5ff
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf0Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf0Masked extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ UDF getMask();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf0Masked build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ UDF getMask();
+ Builder setMask(UDF mask);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1.java
new file mode 100644
index 0000000..e45f0b3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf1 extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf1 build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1Masked.java
new file mode 100644
index 0000000..e28f8e2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf1Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf1Masked extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ UDF getMask();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf1Masked build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ UDF getMask();
+ Builder setMask(UDF mask);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2.java
new file mode 100644
index 0000000..dea445d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf2 extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf2 build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2Masked.java
new file mode 100644
index 0000000..549d930
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf2Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf2Masked extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ UDF getMask();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf2Masked build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ UDF getMask();
+ Builder setMask(UDF mask);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3.java
new file mode 100644
index 0000000..094b197
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf3 extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf3 build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3Masked.java
new file mode 100644
index 0000000..0a5a77f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf3Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf3Masked extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ UDF getMask();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf3Masked build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ UDF getMask();
+ Builder setMask(UDF mask);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4.java
new file mode 100644
index 0000000..d7ea548
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf4 extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf4 build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4Masked.java
new file mode 100644
index 0000000..735d3e8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf4Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf4Masked extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ UDF getMask();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf4Masked build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ UDF getMask();
+ Builder setMask(UDF mask);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5.java
new file mode 100644
index 0000000..52a0eb0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf5 extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf5 build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5Masked.java
new file mode 100644
index 0000000..138ac18
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf5Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf5Masked extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ UDF getMask();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf5Masked build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ UDF getMask();
+ Builder setMask(UDF mask);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6.java
new file mode 100644
index 0000000..6d84593
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf6 extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf6 build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6Masked.java
new file mode 100644
index 0000000..fd03177
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf6Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf6Masked extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ UDF getMask();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf6Masked build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ UDF getMask();
+ Builder setMask(UDF mask);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7.java
new file mode 100644
index 0000000..430ec39
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf7 extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf7 build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ UDF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7Masked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7Masked.java
new file mode 100644
index 0000000..6859ec3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnUdf7Masked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnUdf7Masked extends OFObject, OFOxm<UDF> {
+ long getTypeLen();
+ UDF getValue();
+ UDF getMask();
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<UDF> {
+ OFOxmBsnUdf7Masked build();
+ long getTypeLen();
+ UDF getValue();
+ Builder setValue(UDF value);
+ UDF getMask();
+ Builder setMask(UDF mask);
+ MatchField<UDF> getMatchField();
+ boolean isMasked();
+ OFOxm<UDF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupId.java
new file mode 100644
index 0000000..84a94a3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnVlanXlatePortGroupId extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnVlanXlatePortGroupId build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ ClassId getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupIdMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupIdMasked.java
new file mode 100644
index 0000000..992bd48
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVlanXlatePortGroupIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnVlanXlatePortGroupIdMasked extends OFObject, OFOxm<ClassId> {
+ long getTypeLen();
+ ClassId getValue();
+ ClassId getMask();
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ClassId> {
+ OFOxmBsnVlanXlatePortGroupIdMasked build();
+ long getTypeLen();
+ ClassId getValue();
+ Builder setValue(ClassId value);
+ ClassId getMask();
+ Builder setMask(ClassId mask);
+ MatchField<ClassId> getMatchField();
+ boolean isMasked();
+ OFOxm<ClassId> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrf.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrf.java
new file mode 100644
index 0000000..b27b0f2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrf.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnVrf extends OFObject, OFOxm<VRF> {
+ long getTypeLen();
+ VRF getValue();
+ MatchField<VRF> getMatchField();
+ boolean isMasked();
+ OFOxm<VRF> getCanonical();
+ VRF getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<VRF> {
+ OFOxmBsnVrf build();
+ long getTypeLen();
+ VRF getValue();
+ Builder setValue(VRF value);
+ MatchField<VRF> getMatchField();
+ boolean isMasked();
+ OFOxm<VRF> getCanonical();
+ VRF getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrfMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrfMasked.java
new file mode 100644
index 0000000..f235551
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmBsnVrfMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmBsnVrfMasked extends OFObject, OFOxm<VRF> {
+ long getTypeLen();
+ VRF getValue();
+ VRF getMask();
+ MatchField<VRF> getMatchField();
+ boolean isMasked();
+ OFOxm<VRF> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<VRF> {
+ OFOxmBsnVrfMasked build();
+ long getTypeLen();
+ VRF getValue();
+ Builder setValue(VRF value);
+ VRF getMask();
+ Builder setMask(VRF mask);
+ MatchField<VRF> getMatchField();
+ boolean isMasked();
+ OFOxm<VRF> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDst.java
new file mode 100644
index 0000000..9c70c2e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthDst extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmEthDst build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDstMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDstMasked.java
new file mode 100644
index 0000000..0987c6b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthDstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthDstMasked extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MacAddress getMask();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmEthDstMasked build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MacAddress getMask();
+ Builder setMask(MacAddress mask);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrc.java
new file mode 100644
index 0000000..7b0920a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthSrc extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmEthSrc build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrcMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrcMasked.java
new file mode 100644
index 0000000..e869585
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthSrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthSrcMasked extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MacAddress getMask();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmEthSrcMasked build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MacAddress getMask();
+ Builder setMask(MacAddress mask);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthType.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthType.java
new file mode 100644
index 0000000..6d59534
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthType.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthType extends OFObject, OFOxm<EthType> {
+ long getTypeLen();
+ EthType getValue();
+ MatchField<EthType> getMatchField();
+ boolean isMasked();
+ OFOxm<EthType> getCanonical();
+ EthType getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<EthType> {
+ OFOxmEthType build();
+ long getTypeLen();
+ EthType getValue();
+ Builder setValue(EthType value);
+ MatchField<EthType> getMatchField();
+ boolean isMasked();
+ OFOxm<EthType> getCanonical();
+ EthType getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthTypeMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthTypeMasked.java
new file mode 100644
index 0000000..9ae2f1f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmEthTypeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmEthTypeMasked extends OFObject, OFOxm<EthType> {
+ long getTypeLen();
+ EthType getValue();
+ EthType getMask();
+ MatchField<EthType> getMatchField();
+ boolean isMasked();
+ OFOxm<EthType> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<EthType> {
+ OFOxmEthTypeMasked build();
+ long getTypeLen();
+ EthType getValue();
+ Builder setValue(EthType value);
+ EthType getMask();
+ Builder setMask(EthType mask);
+ MatchField<EthType> getMatchField();
+ boolean isMasked();
+ OFOxm<EthType> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Code.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Code.java
new file mode 100644
index 0000000..db219a7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Code.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv4Code extends OFObject, OFOxm<ICMPv4Code> {
+ long getTypeLen();
+ ICMPv4Code getValue();
+ MatchField<ICMPv4Code> getMatchField();
+ boolean isMasked();
+ OFOxm<ICMPv4Code> getCanonical();
+ ICMPv4Code getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ICMPv4Code> {
+ OFOxmIcmpv4Code build();
+ long getTypeLen();
+ ICMPv4Code getValue();
+ Builder setValue(ICMPv4Code value);
+ MatchField<ICMPv4Code> getMatchField();
+ boolean isMasked();
+ OFOxm<ICMPv4Code> getCanonical();
+ ICMPv4Code getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4CodeMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4CodeMasked.java
new file mode 100644
index 0000000..2462b45
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4CodeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv4CodeMasked extends OFObject, OFOxm<ICMPv4Code> {
+ long getTypeLen();
+ ICMPv4Code getValue();
+ ICMPv4Code getMask();
+ MatchField<ICMPv4Code> getMatchField();
+ boolean isMasked();
+ OFOxm<ICMPv4Code> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ICMPv4Code> {
+ OFOxmIcmpv4CodeMasked build();
+ long getTypeLen();
+ ICMPv4Code getValue();
+ Builder setValue(ICMPv4Code value);
+ ICMPv4Code getMask();
+ Builder setMask(ICMPv4Code mask);
+ MatchField<ICMPv4Code> getMatchField();
+ boolean isMasked();
+ OFOxm<ICMPv4Code> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Type.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Type.java
new file mode 100644
index 0000000..ede641b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4Type.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv4Type extends OFObject, OFOxm<ICMPv4Type> {
+ long getTypeLen();
+ ICMPv4Type getValue();
+ MatchField<ICMPv4Type> getMatchField();
+ boolean isMasked();
+ OFOxm<ICMPv4Type> getCanonical();
+ ICMPv4Type getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ICMPv4Type> {
+ OFOxmIcmpv4Type build();
+ long getTypeLen();
+ ICMPv4Type getValue();
+ Builder setValue(ICMPv4Type value);
+ MatchField<ICMPv4Type> getMatchField();
+ boolean isMasked();
+ OFOxm<ICMPv4Type> getCanonical();
+ ICMPv4Type getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4TypeMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4TypeMasked.java
new file mode 100644
index 0000000..7c8f011
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv4TypeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv4TypeMasked extends OFObject, OFOxm<ICMPv4Type> {
+ long getTypeLen();
+ ICMPv4Type getValue();
+ ICMPv4Type getMask();
+ MatchField<ICMPv4Type> getMatchField();
+ boolean isMasked();
+ OFOxm<ICMPv4Type> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<ICMPv4Type> {
+ OFOxmIcmpv4TypeMasked build();
+ long getTypeLen();
+ ICMPv4Type getValue();
+ Builder setValue(ICMPv4Type value);
+ ICMPv4Type getMask();
+ Builder setMask(ICMPv4Type mask);
+ MatchField<ICMPv4Type> getMatchField();
+ boolean isMasked();
+ OFOxm<ICMPv4Type> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Code.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Code.java
new file mode 100644
index 0000000..7ff6ac8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Code.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv6Code extends OFObject, OFOxm<U8> {
+ long getTypeLen();
+ U8 getValue();
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ U8 getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U8> {
+ OFOxmIcmpv6Code build();
+ long getTypeLen();
+ U8 getValue();
+ Builder setValue(U8 value);
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ U8 getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6CodeMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6CodeMasked.java
new file mode 100644
index 0000000..2cf38b3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6CodeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv6CodeMasked extends OFObject, OFOxm<U8> {
+ long getTypeLen();
+ U8 getValue();
+ U8 getMask();
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U8> {
+ OFOxmIcmpv6CodeMasked build();
+ long getTypeLen();
+ U8 getValue();
+ Builder setValue(U8 value);
+ U8 getMask();
+ Builder setMask(U8 mask);
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Type.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Type.java
new file mode 100644
index 0000000..de54d1d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6Type.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv6Type extends OFObject, OFOxm<U8> {
+ long getTypeLen();
+ U8 getValue();
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ U8 getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U8> {
+ OFOxmIcmpv6Type build();
+ long getTypeLen();
+ U8 getValue();
+ Builder setValue(U8 value);
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ U8 getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6TypeMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6TypeMasked.java
new file mode 100644
index 0000000..bb61bd5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIcmpv6TypeMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIcmpv6TypeMasked extends OFObject, OFOxm<U8> {
+ long getTypeLen();
+ U8 getValue();
+ U8 getMask();
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U8> {
+ OFOxmIcmpv6TypeMasked build();
+ long getTypeLen();
+ U8 getValue();
+ Builder setValue(U8 value);
+ U8 getMask();
+ Builder setMask(U8 mask);
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPort.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPort.java
new file mode 100644
index 0000000..85b2700
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPort.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmInPhyPort extends OFObject, OFOxm<OFPort> {
+ long getTypeLen();
+ OFPort getValue();
+ MatchField<OFPort> getMatchField();
+ boolean isMasked();
+ OFOxm<OFPort> getCanonical();
+ OFPort getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFPort> {
+ OFOxmInPhyPort build();
+ long getTypeLen();
+ OFPort getValue();
+ Builder setValue(OFPort value);
+ MatchField<OFPort> getMatchField();
+ boolean isMasked();
+ OFOxm<OFPort> getCanonical();
+ OFPort getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPortMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPortMasked.java
new file mode 100644
index 0000000..ae20318
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPhyPortMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmInPhyPortMasked extends OFObject, OFOxm<OFPort> {
+ long getTypeLen();
+ OFPort getValue();
+ OFPort getMask();
+ MatchField<OFPort> getMatchField();
+ boolean isMasked();
+ OFOxm<OFPort> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFPort> {
+ OFOxmInPhyPortMasked build();
+ long getTypeLen();
+ OFPort getValue();
+ Builder setValue(OFPort value);
+ OFPort getMask();
+ Builder setMask(OFPort mask);
+ MatchField<OFPort> getMatchField();
+ boolean isMasked();
+ OFOxm<OFPort> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPort.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPort.java
new file mode 100644
index 0000000..11ac28b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPort.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmInPort extends OFObject, OFOxm<OFPort> {
+ long getTypeLen();
+ OFPort getValue();
+ MatchField<OFPort> getMatchField();
+ boolean isMasked();
+ OFOxm<OFPort> getCanonical();
+ OFPort getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFPort> {
+ OFOxmInPort build();
+ long getTypeLen();
+ OFPort getValue();
+ Builder setValue(OFPort value);
+ MatchField<OFPort> getMatchField();
+ boolean isMasked();
+ OFOxm<OFPort> getCanonical();
+ OFPort getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPortMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPortMasked.java
new file mode 100644
index 0000000..3e8970c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmInPortMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmInPortMasked extends OFObject, OFOxm<OFPort> {
+ long getTypeLen();
+ OFPort getValue();
+ OFPort getMask();
+ MatchField<OFPort> getMatchField();
+ boolean isMasked();
+ OFOxm<OFPort> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFPort> {
+ OFOxmInPortMasked build();
+ long getTypeLen();
+ OFPort getValue();
+ Builder setValue(OFPort value);
+ OFPort getMask();
+ Builder setMask(OFPort mask);
+ MatchField<OFPort> getMatchField();
+ boolean isMasked();
+ OFOxm<OFPort> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscp.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscp.java
new file mode 100644
index 0000000..0d829db
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscp.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpDscp extends OFObject, OFOxm<IpDscp> {
+ long getTypeLen();
+ IpDscp getValue();
+ MatchField<IpDscp> getMatchField();
+ boolean isMasked();
+ OFOxm<IpDscp> getCanonical();
+ IpDscp getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IpDscp> {
+ OFOxmIpDscp build();
+ long getTypeLen();
+ IpDscp getValue();
+ Builder setValue(IpDscp value);
+ MatchField<IpDscp> getMatchField();
+ boolean isMasked();
+ OFOxm<IpDscp> getCanonical();
+ IpDscp getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscpMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscpMasked.java
new file mode 100644
index 0000000..a837b72
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpDscpMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpDscpMasked extends OFObject, OFOxm<IpDscp> {
+ long getTypeLen();
+ IpDscp getValue();
+ IpDscp getMask();
+ MatchField<IpDscp> getMatchField();
+ boolean isMasked();
+ OFOxm<IpDscp> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IpDscp> {
+ OFOxmIpDscpMasked build();
+ long getTypeLen();
+ IpDscp getValue();
+ Builder setValue(IpDscp value);
+ IpDscp getMask();
+ Builder setMask(IpDscp mask);
+ MatchField<IpDscp> getMatchField();
+ boolean isMasked();
+ OFOxm<IpDscp> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcn.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcn.java
new file mode 100644
index 0000000..a70813f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcn.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpEcn extends OFObject, OFOxm<IpEcn> {
+ long getTypeLen();
+ IpEcn getValue();
+ MatchField<IpEcn> getMatchField();
+ boolean isMasked();
+ OFOxm<IpEcn> getCanonical();
+ IpEcn getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IpEcn> {
+ OFOxmIpEcn build();
+ long getTypeLen();
+ IpEcn getValue();
+ Builder setValue(IpEcn value);
+ MatchField<IpEcn> getMatchField();
+ boolean isMasked();
+ OFOxm<IpEcn> getCanonical();
+ IpEcn getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcnMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcnMasked.java
new file mode 100644
index 0000000..4a3a1ff
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpEcnMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpEcnMasked extends OFObject, OFOxm<IpEcn> {
+ long getTypeLen();
+ IpEcn getValue();
+ IpEcn getMask();
+ MatchField<IpEcn> getMatchField();
+ boolean isMasked();
+ OFOxm<IpEcn> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IpEcn> {
+ OFOxmIpEcnMasked build();
+ long getTypeLen();
+ IpEcn getValue();
+ Builder setValue(IpEcn value);
+ IpEcn getMask();
+ Builder setMask(IpEcn mask);
+ MatchField<IpEcn> getMatchField();
+ boolean isMasked();
+ OFOxm<IpEcn> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProto.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProto.java
new file mode 100644
index 0000000..dc284d6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProto.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpProto extends OFObject, OFOxm<IpProtocol> {
+ long getTypeLen();
+ IpProtocol getValue();
+ MatchField<IpProtocol> getMatchField();
+ boolean isMasked();
+ OFOxm<IpProtocol> getCanonical();
+ IpProtocol getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IpProtocol> {
+ OFOxmIpProto build();
+ long getTypeLen();
+ IpProtocol getValue();
+ Builder setValue(IpProtocol value);
+ MatchField<IpProtocol> getMatchField();
+ boolean isMasked();
+ OFOxm<IpProtocol> getCanonical();
+ IpProtocol getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProtoMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProtoMasked.java
new file mode 100644
index 0000000..906f742
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpProtoMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpProtoMasked extends OFObject, OFOxm<IpProtocol> {
+ long getTypeLen();
+ IpProtocol getValue();
+ IpProtocol getMask();
+ MatchField<IpProtocol> getMatchField();
+ boolean isMasked();
+ OFOxm<IpProtocol> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IpProtocol> {
+ OFOxmIpProtoMasked build();
+ long getTypeLen();
+ IpProtocol getValue();
+ Builder setValue(IpProtocol value);
+ IpProtocol getMask();
+ Builder setMask(IpProtocol mask);
+ MatchField<IpProtocol> getMatchField();
+ boolean isMasked();
+ OFOxm<IpProtocol> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Dst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Dst.java
new file mode 100644
index 0000000..6e97025
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Dst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv4Dst extends OFObject, OFOxm<IPv4Address> {
+ long getTypeLen();
+ IPv4Address getValue();
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ IPv4Address getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv4Address> {
+ OFOxmIpv4Dst build();
+ long getTypeLen();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ IPv4Address getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4DstMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4DstMasked.java
new file mode 100644
index 0000000..8a008c8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4DstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv4DstMasked extends OFObject, OFOxm<IPv4Address> {
+ long getTypeLen();
+ IPv4Address getValue();
+ IPv4Address getMask();
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv4Address> {
+ OFOxmIpv4DstMasked build();
+ long getTypeLen();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ IPv4Address getMask();
+ Builder setMask(IPv4Address mask);
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Src.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Src.java
new file mode 100644
index 0000000..1cfbc04
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4Src.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv4Src extends OFObject, OFOxm<IPv4Address> {
+ long getTypeLen();
+ IPv4Address getValue();
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ IPv4Address getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv4Address> {
+ OFOxmIpv4Src build();
+ long getTypeLen();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ IPv4Address getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4SrcMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4SrcMasked.java
new file mode 100644
index 0000000..9fcd714
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv4SrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv4SrcMasked extends OFObject, OFOxm<IPv4Address> {
+ long getTypeLen();
+ IPv4Address getValue();
+ IPv4Address getMask();
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv4Address> {
+ OFOxmIpv4SrcMasked build();
+ long getTypeLen();
+ IPv4Address getValue();
+ Builder setValue(IPv4Address value);
+ IPv4Address getMask();
+ Builder setMask(IPv4Address mask);
+ MatchField<IPv4Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv4Address> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Dst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Dst.java
new file mode 100644
index 0000000..bb92e3b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Dst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6Dst extends OFObject, OFOxm<IPv6Address> {
+ long getTypeLen();
+ IPv6Address getValue();
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ IPv6Address getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv6Address> {
+ OFOxmIpv6Dst build();
+ long getTypeLen();
+ IPv6Address getValue();
+ Builder setValue(IPv6Address value);
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ IPv6Address getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6DstMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6DstMasked.java
new file mode 100644
index 0000000..ca98060
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6DstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6DstMasked extends OFObject, OFOxm<IPv6Address> {
+ long getTypeLen();
+ IPv6Address getValue();
+ IPv6Address getMask();
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv6Address> {
+ OFOxmIpv6DstMasked build();
+ long getTypeLen();
+ IPv6Address getValue();
+ Builder setValue(IPv6Address value);
+ IPv6Address getMask();
+ Builder setMask(IPv6Address mask);
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Flabel.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Flabel.java
new file mode 100644
index 0000000..fa28ec7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Flabel.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6Flabel extends OFObject, OFOxm<IPv6FlowLabel> {
+ long getTypeLen();
+ IPv6FlowLabel getValue();
+ MatchField<IPv6FlowLabel> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6FlowLabel> getCanonical();
+ IPv6FlowLabel getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv6FlowLabel> {
+ OFOxmIpv6Flabel build();
+ long getTypeLen();
+ IPv6FlowLabel getValue();
+ Builder setValue(IPv6FlowLabel value);
+ MatchField<IPv6FlowLabel> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6FlowLabel> getCanonical();
+ IPv6FlowLabel getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6FlabelMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6FlabelMasked.java
new file mode 100644
index 0000000..7e19baa
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6FlabelMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6FlabelMasked extends OFObject, OFOxm<IPv6FlowLabel> {
+ long getTypeLen();
+ IPv6FlowLabel getValue();
+ IPv6FlowLabel getMask();
+ MatchField<IPv6FlowLabel> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6FlowLabel> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv6FlowLabel> {
+ OFOxmIpv6FlabelMasked build();
+ long getTypeLen();
+ IPv6FlowLabel getValue();
+ Builder setValue(IPv6FlowLabel value);
+ IPv6FlowLabel getMask();
+ Builder setMask(IPv6FlowLabel mask);
+ MatchField<IPv6FlowLabel> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6FlowLabel> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSll.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSll.java
new file mode 100644
index 0000000..5365c2f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSll.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdSll extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmIpv6NdSll build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSllMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSllMasked.java
new file mode 100644
index 0000000..baf32e1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdSllMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdSllMasked extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MacAddress getMask();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmIpv6NdSllMasked build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MacAddress getMask();
+ Builder setMask(MacAddress mask);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTarget.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTarget.java
new file mode 100644
index 0000000..421f148
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTarget.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdTarget extends OFObject, OFOxm<IPv6Address> {
+ long getTypeLen();
+ IPv6Address getValue();
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ IPv6Address getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv6Address> {
+ OFOxmIpv6NdTarget build();
+ long getTypeLen();
+ IPv6Address getValue();
+ Builder setValue(IPv6Address value);
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ IPv6Address getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTargetMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTargetMasked.java
new file mode 100644
index 0000000..807affe
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTargetMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdTargetMasked extends OFObject, OFOxm<IPv6Address> {
+ long getTypeLen();
+ IPv6Address getValue();
+ IPv6Address getMask();
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv6Address> {
+ OFOxmIpv6NdTargetMasked build();
+ long getTypeLen();
+ IPv6Address getValue();
+ Builder setValue(IPv6Address value);
+ IPv6Address getMask();
+ Builder setMask(IPv6Address mask);
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTll.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTll.java
new file mode 100644
index 0000000..ca9f1ad
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTll.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdTll extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmIpv6NdTll build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ MacAddress getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTllMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTllMasked.java
new file mode 100644
index 0000000..1e1a6e6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6NdTllMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6NdTllMasked extends OFObject, OFOxm<MacAddress> {
+ long getTypeLen();
+ MacAddress getValue();
+ MacAddress getMask();
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<MacAddress> {
+ OFOxmIpv6NdTllMasked build();
+ long getTypeLen();
+ MacAddress getValue();
+ Builder setValue(MacAddress value);
+ MacAddress getMask();
+ Builder setMask(MacAddress mask);
+ MatchField<MacAddress> getMatchField();
+ boolean isMasked();
+ OFOxm<MacAddress> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Src.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Src.java
new file mode 100644
index 0000000..528c16c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6Src.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6Src extends OFObject, OFOxm<IPv6Address> {
+ long getTypeLen();
+ IPv6Address getValue();
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ IPv6Address getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv6Address> {
+ OFOxmIpv6Src build();
+ long getTypeLen();
+ IPv6Address getValue();
+ Builder setValue(IPv6Address value);
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ IPv6Address getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6SrcMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6SrcMasked.java
new file mode 100644
index 0000000..1fc4e20
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmIpv6SrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmIpv6SrcMasked extends OFObject, OFOxm<IPv6Address> {
+ long getTypeLen();
+ IPv6Address getValue();
+ IPv6Address getMask();
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<IPv6Address> {
+ OFOxmIpv6SrcMasked build();
+ long getTypeLen();
+ IPv6Address getValue();
+ Builder setValue(IPv6Address value);
+ IPv6Address getMask();
+ Builder setMask(IPv6Address mask);
+ MatchField<IPv6Address> getMatchField();
+ boolean isMasked();
+ OFOxm<IPv6Address> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadata.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadata.java
new file mode 100644
index 0000000..92964e6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadata.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMetadata extends OFObject, OFOxm<OFMetadata> {
+ long getTypeLen();
+ OFMetadata getValue();
+ MatchField<OFMetadata> getMatchField();
+ boolean isMasked();
+ OFOxm<OFMetadata> getCanonical();
+ OFMetadata getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFMetadata> {
+ OFOxmMetadata build();
+ long getTypeLen();
+ OFMetadata getValue();
+ Builder setValue(OFMetadata value);
+ MatchField<OFMetadata> getMatchField();
+ boolean isMasked();
+ OFOxm<OFMetadata> getCanonical();
+ OFMetadata getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadataMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadataMasked.java
new file mode 100644
index 0000000..58d0437
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMetadataMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMetadataMasked extends OFObject, OFOxm<OFMetadata> {
+ long getTypeLen();
+ OFMetadata getValue();
+ OFMetadata getMask();
+ MatchField<OFMetadata> getMatchField();
+ boolean isMasked();
+ OFOxm<OFMetadata> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFMetadata> {
+ OFOxmMetadataMasked build();
+ long getTypeLen();
+ OFMetadata getValue();
+ Builder setValue(OFMetadata value);
+ OFMetadata getMask();
+ Builder setMask(OFMetadata mask);
+ MatchField<OFMetadata> getMatchField();
+ boolean isMasked();
+ OFOxm<OFMetadata> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabel.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabel.java
new file mode 100644
index 0000000..d64a878
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabel.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMplsLabel extends OFObject, OFOxm<U32> {
+ long getTypeLen();
+ U32 getValue();
+ MatchField<U32> getMatchField();
+ boolean isMasked();
+ OFOxm<U32> getCanonical();
+ U32 getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U32> {
+ OFOxmMplsLabel build();
+ long getTypeLen();
+ U32 getValue();
+ Builder setValue(U32 value);
+ MatchField<U32> getMatchField();
+ boolean isMasked();
+ OFOxm<U32> getCanonical();
+ U32 getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabelMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabelMasked.java
new file mode 100644
index 0000000..21d94f4
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsLabelMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMplsLabelMasked extends OFObject, OFOxm<U32> {
+ long getTypeLen();
+ U32 getValue();
+ U32 getMask();
+ MatchField<U32> getMatchField();
+ boolean isMasked();
+ OFOxm<U32> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U32> {
+ OFOxmMplsLabelMasked build();
+ long getTypeLen();
+ U32 getValue();
+ Builder setValue(U32 value);
+ U32 getMask();
+ Builder setMask(U32 mask);
+ MatchField<U32> getMatchField();
+ boolean isMasked();
+ OFOxm<U32> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTc.java
new file mode 100644
index 0000000..e7cf2e5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMplsTc extends OFObject, OFOxm<U8> {
+ long getTypeLen();
+ U8 getValue();
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ U8 getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U8> {
+ OFOxmMplsTc build();
+ long getTypeLen();
+ U8 getValue();
+ Builder setValue(U8 value);
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ U8 getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTcMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTcMasked.java
new file mode 100644
index 0000000..150ba6c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmMplsTcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmMplsTcMasked extends OFObject, OFOxm<U8> {
+ long getTypeLen();
+ U8 getValue();
+ U8 getMask();
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U8> {
+ OFOxmMplsTcMasked build();
+ long getTypeLen();
+ U8 getValue();
+ Builder setValue(U8 value);
+ U8 getMask();
+ Builder setMask(U8 mask);
+ MatchField<U8> getMatchField();
+ boolean isMasked();
+ OFOxm<U8> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDst.java
new file mode 100644
index 0000000..16cf32d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmSctpDst extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmSctpDst build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDstMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDstMasked.java
new file mode 100644
index 0000000..15df987
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpDstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmSctpDstMasked extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ TransportPort getMask();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmSctpDstMasked build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ TransportPort getMask();
+ Builder setMask(TransportPort mask);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrc.java
new file mode 100644
index 0000000..1953087
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmSctpSrc extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmSctpSrc build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrcMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrcMasked.java
new file mode 100644
index 0000000..4454c3c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmSctpSrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmSctpSrcMasked extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ TransportPort getMask();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmSctpSrcMasked build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ TransportPort getMask();
+ Builder setMask(TransportPort mask);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDst.java
new file mode 100644
index 0000000..9bbedc2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTcpDst extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmTcpDst build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDstMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDstMasked.java
new file mode 100644
index 0000000..798dab2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpDstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTcpDstMasked extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ TransportPort getMask();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmTcpDstMasked build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ TransportPort getMask();
+ Builder setMask(TransportPort mask);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrc.java
new file mode 100644
index 0000000..b4aa20e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTcpSrc extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmTcpSrc build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrcMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrcMasked.java
new file mode 100644
index 0000000..4a39ded
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTcpSrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTcpSrcMasked extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ TransportPort getMask();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmTcpSrcMasked build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ TransportPort getMask();
+ Builder setMask(TransportPort mask);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelId.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelId.java
new file mode 100644
index 0000000..63a7e7a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelId.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTunnelId extends OFObject, OFOxm<U64> {
+ long getTypeLen();
+ U64 getValue();
+ MatchField<U64> getMatchField();
+ boolean isMasked();
+ OFOxm<U64> getCanonical();
+ U64 getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U64> {
+ OFOxmTunnelId build();
+ long getTypeLen();
+ U64 getValue();
+ Builder setValue(U64 value);
+ MatchField<U64> getMatchField();
+ boolean isMasked();
+ OFOxm<U64> getCanonical();
+ U64 getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelIdMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelIdMasked.java
new file mode 100644
index 0000000..2f8b9b8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmTunnelIdMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmTunnelIdMasked extends OFObject, OFOxm<U64> {
+ long getTypeLen();
+ U64 getValue();
+ U64 getMask();
+ MatchField<U64> getMatchField();
+ boolean isMasked();
+ OFOxm<U64> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<U64> {
+ OFOxmTunnelIdMasked build();
+ long getTypeLen();
+ U64 getValue();
+ Builder setValue(U64 value);
+ U64 getMask();
+ Builder setMask(U64 mask);
+ MatchField<U64> getMatchField();
+ boolean isMasked();
+ OFOxm<U64> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDst.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDst.java
new file mode 100644
index 0000000..097db29
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDst.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmUdpDst extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmUdpDst build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDstMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDstMasked.java
new file mode 100644
index 0000000..37fea56
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpDstMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmUdpDstMasked extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ TransportPort getMask();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmUdpDstMasked build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ TransportPort getMask();
+ Builder setMask(TransportPort mask);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrc.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrc.java
new file mode 100644
index 0000000..9f16f2d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrc.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmUdpSrc extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmUdpSrc build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ TransportPort getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrcMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrcMasked.java
new file mode 100644
index 0000000..623b6b7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmUdpSrcMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmUdpSrcMasked extends OFObject, OFOxm<TransportPort> {
+ long getTypeLen();
+ TransportPort getValue();
+ TransportPort getMask();
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<TransportPort> {
+ OFOxmUdpSrcMasked build();
+ long getTypeLen();
+ TransportPort getValue();
+ Builder setValue(TransportPort value);
+ TransportPort getMask();
+ Builder setMask(TransportPort mask);
+ MatchField<TransportPort> getMatchField();
+ boolean isMasked();
+ OFOxm<TransportPort> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcp.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcp.java
new file mode 100644
index 0000000..858e6a0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcp.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmVlanPcp extends OFObject, OFOxm<VlanPcp> {
+ long getTypeLen();
+ VlanPcp getValue();
+ MatchField<VlanPcp> getMatchField();
+ boolean isMasked();
+ OFOxm<VlanPcp> getCanonical();
+ VlanPcp getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<VlanPcp> {
+ OFOxmVlanPcp build();
+ long getTypeLen();
+ VlanPcp getValue();
+ Builder setValue(VlanPcp value);
+ MatchField<VlanPcp> getMatchField();
+ boolean isMasked();
+ OFOxm<VlanPcp> getCanonical();
+ VlanPcp getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcpMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcpMasked.java
new file mode 100644
index 0000000..62a34b2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanPcpMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmVlanPcpMasked extends OFObject, OFOxm<VlanPcp> {
+ long getTypeLen();
+ VlanPcp getValue();
+ VlanPcp getMask();
+ MatchField<VlanPcp> getMatchField();
+ boolean isMasked();
+ OFOxm<VlanPcp> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<VlanPcp> {
+ OFOxmVlanPcpMasked build();
+ long getTypeLen();
+ VlanPcp getValue();
+ Builder setValue(VlanPcp value);
+ VlanPcp getMask();
+ Builder setMask(VlanPcp mask);
+ MatchField<VlanPcp> getMatchField();
+ boolean isMasked();
+ OFOxm<VlanPcp> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVid.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVid.java
new file mode 100644
index 0000000..4b34b05
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVid.java
@@ -0,0 +1,51 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmVlanVid extends OFObject, OFOxm<OFVlanVidMatch> {
+ long getTypeLen();
+ OFVlanVidMatch getValue();
+ MatchField<OFVlanVidMatch> getMatchField();
+ boolean isMasked();
+ OFOxm<OFVlanVidMatch> getCanonical();
+ OFVlanVidMatch getMask();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFVlanVidMatch> {
+ OFOxmVlanVid build();
+ long getTypeLen();
+ OFVlanVidMatch getValue();
+ Builder setValue(OFVlanVidMatch value);
+ MatchField<OFVlanVidMatch> getMatchField();
+ boolean isMasked();
+ OFOxm<OFVlanVidMatch> getCanonical();
+ OFVlanVidMatch getMask();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVidMasked.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVidMasked.java
new file mode 100644
index 0000000..36110a7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxmVlanVidMasked.java
@@ -0,0 +1,52 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFOxmVlanVidMasked extends OFObject, OFOxm<OFVlanVidMatch> {
+ long getTypeLen();
+ OFVlanVidMatch getValue();
+ OFVlanVidMatch getMask();
+ MatchField<OFVlanVidMatch> getMatchField();
+ boolean isMasked();
+ OFOxm<OFVlanVidMatch> getCanonical();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFOxm.Builder<OFVlanVidMatch> {
+ OFOxmVlanVidMasked build();
+ long getTypeLen();
+ OFVlanVidMatch getValue();
+ Builder setValue(OFVlanVidMatch value);
+ OFVlanVidMatch getMask();
+ Builder setMask(OFVlanVidMatch mask);
+ MatchField<OFVlanVidMatch> getMatchField();
+ boolean isMasked();
+ OFOxm<OFVlanVidMatch> getCanonical();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxms.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxms.java
new file mode 100644
index 0000000..9cc2bba
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/oxm/OFOxms.java
@@ -0,0 +1,257 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.oxm;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFOxms {
+ // Subfactories
+
+ OFOxmArpOp.Builder buildArpOp() throws UnsupportedOperationException;
+ OFOxmArpOp arpOp(ArpOpcode value);
+ OFOxmArpOpMasked.Builder buildArpOpMasked() throws UnsupportedOperationException;
+ OFOxmArpOpMasked arpOpMasked(ArpOpcode value, ArpOpcode mask);
+ OFOxmArpSha.Builder buildArpSha() throws UnsupportedOperationException;
+ OFOxmArpSha arpSha(MacAddress value);
+ OFOxmArpShaMasked.Builder buildArpShaMasked() throws UnsupportedOperationException;
+ OFOxmArpShaMasked arpShaMasked(MacAddress value, MacAddress mask);
+ OFOxmArpSpa.Builder buildArpSpa() throws UnsupportedOperationException;
+ OFOxmArpSpa arpSpa(IPv4Address value);
+ OFOxmArpSpaMasked.Builder buildArpSpaMasked() throws UnsupportedOperationException;
+ OFOxmArpSpaMasked arpSpaMasked(IPv4Address value, IPv4Address mask);
+ OFOxmArpTha.Builder buildArpTha() throws UnsupportedOperationException;
+ OFOxmArpTha arpTha(MacAddress value);
+ OFOxmArpThaMasked.Builder buildArpThaMasked() throws UnsupportedOperationException;
+ OFOxmArpThaMasked arpThaMasked(MacAddress value, MacAddress mask);
+ OFOxmArpTpa.Builder buildArpTpa() throws UnsupportedOperationException;
+ OFOxmArpTpa arpTpa(IPv4Address value);
+ OFOxmArpTpaMasked.Builder buildArpTpaMasked() throws UnsupportedOperationException;
+ OFOxmArpTpaMasked arpTpaMasked(IPv4Address value, IPv4Address mask);
+ OFOxmBsnEgrPortGroupId.Builder buildBsnEgrPortGroupId() throws UnsupportedOperationException;
+ OFOxmBsnEgrPortGroupId bsnEgrPortGroupId(ClassId value);
+ OFOxmBsnEgrPortGroupIdMasked.Builder buildBsnEgrPortGroupIdMasked() throws UnsupportedOperationException;
+ OFOxmBsnEgrPortGroupIdMasked bsnEgrPortGroupIdMasked(ClassId value, ClassId mask);
+ OFOxmBsnGlobalVrfAllowed.Builder buildBsnGlobalVrfAllowed() throws UnsupportedOperationException;
+ OFOxmBsnGlobalVrfAllowed bsnGlobalVrfAllowed(OFBooleanValue value);
+ OFOxmBsnGlobalVrfAllowedMasked.Builder buildBsnGlobalVrfAllowedMasked() throws UnsupportedOperationException;
+ OFOxmBsnGlobalVrfAllowedMasked bsnGlobalVrfAllowedMasked(OFBooleanValue value, OFBooleanValue mask);
+ OFOxmBsnInPorts128.Builder buildBsnInPorts128() throws UnsupportedOperationException;
+ OFOxmBsnInPorts128 bsnInPorts128(OFBitMask128 value);
+ OFOxmBsnInPorts128Masked.Builder buildBsnInPorts128Masked() throws UnsupportedOperationException;
+ OFOxmBsnInPorts128Masked bsnInPorts128Masked(OFBitMask128 value, OFBitMask128 mask);
+ OFOxmBsnL3DstClassId.Builder buildBsnL3DstClassId() throws UnsupportedOperationException;
+ OFOxmBsnL3DstClassId bsnL3DstClassId(ClassId value);
+ OFOxmBsnL3DstClassIdMasked.Builder buildBsnL3DstClassIdMasked() throws UnsupportedOperationException;
+ OFOxmBsnL3DstClassIdMasked bsnL3DstClassIdMasked(ClassId value, ClassId mask);
+ OFOxmBsnL3InterfaceClassId.Builder buildBsnL3InterfaceClassId() throws UnsupportedOperationException;
+ OFOxmBsnL3InterfaceClassId bsnL3InterfaceClassId(ClassId value);
+ OFOxmBsnL3InterfaceClassIdMasked.Builder buildBsnL3InterfaceClassIdMasked() throws UnsupportedOperationException;
+ OFOxmBsnL3InterfaceClassIdMasked bsnL3InterfaceClassIdMasked(ClassId value, ClassId mask);
+ OFOxmBsnL3SrcClassId.Builder buildBsnL3SrcClassId() throws UnsupportedOperationException;
+ OFOxmBsnL3SrcClassId bsnL3SrcClassId(ClassId value);
+ OFOxmBsnL3SrcClassIdMasked.Builder buildBsnL3SrcClassIdMasked() throws UnsupportedOperationException;
+ OFOxmBsnL3SrcClassIdMasked bsnL3SrcClassIdMasked(ClassId value, ClassId mask);
+ OFOxmBsnLagId.Builder buildBsnLagId() throws UnsupportedOperationException;
+ OFOxmBsnLagId bsnLagId(LagId value);
+ OFOxmBsnLagIdMasked.Builder buildBsnLagIdMasked() throws UnsupportedOperationException;
+ OFOxmBsnLagIdMasked bsnLagIdMasked(LagId value, LagId mask);
+ OFOxmBsnTcpFlags.Builder buildBsnTcpFlags() throws UnsupportedOperationException;
+ OFOxmBsnTcpFlags bsnTcpFlags(U16 value);
+ OFOxmBsnTcpFlagsMasked.Builder buildBsnTcpFlagsMasked() throws UnsupportedOperationException;
+ OFOxmBsnTcpFlagsMasked bsnTcpFlagsMasked(U16 value, U16 mask);
+ OFOxmBsnUdf0.Builder buildBsnUdf0() throws UnsupportedOperationException;
+ OFOxmBsnUdf0 bsnUdf0(UDF value);
+ OFOxmBsnUdf0Masked.Builder buildBsnUdf0Masked() throws UnsupportedOperationException;
+ OFOxmBsnUdf0Masked bsnUdf0Masked(UDF value, UDF mask);
+ OFOxmBsnUdf1.Builder buildBsnUdf1() throws UnsupportedOperationException;
+ OFOxmBsnUdf1 bsnUdf1(UDF value);
+ OFOxmBsnUdf1Masked.Builder buildBsnUdf1Masked() throws UnsupportedOperationException;
+ OFOxmBsnUdf1Masked bsnUdf1Masked(UDF value, UDF mask);
+ OFOxmBsnUdf2.Builder buildBsnUdf2() throws UnsupportedOperationException;
+ OFOxmBsnUdf2 bsnUdf2(UDF value);
+ OFOxmBsnUdf2Masked.Builder buildBsnUdf2Masked() throws UnsupportedOperationException;
+ OFOxmBsnUdf2Masked bsnUdf2Masked(UDF value, UDF mask);
+ OFOxmBsnUdf3.Builder buildBsnUdf3() throws UnsupportedOperationException;
+ OFOxmBsnUdf3 bsnUdf3(UDF value);
+ OFOxmBsnUdf3Masked.Builder buildBsnUdf3Masked() throws UnsupportedOperationException;
+ OFOxmBsnUdf3Masked bsnUdf3Masked(UDF value, UDF mask);
+ OFOxmBsnUdf4.Builder buildBsnUdf4() throws UnsupportedOperationException;
+ OFOxmBsnUdf4 bsnUdf4(UDF value);
+ OFOxmBsnUdf4Masked.Builder buildBsnUdf4Masked() throws UnsupportedOperationException;
+ OFOxmBsnUdf4Masked bsnUdf4Masked(UDF value, UDF mask);
+ OFOxmBsnUdf5.Builder buildBsnUdf5() throws UnsupportedOperationException;
+ OFOxmBsnUdf5 bsnUdf5(UDF value);
+ OFOxmBsnUdf5Masked.Builder buildBsnUdf5Masked() throws UnsupportedOperationException;
+ OFOxmBsnUdf5Masked bsnUdf5Masked(UDF value, UDF mask);
+ OFOxmBsnUdf6.Builder buildBsnUdf6() throws UnsupportedOperationException;
+ OFOxmBsnUdf6 bsnUdf6(UDF value);
+ OFOxmBsnUdf6Masked.Builder buildBsnUdf6Masked() throws UnsupportedOperationException;
+ OFOxmBsnUdf6Masked bsnUdf6Masked(UDF value, UDF mask);
+ OFOxmBsnUdf7.Builder buildBsnUdf7() throws UnsupportedOperationException;
+ OFOxmBsnUdf7 bsnUdf7(UDF value);
+ OFOxmBsnUdf7Masked.Builder buildBsnUdf7Masked() throws UnsupportedOperationException;
+ OFOxmBsnUdf7Masked bsnUdf7Masked(UDF value, UDF mask);
+ OFOxmBsnVlanXlatePortGroupId.Builder buildBsnVlanXlatePortGroupId() throws UnsupportedOperationException;
+ OFOxmBsnVlanXlatePortGroupId bsnVlanXlatePortGroupId(ClassId value);
+ OFOxmBsnVlanXlatePortGroupIdMasked.Builder buildBsnVlanXlatePortGroupIdMasked() throws UnsupportedOperationException;
+ OFOxmBsnVlanXlatePortGroupIdMasked bsnVlanXlatePortGroupIdMasked(ClassId value, ClassId mask);
+ OFOxmBsnVrf.Builder buildBsnVrf() throws UnsupportedOperationException;
+ OFOxmBsnVrf bsnVrf(VRF value);
+ OFOxmBsnVrfMasked.Builder buildBsnVrfMasked() throws UnsupportedOperationException;
+ OFOxmBsnVrfMasked bsnVrfMasked(VRF value, VRF mask);
+ OFOxmEthDst.Builder buildEthDst() throws UnsupportedOperationException;
+ OFOxmEthDst ethDst(MacAddress value);
+ OFOxmEthDstMasked.Builder buildEthDstMasked() throws UnsupportedOperationException;
+ OFOxmEthDstMasked ethDstMasked(MacAddress value, MacAddress mask);
+ OFOxmEthSrc.Builder buildEthSrc() throws UnsupportedOperationException;
+ OFOxmEthSrc ethSrc(MacAddress value);
+ OFOxmEthSrcMasked.Builder buildEthSrcMasked() throws UnsupportedOperationException;
+ OFOxmEthSrcMasked ethSrcMasked(MacAddress value, MacAddress mask);
+ OFOxmEthType.Builder buildEthType() throws UnsupportedOperationException;
+ OFOxmEthType ethType(EthType value);
+ OFOxmEthTypeMasked.Builder buildEthTypeMasked() throws UnsupportedOperationException;
+ OFOxmEthTypeMasked ethTypeMasked(EthType value, EthType mask);
+ OFOxmIcmpv4Code.Builder buildIcmpv4Code() throws UnsupportedOperationException;
+ OFOxmIcmpv4Code icmpv4Code(ICMPv4Code value);
+ OFOxmIcmpv4CodeMasked.Builder buildIcmpv4CodeMasked() throws UnsupportedOperationException;
+ OFOxmIcmpv4CodeMasked icmpv4CodeMasked(ICMPv4Code value, ICMPv4Code mask);
+ OFOxmIcmpv4Type.Builder buildIcmpv4Type() throws UnsupportedOperationException;
+ OFOxmIcmpv4Type icmpv4Type(ICMPv4Type value);
+ OFOxmIcmpv4TypeMasked.Builder buildIcmpv4TypeMasked() throws UnsupportedOperationException;
+ OFOxmIcmpv4TypeMasked icmpv4TypeMasked(ICMPv4Type value, ICMPv4Type mask);
+ OFOxmIcmpv6Code.Builder buildIcmpv6Code() throws UnsupportedOperationException;
+ OFOxmIcmpv6Code icmpv6Code(U8 value);
+ OFOxmIcmpv6CodeMasked.Builder buildIcmpv6CodeMasked() throws UnsupportedOperationException;
+ OFOxmIcmpv6CodeMasked icmpv6CodeMasked(U8 value, U8 mask);
+ OFOxmIcmpv6Type.Builder buildIcmpv6Type() throws UnsupportedOperationException;
+ OFOxmIcmpv6Type icmpv6Type(U8 value);
+ OFOxmIcmpv6TypeMasked.Builder buildIcmpv6TypeMasked() throws UnsupportedOperationException;
+ OFOxmIcmpv6TypeMasked icmpv6TypeMasked(U8 value, U8 mask);
+ OFOxmInPhyPort.Builder buildInPhyPort() throws UnsupportedOperationException;
+ OFOxmInPhyPort inPhyPort(OFPort value);
+ OFOxmInPhyPortMasked.Builder buildInPhyPortMasked() throws UnsupportedOperationException;
+ OFOxmInPhyPortMasked inPhyPortMasked(OFPort value, OFPort mask);
+ OFOxmInPort.Builder buildInPort() throws UnsupportedOperationException;
+ OFOxmInPort inPort(OFPort value);
+ OFOxmInPortMasked.Builder buildInPortMasked() throws UnsupportedOperationException;
+ OFOxmInPortMasked inPortMasked(OFPort value, OFPort mask);
+ OFOxmIpDscp.Builder buildIpDscp() throws UnsupportedOperationException;
+ OFOxmIpDscp ipDscp(IpDscp value);
+ OFOxmIpDscpMasked.Builder buildIpDscpMasked() throws UnsupportedOperationException;
+ OFOxmIpDscpMasked ipDscpMasked(IpDscp value, IpDscp mask);
+ OFOxmIpEcn.Builder buildIpEcn() throws UnsupportedOperationException;
+ OFOxmIpEcn ipEcn(IpEcn value);
+ OFOxmIpEcnMasked.Builder buildIpEcnMasked() throws UnsupportedOperationException;
+ OFOxmIpEcnMasked ipEcnMasked(IpEcn value, IpEcn mask);
+ OFOxmIpProto.Builder buildIpProto() throws UnsupportedOperationException;
+ OFOxmIpProto ipProto(IpProtocol value);
+ OFOxmIpProtoMasked.Builder buildIpProtoMasked() throws UnsupportedOperationException;
+ OFOxmIpProtoMasked ipProtoMasked(IpProtocol value, IpProtocol mask);
+ OFOxmIpv4Dst.Builder buildIpv4Dst() throws UnsupportedOperationException;
+ OFOxmIpv4Dst ipv4Dst(IPv4Address value);
+ OFOxmIpv4DstMasked.Builder buildIpv4DstMasked() throws UnsupportedOperationException;
+ OFOxmIpv4DstMasked ipv4DstMasked(IPv4Address value, IPv4Address mask);
+ OFOxmIpv4Src.Builder buildIpv4Src() throws UnsupportedOperationException;
+ OFOxmIpv4Src ipv4Src(IPv4Address value);
+ OFOxmIpv4SrcMasked.Builder buildIpv4SrcMasked() throws UnsupportedOperationException;
+ OFOxmIpv4SrcMasked ipv4SrcMasked(IPv4Address value, IPv4Address mask);
+ OFOxmIpv6Dst.Builder buildIpv6Dst() throws UnsupportedOperationException;
+ OFOxmIpv6Dst ipv6Dst(IPv6Address value);
+ OFOxmIpv6DstMasked.Builder buildIpv6DstMasked() throws UnsupportedOperationException;
+ OFOxmIpv6DstMasked ipv6DstMasked(IPv6Address value, IPv6Address mask);
+ OFOxmIpv6Flabel.Builder buildIpv6Flabel() throws UnsupportedOperationException;
+ OFOxmIpv6Flabel ipv6Flabel(IPv6FlowLabel value);
+ OFOxmIpv6FlabelMasked.Builder buildIpv6FlabelMasked() throws UnsupportedOperationException;
+ OFOxmIpv6FlabelMasked ipv6FlabelMasked(IPv6FlowLabel value, IPv6FlowLabel mask);
+ OFOxmIpv6NdSll.Builder buildIpv6NdSll() throws UnsupportedOperationException;
+ OFOxmIpv6NdSll ipv6NdSll(MacAddress value);
+ OFOxmIpv6NdSllMasked.Builder buildIpv6NdSllMasked() throws UnsupportedOperationException;
+ OFOxmIpv6NdSllMasked ipv6NdSllMasked(MacAddress value, MacAddress mask);
+ OFOxmIpv6NdTarget.Builder buildIpv6NdTarget() throws UnsupportedOperationException;
+ OFOxmIpv6NdTarget ipv6NdTarget(IPv6Address value);
+ OFOxmIpv6NdTargetMasked.Builder buildIpv6NdTargetMasked() throws UnsupportedOperationException;
+ OFOxmIpv6NdTargetMasked ipv6NdTargetMasked(IPv6Address value, IPv6Address mask);
+ OFOxmIpv6NdTll.Builder buildIpv6NdTll() throws UnsupportedOperationException;
+ OFOxmIpv6NdTll ipv6NdTll(MacAddress value);
+ OFOxmIpv6NdTllMasked.Builder buildIpv6NdTllMasked() throws UnsupportedOperationException;
+ OFOxmIpv6NdTllMasked ipv6NdTllMasked(MacAddress value, MacAddress mask);
+ OFOxmIpv6Src.Builder buildIpv6Src() throws UnsupportedOperationException;
+ OFOxmIpv6Src ipv6Src(IPv6Address value);
+ OFOxmIpv6SrcMasked.Builder buildIpv6SrcMasked() throws UnsupportedOperationException;
+ OFOxmIpv6SrcMasked ipv6SrcMasked(IPv6Address value, IPv6Address mask);
+ OFOxmMetadata.Builder buildMetadata() throws UnsupportedOperationException;
+ OFOxmMetadata metadata(OFMetadata value);
+ OFOxmMetadataMasked.Builder buildMetadataMasked() throws UnsupportedOperationException;
+ OFOxmMetadataMasked metadataMasked(OFMetadata value, OFMetadata mask);
+ OFOxmMplsLabel.Builder buildMplsLabel() throws UnsupportedOperationException;
+ OFOxmMplsLabel mplsLabel(U32 value);
+ OFOxmMplsLabelMasked.Builder buildMplsLabelMasked() throws UnsupportedOperationException;
+ OFOxmMplsLabelMasked mplsLabelMasked(U32 value, U32 mask);
+ OFOxmMplsTc.Builder buildMplsTc() throws UnsupportedOperationException;
+ OFOxmMplsTc mplsTc(U8 value);
+ OFOxmMplsTcMasked.Builder buildMplsTcMasked() throws UnsupportedOperationException;
+ OFOxmMplsTcMasked mplsTcMasked(U8 value, U8 mask);
+ OFOxmSctpDst.Builder buildSctpDst() throws UnsupportedOperationException;
+ OFOxmSctpDst sctpDst(TransportPort value);
+ OFOxmSctpDstMasked.Builder buildSctpDstMasked() throws UnsupportedOperationException;
+ OFOxmSctpDstMasked sctpDstMasked(TransportPort value, TransportPort mask);
+ OFOxmSctpSrc.Builder buildSctpSrc() throws UnsupportedOperationException;
+ OFOxmSctpSrc sctpSrc(TransportPort value);
+ OFOxmSctpSrcMasked.Builder buildSctpSrcMasked() throws UnsupportedOperationException;
+ OFOxmSctpSrcMasked sctpSrcMasked(TransportPort value, TransportPort mask);
+ OFOxmTcpDst.Builder buildTcpDst() throws UnsupportedOperationException;
+ OFOxmTcpDst tcpDst(TransportPort value);
+ OFOxmTcpDstMasked.Builder buildTcpDstMasked() throws UnsupportedOperationException;
+ OFOxmTcpDstMasked tcpDstMasked(TransportPort value, TransportPort mask);
+ OFOxmTcpSrc.Builder buildTcpSrc() throws UnsupportedOperationException;
+ OFOxmTcpSrc tcpSrc(TransportPort value);
+ OFOxmTcpSrcMasked.Builder buildTcpSrcMasked() throws UnsupportedOperationException;
+ OFOxmTcpSrcMasked tcpSrcMasked(TransportPort value, TransportPort mask);
+ OFOxmUdpDst.Builder buildUdpDst() throws UnsupportedOperationException;
+ OFOxmUdpDst udpDst(TransportPort value);
+ OFOxmUdpDstMasked.Builder buildUdpDstMasked() throws UnsupportedOperationException;
+ OFOxmUdpDstMasked udpDstMasked(TransportPort value, TransportPort mask);
+ OFOxmUdpSrc.Builder buildUdpSrc() throws UnsupportedOperationException;
+ OFOxmUdpSrc udpSrc(TransportPort value);
+ OFOxmUdpSrcMasked.Builder buildUdpSrcMasked() throws UnsupportedOperationException;
+ OFOxmUdpSrcMasked udpSrcMasked(TransportPort value, TransportPort mask);
+ OFOxmVlanPcp.Builder buildVlanPcp() throws UnsupportedOperationException;
+ OFOxmVlanPcp vlanPcp(VlanPcp value);
+ OFOxmVlanPcpMasked.Builder buildVlanPcpMasked() throws UnsupportedOperationException;
+ OFOxmVlanPcpMasked vlanPcpMasked(VlanPcp value, VlanPcp mask);
+ OFOxmVlanVid.Builder buildVlanVid() throws UnsupportedOperationException;
+ OFOxmVlanVid vlanVid(OFVlanVidMatch value);
+ OFOxmVlanVidMasked.Builder buildVlanVidMasked() throws UnsupportedOperationException;
+ OFOxmVlanVidMasked vlanVidMasked(OFVlanVidMatch value, OFVlanVidMatch mask);
+ OFOxmTunnelId.Builder buildTunnelId() throws UnsupportedOperationException;
+ OFOxmTunnelId tunnelId(U64 value);
+ OFOxmTunnelIdMasked.Builder buildTunnelIdMasked() throws UnsupportedOperationException;
+ OFOxmTunnelIdMasked tunnelIdMasked(U64 value, U64 mask);
+
+ OFMessageReader<OFOxm<?>> getReader();
+ OFVersion getVersion();
+
+ public <F extends OFValueType<F>> OFOxm<F> fromValue(F value, MatchField<F> field);
+ public <F extends OFValueType<F>> OFOxm<F> fromValueAndMask(F value, F mask, MatchField<F> field);
+ public <F extends OFValueType<F>> OFOxm<F> fromMasked(Masked<F> masked, MatchField<F> field);
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProp.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProp.java
new file mode 100644
index 0000000..d82da0a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProp.java
@@ -0,0 +1,40 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueueProp extends OFObject {
+ int getType();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder {
+ OFQueueProp build();
+ int getType();
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropExperimenter.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropExperimenter.java
new file mode 100644
index 0000000..50ed036
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropExperimenter.java
@@ -0,0 +1,45 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueuePropExperimenter extends OFObject, OFQueueProp {
+ int getType();
+ long getExperimenter();
+ byte[] getData();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFQueueProp.Builder {
+ OFQueuePropExperimenter build();
+ int getType();
+ long getExperimenter();
+ byte[] getData();
+ Builder setData(byte[] data);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMaxRate.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMaxRate.java
new file mode 100644
index 0000000..44f3c24
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMaxRate.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueuePropMaxRate extends OFObject, OFQueueProp {
+ int getType();
+ int getRate();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFQueueProp.Builder {
+ OFQueuePropMaxRate build();
+ int getType();
+ int getRate();
+ Builder setRate(int rate);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMinRate.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMinRate.java
new file mode 100644
index 0000000..e6941f7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueuePropMinRate.java
@@ -0,0 +1,43 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+public interface OFQueuePropMinRate extends OFObject, OFQueueProp {
+ int getType();
+ int getRate();
+ OFVersion getVersion();
+
+ void writeTo(ChannelBuffer channelBuffer);
+
+ Builder createBuilder();
+ public interface Builder extends OFQueueProp.Builder {
+ OFQueuePropMinRate build();
+ int getType();
+ int getRate();
+ Builder setRate(int rate);
+ OFVersion getVersion();
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProps.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProps.java
new file mode 100644
index 0000000..ba85e85
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/queueprop/OFQueueProps.java
@@ -0,0 +1,37 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_interface.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.queueprop;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+public interface OFQueueProps {
+ // Subfactories
+
+ OFQueuePropMinRate.Builder buildMinRate();
+ OFQueuePropMinRate minRate(int rate);
+ OFQueuePropMaxRate.Builder buildMaxRate() throws UnsupportedOperationException;
+ OFQueuePropMaxRate maxRate(int rate);
+
+ OFMessageReader<OFQueueProp> getReader();
+ OFVersion getVersion();
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnChecksumVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnChecksumVer10.java
new file mode 100644
index 0000000..3d3649b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnChecksumVer10.java
@@ -0,0 +1,313 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionBsnChecksumVer10 implements OFActionBsnChecksum {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionBsnChecksumVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 28;
+
+ private final static U128 DEFAULT_CHECKSUM = U128.ZERO;
+
+ // OF message fields
+ private final U128 checksum;
+//
+ // Immutable default instance
+ final static OFActionBsnChecksumVer10 DEFAULT = new OFActionBsnChecksumVer10(
+ DEFAULT_CHECKSUM
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionBsnChecksumVer10(U128 checksum) {
+ this.checksum = checksum;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x4L;
+ }
+
+ @Override
+ public U128 getChecksum() {
+ return checksum;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionBsnChecksum.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionBsnChecksum.Builder {
+ final OFActionBsnChecksumVer10 parentMessage;
+
+ // OF message fields
+ private boolean checksumSet;
+ private U128 checksum;
+
+ BuilderWithParent(OFActionBsnChecksumVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x4L;
+ }
+
+ @Override
+ public U128 getChecksum() {
+ return checksum;
+ }
+
+ @Override
+ public OFActionBsnChecksum.Builder setChecksum(U128 checksum) {
+ this.checksum = checksum;
+ this.checksumSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionBsnChecksum build() {
+ U128 checksum = this.checksumSet ? this.checksum : parentMessage.checksum;
+ if(checksum == null)
+ throw new NullPointerException("Property checksum must not be null");
+
+ //
+ return new OFActionBsnChecksumVer10(
+ checksum
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionBsnChecksum.Builder {
+ // OF message fields
+ private boolean checksumSet;
+ private U128 checksum;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x4L;
+ }
+
+ @Override
+ public U128 getChecksum() {
+ return checksum;
+ }
+
+ @Override
+ public OFActionBsnChecksum.Builder setChecksum(U128 checksum) {
+ this.checksum = checksum;
+ this.checksumSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionBsnChecksum build() {
+ U128 checksum = this.checksumSet ? this.checksum : DEFAULT_CHECKSUM;
+ if(checksum == null)
+ throw new NullPointerException("Property checksum must not be null");
+
+
+ return new OFActionBsnChecksumVer10(
+ checksum
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionBsnChecksum> {
+ @Override
+ public OFActionBsnChecksum readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 65535
+ short type = bb.readShort();
+ if(type != (short) 0xffff)
+ throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 28)
+ throw new OFParseError("Wrong length: Expected=28(28), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x4L
+ int subtype = bb.readInt();
+ if(subtype != 0x4)
+ throw new OFParseError("Wrong subtype: Expected=0x4L(0x4L), got="+subtype);
+ U128 checksum = U128.read16Bytes(bb);
+
+ OFActionBsnChecksumVer10 actionBsnChecksumVer10 = new OFActionBsnChecksumVer10(
+ checksum
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionBsnChecksumVer10);
+ return actionBsnChecksumVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionBsnChecksumVer10Funnel FUNNEL = new OFActionBsnChecksumVer10Funnel();
+ static class OFActionBsnChecksumVer10Funnel implements Funnel<OFActionBsnChecksumVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionBsnChecksumVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 65535
+ sink.putShort((short) 0xffff);
+ // fixed value property length = 28
+ sink.putShort((short) 0x1c);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x4L
+ sink.putInt(0x4);
+ message.checksum.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionBsnChecksumVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionBsnChecksumVer10 message) {
+ // fixed value property type = 65535
+ bb.writeShort((short) 0xffff);
+ // fixed value property length = 28
+ bb.writeShort((short) 0x1c);
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x4L
+ bb.writeInt(0x4);
+ message.checksum.write16Bytes(bb);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionBsnChecksumVer10(");
+ b.append("checksum=").append(checksum);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionBsnChecksumVer10 other = (OFActionBsnChecksumVer10) obj;
+
+ if (checksum == null) {
+ if (other.checksum != null)
+ return false;
+ } else if (!checksum.equals(other.checksum))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((checksum == null) ? 0 : checksum.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnMirrorVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnMirrorVer10.java
new file mode 100644
index 0000000..374feb9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnMirrorVer10.java
@@ -0,0 +1,412 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionBsnMirrorVer10 implements OFActionBsnMirror {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionBsnMirrorVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static OFPort DEFAULT_DEST_PORT = OFPort.ANY;
+ private final static long DEFAULT_VLAN_TAG = 0x0L;
+ private final static short DEFAULT_COPY_STAGE = (short) 0x0;
+
+ // OF message fields
+ private final OFPort destPort;
+ private final long vlanTag;
+ private final short copyStage;
+//
+ // Immutable default instance
+ final static OFActionBsnMirrorVer10 DEFAULT = new OFActionBsnMirrorVer10(
+ DEFAULT_DEST_PORT, DEFAULT_VLAN_TAG, DEFAULT_COPY_STAGE
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionBsnMirrorVer10(OFPort destPort, long vlanTag, short copyStage) {
+ this.destPort = destPort;
+ this.vlanTag = vlanTag;
+ this.copyStage = copyStage;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1L;
+ }
+
+ @Override
+ public OFPort getDestPort() {
+ return destPort;
+ }
+
+ @Override
+ public long getVlanTag() {
+ return vlanTag;
+ }
+
+ @Override
+ public short getCopyStage() {
+ return copyStage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionBsnMirror.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionBsnMirror.Builder {
+ final OFActionBsnMirrorVer10 parentMessage;
+
+ // OF message fields
+ private boolean destPortSet;
+ private OFPort destPort;
+ private boolean vlanTagSet;
+ private long vlanTag;
+ private boolean copyStageSet;
+ private short copyStage;
+
+ BuilderWithParent(OFActionBsnMirrorVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1L;
+ }
+
+ @Override
+ public OFPort getDestPort() {
+ return destPort;
+ }
+
+ @Override
+ public OFActionBsnMirror.Builder setDestPort(OFPort destPort) {
+ this.destPort = destPort;
+ this.destPortSet = true;
+ return this;
+ }
+ @Override
+ public long getVlanTag() {
+ return vlanTag;
+ }
+
+ @Override
+ public OFActionBsnMirror.Builder setVlanTag(long vlanTag) {
+ this.vlanTag = vlanTag;
+ this.vlanTagSet = true;
+ return this;
+ }
+ @Override
+ public short getCopyStage() {
+ return copyStage;
+ }
+
+ @Override
+ public OFActionBsnMirror.Builder setCopyStage(short copyStage) {
+ this.copyStage = copyStage;
+ this.copyStageSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionBsnMirror build() {
+ OFPort destPort = this.destPortSet ? this.destPort : parentMessage.destPort;
+ if(destPort == null)
+ throw new NullPointerException("Property destPort must not be null");
+ long vlanTag = this.vlanTagSet ? this.vlanTag : parentMessage.vlanTag;
+ short copyStage = this.copyStageSet ? this.copyStage : parentMessage.copyStage;
+
+ //
+ return new OFActionBsnMirrorVer10(
+ destPort,
+ vlanTag,
+ copyStage
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionBsnMirror.Builder {
+ // OF message fields
+ private boolean destPortSet;
+ private OFPort destPort;
+ private boolean vlanTagSet;
+ private long vlanTag;
+ private boolean copyStageSet;
+ private short copyStage;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1L;
+ }
+
+ @Override
+ public OFPort getDestPort() {
+ return destPort;
+ }
+
+ @Override
+ public OFActionBsnMirror.Builder setDestPort(OFPort destPort) {
+ this.destPort = destPort;
+ this.destPortSet = true;
+ return this;
+ }
+ @Override
+ public long getVlanTag() {
+ return vlanTag;
+ }
+
+ @Override
+ public OFActionBsnMirror.Builder setVlanTag(long vlanTag) {
+ this.vlanTag = vlanTag;
+ this.vlanTagSet = true;
+ return this;
+ }
+ @Override
+ public short getCopyStage() {
+ return copyStage;
+ }
+
+ @Override
+ public OFActionBsnMirror.Builder setCopyStage(short copyStage) {
+ this.copyStage = copyStage;
+ this.copyStageSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionBsnMirror build() {
+ OFPort destPort = this.destPortSet ? this.destPort : DEFAULT_DEST_PORT;
+ if(destPort == null)
+ throw new NullPointerException("Property destPort must not be null");
+ long vlanTag = this.vlanTagSet ? this.vlanTag : DEFAULT_VLAN_TAG;
+ short copyStage = this.copyStageSet ? this.copyStage : DEFAULT_COPY_STAGE;
+
+
+ return new OFActionBsnMirrorVer10(
+ destPort,
+ vlanTag,
+ copyStage
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionBsnMirror> {
+ @Override
+ public OFActionBsnMirror readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 65535
+ short type = bb.readShort();
+ if(type != (short) 0xffff)
+ throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x1L
+ int subtype = bb.readInt();
+ if(subtype != 0x1)
+ throw new OFParseError("Wrong subtype: Expected=0x1L(0x1L), got="+subtype);
+ OFPort destPort = OFPort.read2Bytes(bb);
+ long vlanTag = U32.f(bb.readInt());
+ short copyStage = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+
+ OFActionBsnMirrorVer10 actionBsnMirrorVer10 = new OFActionBsnMirrorVer10(
+ destPort,
+ vlanTag,
+ copyStage
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionBsnMirrorVer10);
+ return actionBsnMirrorVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionBsnMirrorVer10Funnel FUNNEL = new OFActionBsnMirrorVer10Funnel();
+ static class OFActionBsnMirrorVer10Funnel implements Funnel<OFActionBsnMirrorVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionBsnMirrorVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 65535
+ sink.putShort((short) 0xffff);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x1L
+ sink.putInt(0x1);
+ message.destPort.putTo(sink);
+ sink.putLong(message.vlanTag);
+ sink.putShort(message.copyStage);
+ // skip pad (3 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionBsnMirrorVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionBsnMirrorVer10 message) {
+ // fixed value property type = 65535
+ bb.writeShort((short) 0xffff);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x1L
+ bb.writeInt(0x1);
+ message.destPort.write2Bytes(bb);
+ bb.writeInt(U32.t(message.vlanTag));
+ bb.writeByte(U8.t(message.copyStage));
+ // pad: 3 bytes
+ bb.writeZero(3);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionBsnMirrorVer10(");
+ b.append("destPort=").append(destPort);
+ b.append(", ");
+ b.append("vlanTag=").append(vlanTag);
+ b.append(", ");
+ b.append("copyStage=").append(copyStage);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionBsnMirrorVer10 other = (OFActionBsnMirrorVer10) obj;
+
+ if (destPort == null) {
+ if (other.destPort != null)
+ return false;
+ } else if (!destPort.equals(other.destPort))
+ return false;
+ if( vlanTag != other.vlanTag)
+ return false;
+ if( copyStage != other.copyStage)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((destPort == null) ? 0 : destPort.hashCode());
+ result = prime * (int) (vlanTag ^ (vlanTag >>> 32));
+ result = prime * result + copyStage;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnSetTunnelDstVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnSetTunnelDstVer10.java
new file mode 100644
index 0000000..add313c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnSetTunnelDstVer10.java
@@ -0,0 +1,306 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionBsnSetTunnelDstVer10 implements OFActionBsnSetTunnelDst {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionBsnSetTunnelDstVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static long DEFAULT_DST = 0x0L;
+
+ // OF message fields
+ private final long dst;
+//
+ // Immutable default instance
+ final static OFActionBsnSetTunnelDstVer10 DEFAULT = new OFActionBsnSetTunnelDstVer10(
+ DEFAULT_DST
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionBsnSetTunnelDstVer10(long dst) {
+ this.dst = dst;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x2L;
+ }
+
+ @Override
+ public long getDst() {
+ return dst;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionBsnSetTunnelDst.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionBsnSetTunnelDst.Builder {
+ final OFActionBsnSetTunnelDstVer10 parentMessage;
+
+ // OF message fields
+ private boolean dstSet;
+ private long dst;
+
+ BuilderWithParent(OFActionBsnSetTunnelDstVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x2L;
+ }
+
+ @Override
+ public long getDst() {
+ return dst;
+ }
+
+ @Override
+ public OFActionBsnSetTunnelDst.Builder setDst(long dst) {
+ this.dst = dst;
+ this.dstSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionBsnSetTunnelDst build() {
+ long dst = this.dstSet ? this.dst : parentMessage.dst;
+
+ //
+ return new OFActionBsnSetTunnelDstVer10(
+ dst
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionBsnSetTunnelDst.Builder {
+ // OF message fields
+ private boolean dstSet;
+ private long dst;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x2L;
+ }
+
+ @Override
+ public long getDst() {
+ return dst;
+ }
+
+ @Override
+ public OFActionBsnSetTunnelDst.Builder setDst(long dst) {
+ this.dst = dst;
+ this.dstSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionBsnSetTunnelDst build() {
+ long dst = this.dstSet ? this.dst : DEFAULT_DST;
+
+
+ return new OFActionBsnSetTunnelDstVer10(
+ dst
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionBsnSetTunnelDst> {
+ @Override
+ public OFActionBsnSetTunnelDst readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 65535
+ short type = bb.readShort();
+ if(type != (short) 0xffff)
+ throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x2L
+ int subtype = bb.readInt();
+ if(subtype != 0x2)
+ throw new OFParseError("Wrong subtype: Expected=0x2L(0x2L), got="+subtype);
+ long dst = U32.f(bb.readInt());
+
+ OFActionBsnSetTunnelDstVer10 actionBsnSetTunnelDstVer10 = new OFActionBsnSetTunnelDstVer10(
+ dst
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionBsnSetTunnelDstVer10);
+ return actionBsnSetTunnelDstVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionBsnSetTunnelDstVer10Funnel FUNNEL = new OFActionBsnSetTunnelDstVer10Funnel();
+ static class OFActionBsnSetTunnelDstVer10Funnel implements Funnel<OFActionBsnSetTunnelDstVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionBsnSetTunnelDstVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 65535
+ sink.putShort((short) 0xffff);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x2L
+ sink.putInt(0x2);
+ sink.putLong(message.dst);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionBsnSetTunnelDstVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionBsnSetTunnelDstVer10 message) {
+ // fixed value property type = 65535
+ bb.writeShort((short) 0xffff);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x2L
+ bb.writeInt(0x2);
+ bb.writeInt(U32.t(message.dst));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionBsnSetTunnelDstVer10(");
+ b.append("dst=").append(dst);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionBsnSetTunnelDstVer10 other = (OFActionBsnSetTunnelDstVer10) obj;
+
+ if( dst != other.dst)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (dst ^ (dst >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnVer10.java
new file mode 100644
index 0000000..14a7001
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionBsnVer10.java
@@ -0,0 +1,71 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+import java.util.Set;
+
+abstract class OFActionBsnVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 16;
+
+
+ public final static OFActionBsnVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFActionBsn> {
+ @Override
+ public OFActionBsn readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property type == 65535
+ short type = bb.readShort();
+ if(type != (short) 0xffff)
+ throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ int subtype = bb.readInt();
+ bb.readerIndex(start);
+ switch(subtype) {
+ case 0x4:
+ // discriminator value 0x4L=0x4L for class OFActionBsnChecksumVer10
+ return OFActionBsnChecksumVer10.READER.readFrom(bb);
+ case 0x1:
+ // discriminator value 0x1L=0x1L for class OFActionBsnMirrorVer10
+ return OFActionBsnMirrorVer10.READER.readFrom(bb);
+ case 0x2:
+ // discriminator value 0x2L=0x2L for class OFActionBsnSetTunnelDstVer10
+ return OFActionBsnSetTunnelDstVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator subtype of class OFActionBsnVer10: " + subtype);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionEnqueueVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionEnqueueVer10.java
new file mode 100644
index 0000000..650f3ba
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionEnqueueVer10.java
@@ -0,0 +1,319 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionEnqueueVer10 implements OFActionEnqueue {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionEnqueueVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static OFPort DEFAULT_PORT = OFPort.ANY;
+ private final static long DEFAULT_QUEUE_ID = 0x0L;
+
+ // OF message fields
+ private final OFPort port;
+ private final long queueId;
+//
+ // Immutable default instance
+ final static OFActionEnqueueVer10 DEFAULT = new OFActionEnqueueVer10(
+ DEFAULT_PORT, DEFAULT_QUEUE_ID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionEnqueueVer10(OFPort port, long queueId) {
+ this.port = port;
+ this.queueId = queueId;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.ENQUEUE;
+ }
+
+ @Override
+ public OFPort getPort() {
+ return port;
+ }
+
+ @Override
+ public long getQueueId() {
+ return queueId;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionEnqueue.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionEnqueue.Builder {
+ final OFActionEnqueueVer10 parentMessage;
+
+ // OF message fields
+ private boolean portSet;
+ private OFPort port;
+ private boolean queueIdSet;
+ private long queueId;
+
+ BuilderWithParent(OFActionEnqueueVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.ENQUEUE;
+ }
+
+ @Override
+ public OFPort getPort() {
+ return port;
+ }
+
+ @Override
+ public OFActionEnqueue.Builder setPort(OFPort port) {
+ this.port = port;
+ this.portSet = true;
+ return this;
+ }
+ @Override
+ public long getQueueId() {
+ return queueId;
+ }
+
+ @Override
+ public OFActionEnqueue.Builder setQueueId(long queueId) {
+ this.queueId = queueId;
+ this.queueIdSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionEnqueue build() {
+ OFPort port = this.portSet ? this.port : parentMessage.port;
+ if(port == null)
+ throw new NullPointerException("Property port must not be null");
+ long queueId = this.queueIdSet ? this.queueId : parentMessage.queueId;
+
+ //
+ return new OFActionEnqueueVer10(
+ port,
+ queueId
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionEnqueue.Builder {
+ // OF message fields
+ private boolean portSet;
+ private OFPort port;
+ private boolean queueIdSet;
+ private long queueId;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.ENQUEUE;
+ }
+
+ @Override
+ public OFPort getPort() {
+ return port;
+ }
+
+ @Override
+ public OFActionEnqueue.Builder setPort(OFPort port) {
+ this.port = port;
+ this.portSet = true;
+ return this;
+ }
+ @Override
+ public long getQueueId() {
+ return queueId;
+ }
+
+ @Override
+ public OFActionEnqueue.Builder setQueueId(long queueId) {
+ this.queueId = queueId;
+ this.queueIdSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionEnqueue build() {
+ OFPort port = this.portSet ? this.port : DEFAULT_PORT;
+ if(port == null)
+ throw new NullPointerException("Property port must not be null");
+ long queueId = this.queueIdSet ? this.queueId : DEFAULT_QUEUE_ID;
+
+
+ return new OFActionEnqueueVer10(
+ port,
+ queueId
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionEnqueue> {
+ @Override
+ public OFActionEnqueue readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 11
+ short type = bb.readShort();
+ if(type != (short) 0xb)
+ throw new OFParseError("Wrong type: Expected=OFActionType.ENQUEUE(11), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ OFPort port = OFPort.read2Bytes(bb);
+ // pad: 6 bytes
+ bb.skipBytes(6);
+ long queueId = U32.f(bb.readInt());
+
+ OFActionEnqueueVer10 actionEnqueueVer10 = new OFActionEnqueueVer10(
+ port,
+ queueId
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionEnqueueVer10);
+ return actionEnqueueVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionEnqueueVer10Funnel FUNNEL = new OFActionEnqueueVer10Funnel();
+ static class OFActionEnqueueVer10Funnel implements Funnel<OFActionEnqueueVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionEnqueueVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 11
+ sink.putShort((short) 0xb);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ message.port.putTo(sink);
+ // skip pad (6 bytes)
+ sink.putLong(message.queueId);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionEnqueueVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionEnqueueVer10 message) {
+ // fixed value property type = 11
+ bb.writeShort((short) 0xb);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ message.port.write2Bytes(bb);
+ // pad: 6 bytes
+ bb.writeZero(6);
+ bb.writeInt(U32.t(message.queueId));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionEnqueueVer10(");
+ b.append("port=").append(port);
+ b.append(", ");
+ b.append("queueId=").append(queueId);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionEnqueueVer10 other = (OFActionEnqueueVer10) obj;
+
+ if (port == null) {
+ if (other.port != null)
+ return false;
+ } else if (!port.equals(other.port))
+ return false;
+ if( queueId != other.queueId)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((port == null) ? 0 : port.hashCode());
+ result = prime * (int) (queueId ^ (queueId >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionExperimenterVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionExperimenterVer10.java
new file mode 100644
index 0000000..e0b1bf2
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionExperimenterVer10.java
@@ -0,0 +1,63 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFActionExperimenterVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 8;
+
+
+ public final static OFActionExperimenterVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFActionExperimenter> {
+ @Override
+ public OFActionExperimenter readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property type == 65535
+ short type = bb.readShort();
+ if(type != (short) 0xffff)
+ throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ int experimenter = bb.readInt();
+ bb.readerIndex(start);
+ switch(experimenter) {
+ case 0x5c16c7:
+ // discriminator value 0x5c16c7L=0x5c16c7L for class OFActionBsnVer10
+ return OFActionBsnVer10.READER.readFrom(bb);
+ case 0x2320:
+ // discriminator value 0x2320L=0x2320L for class OFActionNiciraVer10
+ return OFActionNiciraVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator experimenter of class OFActionExperimenterVer10: " + experimenter);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionIdsVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionIdsVer10.java
new file mode 100644
index 0000000..cde6599
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionIdsVer10.java
@@ -0,0 +1,123 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+
+
+public class OFActionIdsVer10 implements OFActionIds {
+ public final static OFActionIdsVer10 INSTANCE = new OFActionIdsVer10();
+
+
+
+
+ public OFActionIdBsnChecksum bsnChecksum() {
+ throw new UnsupportedOperationException("OFActionIdBsnChecksum not supported in version 1.0");
+ }
+
+ public OFActionIdBsnMirror bsnMirror() {
+ throw new UnsupportedOperationException("OFActionIdBsnMirror not supported in version 1.0");
+ }
+
+ public OFActionIdBsnSetTunnelDst bsnSetTunnelDst() {
+ throw new UnsupportedOperationException("OFActionIdBsnSetTunnelDst not supported in version 1.0");
+ }
+
+ public OFActionIdCopyTtlIn copyTtlIn() {
+ throw new UnsupportedOperationException("OFActionIdCopyTtlIn not supported in version 1.0");
+ }
+
+ public OFActionIdCopyTtlOut copyTtlOut() {
+ throw new UnsupportedOperationException("OFActionIdCopyTtlOut not supported in version 1.0");
+ }
+
+ public OFActionIdDecMplsTtl decMplsTtl() {
+ throw new UnsupportedOperationException("OFActionIdDecMplsTtl not supported in version 1.0");
+ }
+
+ public OFActionIdDecNwTtl decNwTtl() {
+ throw new UnsupportedOperationException("OFActionIdDecNwTtl not supported in version 1.0");
+ }
+
+ public OFActionIdGroup group() {
+ throw new UnsupportedOperationException("OFActionIdGroup not supported in version 1.0");
+ }
+
+ public OFActionIdNiciraDecTtl niciraDecTtl() {
+ throw new UnsupportedOperationException("OFActionIdNiciraDecTtl not supported in version 1.0");
+ }
+
+ public OFActionIdOutput output() {
+ throw new UnsupportedOperationException("OFActionIdOutput not supported in version 1.0");
+ }
+
+ public OFActionIdPopMpls popMpls() {
+ throw new UnsupportedOperationException("OFActionIdPopMpls not supported in version 1.0");
+ }
+
+ public OFActionIdPopPbb popPbb() {
+ throw new UnsupportedOperationException("OFActionIdPopPbb not supported in version 1.0");
+ }
+
+ public OFActionIdPopVlan popVlan() {
+ throw new UnsupportedOperationException("OFActionIdPopVlan not supported in version 1.0");
+ }
+
+ public OFActionIdPushMpls pushMpls() {
+ throw new UnsupportedOperationException("OFActionIdPushMpls not supported in version 1.0");
+ }
+
+ public OFActionIdPushPbb pushPbb() {
+ throw new UnsupportedOperationException("OFActionIdPushPbb not supported in version 1.0");
+ }
+
+ public OFActionIdPushVlan pushVlan() {
+ throw new UnsupportedOperationException("OFActionIdPushVlan not supported in version 1.0");
+ }
+
+ public OFActionIdSetField setField() {
+ throw new UnsupportedOperationException("OFActionIdSetField not supported in version 1.0");
+ }
+
+ public OFActionIdSetMplsTtl setMplsTtl() {
+ throw new UnsupportedOperationException("OFActionIdSetMplsTtl not supported in version 1.0");
+ }
+
+ public OFActionIdSetNwTtl setNwTtl() {
+ throw new UnsupportedOperationException("OFActionIdSetNwTtl not supported in version 1.0");
+ }
+
+ public OFActionIdSetQueue setQueue() {
+ throw new UnsupportedOperationException("OFActionIdSetQueue not supported in version 1.0");
+ }
+
+ public OFMessageReader<OFActionId> getReader() {
+ throw new UnsupportedOperationException("Reader<OFActionId> not supported in version 1.0");
+ }
+
+
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraDecTtlVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraDecTtlVer10.java
new file mode 100644
index 0000000..c72dcc6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraDecTtlVer10.java
@@ -0,0 +1,192 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionNiciraDecTtlVer10 implements OFActionNiciraDecTtl {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionNiciraDecTtlVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+
+ // OF message fields
+//
+ // Immutable default instance
+ final static OFActionNiciraDecTtlVer10 DEFAULT = new OFActionNiciraDecTtlVer10(
+
+ );
+
+ final static OFActionNiciraDecTtlVer10 INSTANCE = new OFActionNiciraDecTtlVer10();
+ // private empty constructor - use shared instance!
+ private OFActionNiciraDecTtlVer10() {
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x2320L;
+ }
+
+ @Override
+ public int getSubtype() {
+ return 0x12;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ // no data members - do not support builder
+ public OFActionNiciraDecTtl.Builder createBuilder() {
+ throw new UnsupportedOperationException("OFActionNiciraDecTtlVer10 has no mutable properties -- builder unneeded");
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionNiciraDecTtl> {
+ @Override
+ public OFActionNiciraDecTtl readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 65535
+ short type = bb.readShort();
+ if(type != (short) 0xffff)
+ throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ // fixed value property experimenter == 0x2320L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x2320)
+ throw new OFParseError("Wrong experimenter: Expected=0x2320L(0x2320L), got="+experimenter);
+ // fixed value property subtype == 0x12
+ short subtype = bb.readShort();
+ if(subtype != (short) 0x12)
+ throw new OFParseError("Wrong subtype: Expected=0x12(0x12), got="+subtype);
+ // pad: 2 bytes
+ bb.skipBytes(2);
+ // pad: 4 bytes
+ bb.skipBytes(4);
+
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - returning shared instance={}", INSTANCE);
+ return INSTANCE;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionNiciraDecTtlVer10Funnel FUNNEL = new OFActionNiciraDecTtlVer10Funnel();
+ static class OFActionNiciraDecTtlVer10Funnel implements Funnel<OFActionNiciraDecTtlVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionNiciraDecTtlVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 65535
+ sink.putShort((short) 0xffff);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ // fixed value property experimenter = 0x2320L
+ sink.putInt(0x2320);
+ // fixed value property subtype = 0x12
+ sink.putShort((short) 0x12);
+ // skip pad (2 bytes)
+ // skip pad (4 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionNiciraDecTtlVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionNiciraDecTtlVer10 message) {
+ // fixed value property type = 65535
+ bb.writeShort((short) 0xffff);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ // fixed value property experimenter = 0x2320L
+ bb.writeInt(0x2320);
+ // fixed value property subtype = 0x12
+ bb.writeShort((short) 0x12);
+ // pad: 2 bytes
+ bb.writeZero(2);
+ // pad: 4 bytes
+ bb.writeZero(4);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionNiciraDecTtlVer10(");
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = 1;
+
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraVer10.java
new file mode 100644
index 0000000..2023afa
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionNiciraVer10.java
@@ -0,0 +1,64 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFActionNiciraVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 16;
+
+
+ public final static OFActionNiciraVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFActionNicira> {
+ @Override
+ public OFActionNicira readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property type == 65535
+ short type = bb.readShort();
+ if(type != (short) 0xffff)
+ throw new OFParseError("Wrong type: Expected=OFActionType.EXPERIMENTER(65535), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ // fixed value property experimenter == 0x2320L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x2320)
+ throw new OFParseError("Wrong experimenter: Expected=0x2320L(0x2320L), got="+experimenter);
+ short subtype = bb.readShort();
+ bb.readerIndex(start);
+ switch(subtype) {
+ case (short) 0x12:
+ // discriminator value 0x12=0x12 for class OFActionNiciraDecTtlVer10
+ return OFActionNiciraDecTtlVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator subtype of class OFActionNiciraVer10: " + subtype);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionOutputVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionOutputVer10.java
new file mode 100644
index 0000000..e224bc8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionOutputVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionOutputVer10 implements OFActionOutput {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionOutputVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static OFPort DEFAULT_PORT = OFPort.ANY;
+ private final static int DEFAULT_MAX_LEN = 0x0;
+
+ // OF message fields
+ private final OFPort port;
+ private final int maxLen;
+//
+ // Immutable default instance
+ final static OFActionOutputVer10 DEFAULT = new OFActionOutputVer10(
+ DEFAULT_PORT, DEFAULT_MAX_LEN
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionOutputVer10(OFPort port, int maxLen) {
+ this.port = port;
+ this.maxLen = maxLen;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.OUTPUT;
+ }
+
+ @Override
+ public OFPort getPort() {
+ return port;
+ }
+
+ @Override
+ public int getMaxLen() {
+ return maxLen;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionOutput.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionOutput.Builder {
+ final OFActionOutputVer10 parentMessage;
+
+ // OF message fields
+ private boolean portSet;
+ private OFPort port;
+ private boolean maxLenSet;
+ private int maxLen;
+
+ BuilderWithParent(OFActionOutputVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.OUTPUT;
+ }
+
+ @Override
+ public OFPort getPort() {
+ return port;
+ }
+
+ @Override
+ public OFActionOutput.Builder setPort(OFPort port) {
+ this.port = port;
+ this.portSet = true;
+ return this;
+ }
+ @Override
+ public int getMaxLen() {
+ return maxLen;
+ }
+
+ @Override
+ public OFActionOutput.Builder setMaxLen(int maxLen) {
+ this.maxLen = maxLen;
+ this.maxLenSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionOutput build() {
+ OFPort port = this.portSet ? this.port : parentMessage.port;
+ if(port == null)
+ throw new NullPointerException("Property port must not be null");
+ int maxLen = this.maxLenSet ? this.maxLen : parentMessage.maxLen;
+
+ //
+ return new OFActionOutputVer10(
+ port,
+ maxLen
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionOutput.Builder {
+ // OF message fields
+ private boolean portSet;
+ private OFPort port;
+ private boolean maxLenSet;
+ private int maxLen;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.OUTPUT;
+ }
+
+ @Override
+ public OFPort getPort() {
+ return port;
+ }
+
+ @Override
+ public OFActionOutput.Builder setPort(OFPort port) {
+ this.port = port;
+ this.portSet = true;
+ return this;
+ }
+ @Override
+ public int getMaxLen() {
+ return maxLen;
+ }
+
+ @Override
+ public OFActionOutput.Builder setMaxLen(int maxLen) {
+ this.maxLen = maxLen;
+ this.maxLenSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionOutput build() {
+ OFPort port = this.portSet ? this.port : DEFAULT_PORT;
+ if(port == null)
+ throw new NullPointerException("Property port must not be null");
+ int maxLen = this.maxLenSet ? this.maxLen : DEFAULT_MAX_LEN;
+
+
+ return new OFActionOutputVer10(
+ port,
+ maxLen
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionOutput> {
+ @Override
+ public OFActionOutput readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 0
+ short type = bb.readShort();
+ if(type != (short) 0x0)
+ throw new OFParseError("Wrong type: Expected=OFActionType.OUTPUT(0), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ OFPort port = OFPort.read2Bytes(bb);
+ int maxLen = U16.f(bb.readShort());
+
+ OFActionOutputVer10 actionOutputVer10 = new OFActionOutputVer10(
+ port,
+ maxLen
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionOutputVer10);
+ return actionOutputVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionOutputVer10Funnel FUNNEL = new OFActionOutputVer10Funnel();
+ static class OFActionOutputVer10Funnel implements Funnel<OFActionOutputVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionOutputVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 0
+ sink.putShort((short) 0x0);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ message.port.putTo(sink);
+ sink.putInt(message.maxLen);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionOutputVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionOutputVer10 message) {
+ // fixed value property type = 0
+ bb.writeShort((short) 0x0);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ message.port.write2Bytes(bb);
+ bb.writeShort(U16.t(message.maxLen));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionOutputVer10(");
+ b.append("port=").append(port);
+ b.append(", ");
+ b.append("maxLen=").append(maxLen);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionOutputVer10 other = (OFActionOutputVer10) obj;
+
+ if (port == null) {
+ if (other.port != null)
+ return false;
+ } else if (!port.equals(other.port))
+ return false;
+ if( maxLen != other.maxLen)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((port == null) ? 0 : port.hashCode());
+ result = prime * result + maxLen;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlDstVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlDstVer10.java
new file mode 100644
index 0000000..348da90
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlDstVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetDlDstVer10 implements OFActionSetDlDst {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetDlDstVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static MacAddress DEFAULT_DL_ADDR = MacAddress.NONE;
+
+ // OF message fields
+ private final MacAddress dlAddr;
+//
+ // Immutable default instance
+ final static OFActionSetDlDstVer10 DEFAULT = new OFActionSetDlDstVer10(
+ DEFAULT_DL_ADDR
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetDlDstVer10(MacAddress dlAddr) {
+ this.dlAddr = dlAddr;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_DL_DST;
+ }
+
+ @Override
+ public MacAddress getDlAddr() {
+ return dlAddr;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetDlDst.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetDlDst.Builder {
+ final OFActionSetDlDstVer10 parentMessage;
+
+ // OF message fields
+ private boolean dlAddrSet;
+ private MacAddress dlAddr;
+
+ BuilderWithParent(OFActionSetDlDstVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_DL_DST;
+ }
+
+ @Override
+ public MacAddress getDlAddr() {
+ return dlAddr;
+ }
+
+ @Override
+ public OFActionSetDlDst.Builder setDlAddr(MacAddress dlAddr) {
+ this.dlAddr = dlAddr;
+ this.dlAddrSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetDlDst build() {
+ MacAddress dlAddr = this.dlAddrSet ? this.dlAddr : parentMessage.dlAddr;
+ if(dlAddr == null)
+ throw new NullPointerException("Property dlAddr must not be null");
+
+ //
+ return new OFActionSetDlDstVer10(
+ dlAddr
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetDlDst.Builder {
+ // OF message fields
+ private boolean dlAddrSet;
+ private MacAddress dlAddr;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_DL_DST;
+ }
+
+ @Override
+ public MacAddress getDlAddr() {
+ return dlAddr;
+ }
+
+ @Override
+ public OFActionSetDlDst.Builder setDlAddr(MacAddress dlAddr) {
+ this.dlAddr = dlAddr;
+ this.dlAddrSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetDlDst build() {
+ MacAddress dlAddr = this.dlAddrSet ? this.dlAddr : DEFAULT_DL_ADDR;
+ if(dlAddr == null)
+ throw new NullPointerException("Property dlAddr must not be null");
+
+
+ return new OFActionSetDlDstVer10(
+ dlAddr
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetDlDst> {
+ @Override
+ public OFActionSetDlDst readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 5
+ short type = bb.readShort();
+ if(type != (short) 0x5)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_DL_DST(5), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ MacAddress dlAddr = MacAddress.read6Bytes(bb);
+ // pad: 6 bytes
+ bb.skipBytes(6);
+
+ OFActionSetDlDstVer10 actionSetDlDstVer10 = new OFActionSetDlDstVer10(
+ dlAddr
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetDlDstVer10);
+ return actionSetDlDstVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetDlDstVer10Funnel FUNNEL = new OFActionSetDlDstVer10Funnel();
+ static class OFActionSetDlDstVer10Funnel implements Funnel<OFActionSetDlDstVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetDlDstVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 5
+ sink.putShort((short) 0x5);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ message.dlAddr.putTo(sink);
+ // skip pad (6 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetDlDstVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetDlDstVer10 message) {
+ // fixed value property type = 5
+ bb.writeShort((short) 0x5);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ message.dlAddr.write6Bytes(bb);
+ // pad: 6 bytes
+ bb.writeZero(6);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetDlDstVer10(");
+ b.append("dlAddr=").append(dlAddr);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetDlDstVer10 other = (OFActionSetDlDstVer10) obj;
+
+ if (dlAddr == null) {
+ if (other.dlAddr != null)
+ return false;
+ } else if (!dlAddr.equals(other.dlAddr))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((dlAddr == null) ? 0 : dlAddr.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlSrcVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlSrcVer10.java
new file mode 100644
index 0000000..cc88013
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetDlSrcVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetDlSrcVer10 implements OFActionSetDlSrc {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetDlSrcVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static MacAddress DEFAULT_DL_ADDR = MacAddress.NONE;
+
+ // OF message fields
+ private final MacAddress dlAddr;
+//
+ // Immutable default instance
+ final static OFActionSetDlSrcVer10 DEFAULT = new OFActionSetDlSrcVer10(
+ DEFAULT_DL_ADDR
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetDlSrcVer10(MacAddress dlAddr) {
+ this.dlAddr = dlAddr;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_DL_SRC;
+ }
+
+ @Override
+ public MacAddress getDlAddr() {
+ return dlAddr;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetDlSrc.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetDlSrc.Builder {
+ final OFActionSetDlSrcVer10 parentMessage;
+
+ // OF message fields
+ private boolean dlAddrSet;
+ private MacAddress dlAddr;
+
+ BuilderWithParent(OFActionSetDlSrcVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_DL_SRC;
+ }
+
+ @Override
+ public MacAddress getDlAddr() {
+ return dlAddr;
+ }
+
+ @Override
+ public OFActionSetDlSrc.Builder setDlAddr(MacAddress dlAddr) {
+ this.dlAddr = dlAddr;
+ this.dlAddrSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetDlSrc build() {
+ MacAddress dlAddr = this.dlAddrSet ? this.dlAddr : parentMessage.dlAddr;
+ if(dlAddr == null)
+ throw new NullPointerException("Property dlAddr must not be null");
+
+ //
+ return new OFActionSetDlSrcVer10(
+ dlAddr
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetDlSrc.Builder {
+ // OF message fields
+ private boolean dlAddrSet;
+ private MacAddress dlAddr;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_DL_SRC;
+ }
+
+ @Override
+ public MacAddress getDlAddr() {
+ return dlAddr;
+ }
+
+ @Override
+ public OFActionSetDlSrc.Builder setDlAddr(MacAddress dlAddr) {
+ this.dlAddr = dlAddr;
+ this.dlAddrSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetDlSrc build() {
+ MacAddress dlAddr = this.dlAddrSet ? this.dlAddr : DEFAULT_DL_ADDR;
+ if(dlAddr == null)
+ throw new NullPointerException("Property dlAddr must not be null");
+
+
+ return new OFActionSetDlSrcVer10(
+ dlAddr
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetDlSrc> {
+ @Override
+ public OFActionSetDlSrc readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 4
+ short type = bb.readShort();
+ if(type != (short) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_DL_SRC(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ MacAddress dlAddr = MacAddress.read6Bytes(bb);
+ // pad: 6 bytes
+ bb.skipBytes(6);
+
+ OFActionSetDlSrcVer10 actionSetDlSrcVer10 = new OFActionSetDlSrcVer10(
+ dlAddr
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetDlSrcVer10);
+ return actionSetDlSrcVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetDlSrcVer10Funnel FUNNEL = new OFActionSetDlSrcVer10Funnel();
+ static class OFActionSetDlSrcVer10Funnel implements Funnel<OFActionSetDlSrcVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetDlSrcVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 4
+ sink.putShort((short) 0x4);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ message.dlAddr.putTo(sink);
+ // skip pad (6 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetDlSrcVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetDlSrcVer10 message) {
+ // fixed value property type = 4
+ bb.writeShort((short) 0x4);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ message.dlAddr.write6Bytes(bb);
+ // pad: 6 bytes
+ bb.writeZero(6);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetDlSrcVer10(");
+ b.append("dlAddr=").append(dlAddr);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetDlSrcVer10 other = (OFActionSetDlSrcVer10) obj;
+
+ if (dlAddr == null) {
+ if (other.dlAddr != null)
+ return false;
+ } else if (!dlAddr.equals(other.dlAddr))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((dlAddr == null) ? 0 : dlAddr.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwDstVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwDstVer10.java
new file mode 100644
index 0000000..f7a4d27
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwDstVer10.java
@@ -0,0 +1,267 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetNwDstVer10 implements OFActionSetNwDst {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetNwDstVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static IPv4Address DEFAULT_NW_ADDR = IPv4Address.NONE;
+
+ // OF message fields
+ private final IPv4Address nwAddr;
+//
+ // Immutable default instance
+ final static OFActionSetNwDstVer10 DEFAULT = new OFActionSetNwDstVer10(
+ DEFAULT_NW_ADDR
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetNwDstVer10(IPv4Address nwAddr) {
+ this.nwAddr = nwAddr;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_DST;
+ }
+
+ @Override
+ public IPv4Address getNwAddr() {
+ return nwAddr;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetNwDst.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetNwDst.Builder {
+ final OFActionSetNwDstVer10 parentMessage;
+
+ // OF message fields
+ private boolean nwAddrSet;
+ private IPv4Address nwAddr;
+
+ BuilderWithParent(OFActionSetNwDstVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_DST;
+ }
+
+ @Override
+ public IPv4Address getNwAddr() {
+ return nwAddr;
+ }
+
+ @Override
+ public OFActionSetNwDst.Builder setNwAddr(IPv4Address nwAddr) {
+ this.nwAddr = nwAddr;
+ this.nwAddrSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetNwDst build() {
+ IPv4Address nwAddr = this.nwAddrSet ? this.nwAddr : parentMessage.nwAddr;
+ if(nwAddr == null)
+ throw new NullPointerException("Property nwAddr must not be null");
+
+ //
+ return new OFActionSetNwDstVer10(
+ nwAddr
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetNwDst.Builder {
+ // OF message fields
+ private boolean nwAddrSet;
+ private IPv4Address nwAddr;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_DST;
+ }
+
+ @Override
+ public IPv4Address getNwAddr() {
+ return nwAddr;
+ }
+
+ @Override
+ public OFActionSetNwDst.Builder setNwAddr(IPv4Address nwAddr) {
+ this.nwAddr = nwAddr;
+ this.nwAddrSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetNwDst build() {
+ IPv4Address nwAddr = this.nwAddrSet ? this.nwAddr : DEFAULT_NW_ADDR;
+ if(nwAddr == null)
+ throw new NullPointerException("Property nwAddr must not be null");
+
+
+ return new OFActionSetNwDstVer10(
+ nwAddr
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetNwDst> {
+ @Override
+ public OFActionSetNwDst readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 7
+ short type = bb.readShort();
+ if(type != (short) 0x7)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_NW_DST(7), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ IPv4Address nwAddr = IPv4Address.read4Bytes(bb);
+
+ OFActionSetNwDstVer10 actionSetNwDstVer10 = new OFActionSetNwDstVer10(
+ nwAddr
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetNwDstVer10);
+ return actionSetNwDstVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetNwDstVer10Funnel FUNNEL = new OFActionSetNwDstVer10Funnel();
+ static class OFActionSetNwDstVer10Funnel implements Funnel<OFActionSetNwDstVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetNwDstVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 7
+ sink.putShort((short) 0x7);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ message.nwAddr.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetNwDstVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetNwDstVer10 message) {
+ // fixed value property type = 7
+ bb.writeShort((short) 0x7);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ message.nwAddr.write4Bytes(bb);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetNwDstVer10(");
+ b.append("nwAddr=").append(nwAddr);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetNwDstVer10 other = (OFActionSetNwDstVer10) obj;
+
+ if (nwAddr == null) {
+ if (other.nwAddr != null)
+ return false;
+ } else if (!nwAddr.equals(other.nwAddr))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((nwAddr == null) ? 0 : nwAddr.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwSrcVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwSrcVer10.java
new file mode 100644
index 0000000..4d30837
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwSrcVer10.java
@@ -0,0 +1,267 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetNwSrcVer10 implements OFActionSetNwSrc {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetNwSrcVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static IPv4Address DEFAULT_NW_ADDR = IPv4Address.NONE;
+
+ // OF message fields
+ private final IPv4Address nwAddr;
+//
+ // Immutable default instance
+ final static OFActionSetNwSrcVer10 DEFAULT = new OFActionSetNwSrcVer10(
+ DEFAULT_NW_ADDR
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetNwSrcVer10(IPv4Address nwAddr) {
+ this.nwAddr = nwAddr;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_SRC;
+ }
+
+ @Override
+ public IPv4Address getNwAddr() {
+ return nwAddr;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetNwSrc.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetNwSrc.Builder {
+ final OFActionSetNwSrcVer10 parentMessage;
+
+ // OF message fields
+ private boolean nwAddrSet;
+ private IPv4Address nwAddr;
+
+ BuilderWithParent(OFActionSetNwSrcVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_SRC;
+ }
+
+ @Override
+ public IPv4Address getNwAddr() {
+ return nwAddr;
+ }
+
+ @Override
+ public OFActionSetNwSrc.Builder setNwAddr(IPv4Address nwAddr) {
+ this.nwAddr = nwAddr;
+ this.nwAddrSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetNwSrc build() {
+ IPv4Address nwAddr = this.nwAddrSet ? this.nwAddr : parentMessage.nwAddr;
+ if(nwAddr == null)
+ throw new NullPointerException("Property nwAddr must not be null");
+
+ //
+ return new OFActionSetNwSrcVer10(
+ nwAddr
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetNwSrc.Builder {
+ // OF message fields
+ private boolean nwAddrSet;
+ private IPv4Address nwAddr;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_SRC;
+ }
+
+ @Override
+ public IPv4Address getNwAddr() {
+ return nwAddr;
+ }
+
+ @Override
+ public OFActionSetNwSrc.Builder setNwAddr(IPv4Address nwAddr) {
+ this.nwAddr = nwAddr;
+ this.nwAddrSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetNwSrc build() {
+ IPv4Address nwAddr = this.nwAddrSet ? this.nwAddr : DEFAULT_NW_ADDR;
+ if(nwAddr == null)
+ throw new NullPointerException("Property nwAddr must not be null");
+
+
+ return new OFActionSetNwSrcVer10(
+ nwAddr
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetNwSrc> {
+ @Override
+ public OFActionSetNwSrc readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 6
+ short type = bb.readShort();
+ if(type != (short) 0x6)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_NW_SRC(6), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ IPv4Address nwAddr = IPv4Address.read4Bytes(bb);
+
+ OFActionSetNwSrcVer10 actionSetNwSrcVer10 = new OFActionSetNwSrcVer10(
+ nwAddr
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetNwSrcVer10);
+ return actionSetNwSrcVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetNwSrcVer10Funnel FUNNEL = new OFActionSetNwSrcVer10Funnel();
+ static class OFActionSetNwSrcVer10Funnel implements Funnel<OFActionSetNwSrcVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetNwSrcVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 6
+ sink.putShort((short) 0x6);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ message.nwAddr.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetNwSrcVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetNwSrcVer10 message) {
+ // fixed value property type = 6
+ bb.writeShort((short) 0x6);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ message.nwAddr.write4Bytes(bb);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetNwSrcVer10(");
+ b.append("nwAddr=").append(nwAddr);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetNwSrcVer10 other = (OFActionSetNwSrcVer10) obj;
+
+ if (nwAddr == null) {
+ if (other.nwAddr != null)
+ return false;
+ } else if (!nwAddr.equals(other.nwAddr))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((nwAddr == null) ? 0 : nwAddr.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwTosVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwTosVer10.java
new file mode 100644
index 0000000..43493bb
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetNwTosVer10.java
@@ -0,0 +1,265 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetNwTosVer10 implements OFActionSetNwTos {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetNwTosVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static short DEFAULT_NW_TOS = (short) 0x0;
+
+ // OF message fields
+ private final short nwTos;
+//
+ // Immutable default instance
+ final static OFActionSetNwTosVer10 DEFAULT = new OFActionSetNwTosVer10(
+ DEFAULT_NW_TOS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetNwTosVer10(short nwTos) {
+ this.nwTos = nwTos;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_TOS;
+ }
+
+ @Override
+ public short getNwTos() {
+ return nwTos;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetNwTos.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetNwTos.Builder {
+ final OFActionSetNwTosVer10 parentMessage;
+
+ // OF message fields
+ private boolean nwTosSet;
+ private short nwTos;
+
+ BuilderWithParent(OFActionSetNwTosVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_TOS;
+ }
+
+ @Override
+ public short getNwTos() {
+ return nwTos;
+ }
+
+ @Override
+ public OFActionSetNwTos.Builder setNwTos(short nwTos) {
+ this.nwTos = nwTos;
+ this.nwTosSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetNwTos build() {
+ short nwTos = this.nwTosSet ? this.nwTos : parentMessage.nwTos;
+
+ //
+ return new OFActionSetNwTosVer10(
+ nwTos
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetNwTos.Builder {
+ // OF message fields
+ private boolean nwTosSet;
+ private short nwTos;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_NW_TOS;
+ }
+
+ @Override
+ public short getNwTos() {
+ return nwTos;
+ }
+
+ @Override
+ public OFActionSetNwTos.Builder setNwTos(short nwTos) {
+ this.nwTos = nwTos;
+ this.nwTosSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetNwTos build() {
+ short nwTos = this.nwTosSet ? this.nwTos : DEFAULT_NW_TOS;
+
+
+ return new OFActionSetNwTosVer10(
+ nwTos
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetNwTos> {
+ @Override
+ public OFActionSetNwTos readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 8
+ short type = bb.readShort();
+ if(type != (short) 0x8)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_NW_TOS(8), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ short nwTos = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+
+ OFActionSetNwTosVer10 actionSetNwTosVer10 = new OFActionSetNwTosVer10(
+ nwTos
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetNwTosVer10);
+ return actionSetNwTosVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetNwTosVer10Funnel FUNNEL = new OFActionSetNwTosVer10Funnel();
+ static class OFActionSetNwTosVer10Funnel implements Funnel<OFActionSetNwTosVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetNwTosVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 8
+ sink.putShort((short) 0x8);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ sink.putShort(message.nwTos);
+ // skip pad (3 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetNwTosVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetNwTosVer10 message) {
+ // fixed value property type = 8
+ bb.writeShort((short) 0x8);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ bb.writeByte(U8.t(message.nwTos));
+ // pad: 3 bytes
+ bb.writeZero(3);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetNwTosVer10(");
+ b.append("nwTos=").append(nwTos);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetNwTosVer10 other = (OFActionSetNwTosVer10) obj;
+
+ if( nwTos != other.nwTos)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + nwTos;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpDstVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpDstVer10.java
new file mode 100644
index 0000000..822c484
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpDstVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetTpDstVer10 implements OFActionSetTpDst {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetTpDstVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static TransportPort DEFAULT_TP_PORT = TransportPort.NONE;
+
+ // OF message fields
+ private final TransportPort tpPort;
+//
+ // Immutable default instance
+ final static OFActionSetTpDstVer10 DEFAULT = new OFActionSetTpDstVer10(
+ DEFAULT_TP_PORT
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetTpDstVer10(TransportPort tpPort) {
+ this.tpPort = tpPort;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_TP_DST;
+ }
+
+ @Override
+ public TransportPort getTpPort() {
+ return tpPort;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetTpDst.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetTpDst.Builder {
+ final OFActionSetTpDstVer10 parentMessage;
+
+ // OF message fields
+ private boolean tpPortSet;
+ private TransportPort tpPort;
+
+ BuilderWithParent(OFActionSetTpDstVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_TP_DST;
+ }
+
+ @Override
+ public TransportPort getTpPort() {
+ return tpPort;
+ }
+
+ @Override
+ public OFActionSetTpDst.Builder setTpPort(TransportPort tpPort) {
+ this.tpPort = tpPort;
+ this.tpPortSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetTpDst build() {
+ TransportPort tpPort = this.tpPortSet ? this.tpPort : parentMessage.tpPort;
+ if(tpPort == null)
+ throw new NullPointerException("Property tpPort must not be null");
+
+ //
+ return new OFActionSetTpDstVer10(
+ tpPort
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetTpDst.Builder {
+ // OF message fields
+ private boolean tpPortSet;
+ private TransportPort tpPort;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_TP_DST;
+ }
+
+ @Override
+ public TransportPort getTpPort() {
+ return tpPort;
+ }
+
+ @Override
+ public OFActionSetTpDst.Builder setTpPort(TransportPort tpPort) {
+ this.tpPort = tpPort;
+ this.tpPortSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetTpDst build() {
+ TransportPort tpPort = this.tpPortSet ? this.tpPort : DEFAULT_TP_PORT;
+ if(tpPort == null)
+ throw new NullPointerException("Property tpPort must not be null");
+
+
+ return new OFActionSetTpDstVer10(
+ tpPort
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetTpDst> {
+ @Override
+ public OFActionSetTpDst readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 10
+ short type = bb.readShort();
+ if(type != (short) 0xa)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_TP_DST(10), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ TransportPort tpPort = TransportPort.read2Bytes(bb);
+ // pad: 2 bytes
+ bb.skipBytes(2);
+
+ OFActionSetTpDstVer10 actionSetTpDstVer10 = new OFActionSetTpDstVer10(
+ tpPort
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetTpDstVer10);
+ return actionSetTpDstVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetTpDstVer10Funnel FUNNEL = new OFActionSetTpDstVer10Funnel();
+ static class OFActionSetTpDstVer10Funnel implements Funnel<OFActionSetTpDstVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetTpDstVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 10
+ sink.putShort((short) 0xa);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ message.tpPort.putTo(sink);
+ // skip pad (2 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetTpDstVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetTpDstVer10 message) {
+ // fixed value property type = 10
+ bb.writeShort((short) 0xa);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ message.tpPort.write2Bytes(bb);
+ // pad: 2 bytes
+ bb.writeZero(2);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetTpDstVer10(");
+ b.append("tpPort=").append(tpPort);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetTpDstVer10 other = (OFActionSetTpDstVer10) obj;
+
+ if (tpPort == null) {
+ if (other.tpPort != null)
+ return false;
+ } else if (!tpPort.equals(other.tpPort))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((tpPort == null) ? 0 : tpPort.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpSrcVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpSrcVer10.java
new file mode 100644
index 0000000..d69dfb8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetTpSrcVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetTpSrcVer10 implements OFActionSetTpSrc {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetTpSrcVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static TransportPort DEFAULT_TP_PORT = TransportPort.NONE;
+
+ // OF message fields
+ private final TransportPort tpPort;
+//
+ // Immutable default instance
+ final static OFActionSetTpSrcVer10 DEFAULT = new OFActionSetTpSrcVer10(
+ DEFAULT_TP_PORT
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetTpSrcVer10(TransportPort tpPort) {
+ this.tpPort = tpPort;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_TP_SRC;
+ }
+
+ @Override
+ public TransportPort getTpPort() {
+ return tpPort;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetTpSrc.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetTpSrc.Builder {
+ final OFActionSetTpSrcVer10 parentMessage;
+
+ // OF message fields
+ private boolean tpPortSet;
+ private TransportPort tpPort;
+
+ BuilderWithParent(OFActionSetTpSrcVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_TP_SRC;
+ }
+
+ @Override
+ public TransportPort getTpPort() {
+ return tpPort;
+ }
+
+ @Override
+ public OFActionSetTpSrc.Builder setTpPort(TransportPort tpPort) {
+ this.tpPort = tpPort;
+ this.tpPortSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetTpSrc build() {
+ TransportPort tpPort = this.tpPortSet ? this.tpPort : parentMessage.tpPort;
+ if(tpPort == null)
+ throw new NullPointerException("Property tpPort must not be null");
+
+ //
+ return new OFActionSetTpSrcVer10(
+ tpPort
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetTpSrc.Builder {
+ // OF message fields
+ private boolean tpPortSet;
+ private TransportPort tpPort;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_TP_SRC;
+ }
+
+ @Override
+ public TransportPort getTpPort() {
+ return tpPort;
+ }
+
+ @Override
+ public OFActionSetTpSrc.Builder setTpPort(TransportPort tpPort) {
+ this.tpPort = tpPort;
+ this.tpPortSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetTpSrc build() {
+ TransportPort tpPort = this.tpPortSet ? this.tpPort : DEFAULT_TP_PORT;
+ if(tpPort == null)
+ throw new NullPointerException("Property tpPort must not be null");
+
+
+ return new OFActionSetTpSrcVer10(
+ tpPort
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetTpSrc> {
+ @Override
+ public OFActionSetTpSrc readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 9
+ short type = bb.readShort();
+ if(type != (short) 0x9)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_TP_SRC(9), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ TransportPort tpPort = TransportPort.read2Bytes(bb);
+ // pad: 2 bytes
+ bb.skipBytes(2);
+
+ OFActionSetTpSrcVer10 actionSetTpSrcVer10 = new OFActionSetTpSrcVer10(
+ tpPort
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetTpSrcVer10);
+ return actionSetTpSrcVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetTpSrcVer10Funnel FUNNEL = new OFActionSetTpSrcVer10Funnel();
+ static class OFActionSetTpSrcVer10Funnel implements Funnel<OFActionSetTpSrcVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetTpSrcVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 9
+ sink.putShort((short) 0x9);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ message.tpPort.putTo(sink);
+ // skip pad (2 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetTpSrcVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetTpSrcVer10 message) {
+ // fixed value property type = 9
+ bb.writeShort((short) 0x9);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ message.tpPort.write2Bytes(bb);
+ // pad: 2 bytes
+ bb.writeZero(2);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetTpSrcVer10(");
+ b.append("tpPort=").append(tpPort);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetTpSrcVer10 other = (OFActionSetTpSrcVer10) obj;
+
+ if (tpPort == null) {
+ if (other.tpPort != null)
+ return false;
+ } else if (!tpPort.equals(other.tpPort))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((tpPort == null) ? 0 : tpPort.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanPcpVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanPcpVer10.java
new file mode 100644
index 0000000..b4005e0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanPcpVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetVlanPcpVer10 implements OFActionSetVlanPcp {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetVlanPcpVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static VlanPcp DEFAULT_VLAN_PCP = VlanPcp.NONE;
+
+ // OF message fields
+ private final VlanPcp vlanPcp;
+//
+ // Immutable default instance
+ final static OFActionSetVlanPcpVer10 DEFAULT = new OFActionSetVlanPcpVer10(
+ DEFAULT_VLAN_PCP
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetVlanPcpVer10(VlanPcp vlanPcp) {
+ this.vlanPcp = vlanPcp;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_VLAN_PCP;
+ }
+
+ @Override
+ public VlanPcp getVlanPcp() {
+ return vlanPcp;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetVlanPcp.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetVlanPcp.Builder {
+ final OFActionSetVlanPcpVer10 parentMessage;
+
+ // OF message fields
+ private boolean vlanPcpSet;
+ private VlanPcp vlanPcp;
+
+ BuilderWithParent(OFActionSetVlanPcpVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_VLAN_PCP;
+ }
+
+ @Override
+ public VlanPcp getVlanPcp() {
+ return vlanPcp;
+ }
+
+ @Override
+ public OFActionSetVlanPcp.Builder setVlanPcp(VlanPcp vlanPcp) {
+ this.vlanPcp = vlanPcp;
+ this.vlanPcpSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetVlanPcp build() {
+ VlanPcp vlanPcp = this.vlanPcpSet ? this.vlanPcp : parentMessage.vlanPcp;
+ if(vlanPcp == null)
+ throw new NullPointerException("Property vlanPcp must not be null");
+
+ //
+ return new OFActionSetVlanPcpVer10(
+ vlanPcp
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetVlanPcp.Builder {
+ // OF message fields
+ private boolean vlanPcpSet;
+ private VlanPcp vlanPcp;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_VLAN_PCP;
+ }
+
+ @Override
+ public VlanPcp getVlanPcp() {
+ return vlanPcp;
+ }
+
+ @Override
+ public OFActionSetVlanPcp.Builder setVlanPcp(VlanPcp vlanPcp) {
+ this.vlanPcp = vlanPcp;
+ this.vlanPcpSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetVlanPcp build() {
+ VlanPcp vlanPcp = this.vlanPcpSet ? this.vlanPcp : DEFAULT_VLAN_PCP;
+ if(vlanPcp == null)
+ throw new NullPointerException("Property vlanPcp must not be null");
+
+
+ return new OFActionSetVlanPcpVer10(
+ vlanPcp
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetVlanPcp> {
+ @Override
+ public OFActionSetVlanPcp readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 2
+ short type = bb.readShort();
+ if(type != (short) 0x2)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_VLAN_PCP(2), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ VlanPcp vlanPcp = VlanPcp.readByte(bb);
+ // pad: 3 bytes
+ bb.skipBytes(3);
+
+ OFActionSetVlanPcpVer10 actionSetVlanPcpVer10 = new OFActionSetVlanPcpVer10(
+ vlanPcp
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetVlanPcpVer10);
+ return actionSetVlanPcpVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetVlanPcpVer10Funnel FUNNEL = new OFActionSetVlanPcpVer10Funnel();
+ static class OFActionSetVlanPcpVer10Funnel implements Funnel<OFActionSetVlanPcpVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetVlanPcpVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 2
+ sink.putShort((short) 0x2);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ message.vlanPcp.putTo(sink);
+ // skip pad (3 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetVlanPcpVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetVlanPcpVer10 message) {
+ // fixed value property type = 2
+ bb.writeShort((short) 0x2);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ message.vlanPcp.writeByte(bb);
+ // pad: 3 bytes
+ bb.writeZero(3);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetVlanPcpVer10(");
+ b.append("vlanPcp=").append(vlanPcp);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetVlanPcpVer10 other = (OFActionSetVlanPcpVer10) obj;
+
+ if (vlanPcp == null) {
+ if (other.vlanPcp != null)
+ return false;
+ } else if (!vlanPcp.equals(other.vlanPcp))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((vlanPcp == null) ? 0 : vlanPcp.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanVidVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanVidVer10.java
new file mode 100644
index 0000000..f63f283
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionSetVlanVidVer10.java
@@ -0,0 +1,272 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionSetVlanVidVer10 implements OFActionSetVlanVid {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionSetVlanVidVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static VlanVid DEFAULT_VLAN_VID = VlanVid.ZERO;
+
+ // OF message fields
+ private final VlanVid vlanVid;
+//
+ // Immutable default instance
+ final static OFActionSetVlanVidVer10 DEFAULT = new OFActionSetVlanVidVer10(
+ DEFAULT_VLAN_VID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFActionSetVlanVidVer10(VlanVid vlanVid) {
+ this.vlanVid = vlanVid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_VLAN_VID;
+ }
+
+ @Override
+ public VlanVid getVlanVid() {
+ return vlanVid;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFActionSetVlanVid.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFActionSetVlanVid.Builder {
+ final OFActionSetVlanVidVer10 parentMessage;
+
+ // OF message fields
+ private boolean vlanVidSet;
+ private VlanVid vlanVid;
+
+ BuilderWithParent(OFActionSetVlanVidVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_VLAN_VID;
+ }
+
+ @Override
+ public VlanVid getVlanVid() {
+ return vlanVid;
+ }
+
+ @Override
+ public OFActionSetVlanVid.Builder setVlanVid(VlanVid vlanVid) {
+ this.vlanVid = vlanVid;
+ this.vlanVidSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFActionSetVlanVid build() {
+ VlanVid vlanVid = this.vlanVidSet ? this.vlanVid : parentMessage.vlanVid;
+ if(vlanVid == null)
+ throw new NullPointerException("Property vlanVid must not be null");
+
+ //
+ return new OFActionSetVlanVidVer10(
+ vlanVid
+ );
+ }
+
+ }
+
+ static class Builder implements OFActionSetVlanVid.Builder {
+ // OF message fields
+ private boolean vlanVidSet;
+ private VlanVid vlanVid;
+
+ @Override
+ public OFActionType getType() {
+ return OFActionType.SET_VLAN_VID;
+ }
+
+ @Override
+ public VlanVid getVlanVid() {
+ return vlanVid;
+ }
+
+ @Override
+ public OFActionSetVlanVid.Builder setVlanVid(VlanVid vlanVid) {
+ this.vlanVid = vlanVid;
+ this.vlanVidSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFActionSetVlanVid build() {
+ VlanVid vlanVid = this.vlanVidSet ? this.vlanVid : DEFAULT_VLAN_VID;
+ if(vlanVid == null)
+ throw new NullPointerException("Property vlanVid must not be null");
+
+
+ return new OFActionSetVlanVidVer10(
+ vlanVid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionSetVlanVid> {
+ @Override
+ public OFActionSetVlanVid readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 1
+ short type = bb.readShort();
+ if(type != (short) 0x1)
+ throw new OFParseError("Wrong type: Expected=OFActionType.SET_VLAN_VID(1), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ VlanVid vlanVid = VlanVid.read2Bytes(bb);
+ // pad: 2 bytes
+ bb.skipBytes(2);
+
+ OFActionSetVlanVidVer10 actionSetVlanVidVer10 = new OFActionSetVlanVidVer10(
+ vlanVid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", actionSetVlanVidVer10);
+ return actionSetVlanVidVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionSetVlanVidVer10Funnel FUNNEL = new OFActionSetVlanVidVer10Funnel();
+ static class OFActionSetVlanVidVer10Funnel implements Funnel<OFActionSetVlanVidVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionSetVlanVidVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 1
+ sink.putShort((short) 0x1);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ message.vlanVid.putTo(sink);
+ // skip pad (2 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionSetVlanVidVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionSetVlanVidVer10 message) {
+ // fixed value property type = 1
+ bb.writeShort((short) 0x1);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ message.vlanVid.write2Bytes(bb);
+ // pad: 2 bytes
+ bb.writeZero(2);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionSetVlanVidVer10(");
+ b.append("vlanVid=").append(vlanVid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFActionSetVlanVidVer10 other = (OFActionSetVlanVidVer10) obj;
+
+ if (vlanVid == null) {
+ if (other.vlanVid != null)
+ return false;
+ } else if (!vlanVid.equals(other.vlanVid))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((vlanVid == null) ? 0 : vlanVid.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionStripVlanVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionStripVlanVer10.java
new file mode 100644
index 0000000..1314c1a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionStripVlanVer10.java
@@ -0,0 +1,161 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFActionStripVlanVer10 implements OFActionStripVlan {
+ private static final Logger logger = LoggerFactory.getLogger(OFActionStripVlanVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+
+ // OF message fields
+//
+ // Immutable default instance
+ final static OFActionStripVlanVer10 DEFAULT = new OFActionStripVlanVer10(
+
+ );
+
+ final static OFActionStripVlanVer10 INSTANCE = new OFActionStripVlanVer10();
+ // private empty constructor - use shared instance!
+ private OFActionStripVlanVer10() {
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFActionType getType() {
+ return OFActionType.STRIP_VLAN;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ // no data members - do not support builder
+ public OFActionStripVlan.Builder createBuilder() {
+ throw new UnsupportedOperationException("OFActionStripVlanVer10 has no mutable properties -- builder unneeded");
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFActionStripVlan> {
+ @Override
+ public OFActionStripVlan readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 3
+ short type = bb.readShort();
+ if(type != (short) 0x3)
+ throw new OFParseError("Wrong type: Expected=OFActionType.STRIP_VLAN(3), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ // pad: 4 bytes
+ bb.skipBytes(4);
+
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - returning shared instance={}", INSTANCE);
+ return INSTANCE;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFActionStripVlanVer10Funnel FUNNEL = new OFActionStripVlanVer10Funnel();
+ static class OFActionStripVlanVer10Funnel implements Funnel<OFActionStripVlanVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFActionStripVlanVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 3
+ sink.putShort((short) 0x3);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ // skip pad (4 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFActionStripVlanVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFActionStripVlanVer10 message) {
+ // fixed value property type = 3
+ bb.writeShort((short) 0x3);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ // pad: 4 bytes
+ bb.writeZero(4);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFActionStripVlanVer10(");
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = 1;
+
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionTypeSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionTypeSerializerVer10.java
new file mode 100644
index 0000000..e094760
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionTypeSerializerVer10.java
@@ -0,0 +1,129 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFActionType;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFActionTypeSerializerVer10 {
+
+ public final static short OUTPUT_VAL = (short) 0x0;
+ public final static short SET_VLAN_VID_VAL = (short) 0x1;
+ public final static short SET_VLAN_PCP_VAL = (short) 0x2;
+ public final static short STRIP_VLAN_VAL = (short) 0x3;
+ public final static short SET_DL_SRC_VAL = (short) 0x4;
+ public final static short SET_DL_DST_VAL = (short) 0x5;
+ public final static short SET_NW_SRC_VAL = (short) 0x6;
+ public final static short SET_NW_DST_VAL = (short) 0x7;
+ public final static short SET_NW_TOS_VAL = (short) 0x8;
+ public final static short SET_TP_SRC_VAL = (short) 0x9;
+ public final static short SET_TP_DST_VAL = (short) 0xa;
+ public final static short ENQUEUE_VAL = (short) 0xb;
+ public final static short EXPERIMENTER_VAL = (short) 0xffff;
+
+ public static OFActionType readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFActionType e) {
+ bb.writeShort(toWireValue(e));
+ }
+
+ public static void putTo(OFActionType e, PrimitiveSink sink) {
+ sink.putShort(toWireValue(e));
+ }
+
+ public static OFActionType ofWireValue(short val) {
+ switch(val) {
+ case OUTPUT_VAL:
+ return OFActionType.OUTPUT;
+ case SET_VLAN_VID_VAL:
+ return OFActionType.SET_VLAN_VID;
+ case SET_VLAN_PCP_VAL:
+ return OFActionType.SET_VLAN_PCP;
+ case STRIP_VLAN_VAL:
+ return OFActionType.STRIP_VLAN;
+ case SET_DL_SRC_VAL:
+ return OFActionType.SET_DL_SRC;
+ case SET_DL_DST_VAL:
+ return OFActionType.SET_DL_DST;
+ case SET_NW_SRC_VAL:
+ return OFActionType.SET_NW_SRC;
+ case SET_NW_DST_VAL:
+ return OFActionType.SET_NW_DST;
+ case SET_NW_TOS_VAL:
+ return OFActionType.SET_NW_TOS;
+ case SET_TP_SRC_VAL:
+ return OFActionType.SET_TP_SRC;
+ case SET_TP_DST_VAL:
+ return OFActionType.SET_TP_DST;
+ case ENQUEUE_VAL:
+ return OFActionType.ENQUEUE;
+ case EXPERIMENTER_VAL:
+ return OFActionType.EXPERIMENTER;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFActionType in version 1.0: " + val);
+ }
+ }
+
+
+ public static short toWireValue(OFActionType e) {
+ switch(e) {
+ case OUTPUT:
+ return OUTPUT_VAL;
+ case SET_VLAN_VID:
+ return SET_VLAN_VID_VAL;
+ case SET_VLAN_PCP:
+ return SET_VLAN_PCP_VAL;
+ case STRIP_VLAN:
+ return STRIP_VLAN_VAL;
+ case SET_DL_SRC:
+ return SET_DL_SRC_VAL;
+ case SET_DL_DST:
+ return SET_DL_DST_VAL;
+ case SET_NW_SRC:
+ return SET_NW_SRC_VAL;
+ case SET_NW_DST:
+ return SET_NW_DST_VAL;
+ case SET_NW_TOS:
+ return SET_NW_TOS_VAL;
+ case SET_TP_SRC:
+ return SET_TP_SRC_VAL;
+ case SET_TP_DST:
+ return SET_TP_DST_VAL;
+ case ENQUEUE:
+ return ENQUEUE_VAL;
+ case EXPERIMENTER:
+ return EXPERIMENTER_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFActionType in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionVer10.java
new file mode 100644
index 0000000..9917dcd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionVer10.java
@@ -0,0 +1,90 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+import java.util.Set;
+
+abstract class OFActionVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 8;
+
+
+ public final static OFActionVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFAction> {
+ @Override
+ public OFAction readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ short type = bb.readShort();
+ bb.readerIndex(start);
+ switch(type) {
+ case (short) 0xffff:
+ // discriminator value OFActionType.EXPERIMENTER=65535 for class OFActionExperimenterVer10
+ return OFActionExperimenterVer10.READER.readFrom(bb);
+ case (short) 0xb:
+ // discriminator value OFActionType.ENQUEUE=11 for class OFActionEnqueueVer10
+ return OFActionEnqueueVer10.READER.readFrom(bb);
+ case (short) 0x0:
+ // discriminator value OFActionType.OUTPUT=0 for class OFActionOutputVer10
+ return OFActionOutputVer10.READER.readFrom(bb);
+ case (short) 0x5:
+ // discriminator value OFActionType.SET_DL_DST=5 for class OFActionSetDlDstVer10
+ return OFActionSetDlDstVer10.READER.readFrom(bb);
+ case (short) 0x4:
+ // discriminator value OFActionType.SET_DL_SRC=4 for class OFActionSetDlSrcVer10
+ return OFActionSetDlSrcVer10.READER.readFrom(bb);
+ case (short) 0x7:
+ // discriminator value OFActionType.SET_NW_DST=7 for class OFActionSetNwDstVer10
+ return OFActionSetNwDstVer10.READER.readFrom(bb);
+ case (short) 0x6:
+ // discriminator value OFActionType.SET_NW_SRC=6 for class OFActionSetNwSrcVer10
+ return OFActionSetNwSrcVer10.READER.readFrom(bb);
+ case (short) 0x8:
+ // discriminator value OFActionType.SET_NW_TOS=8 for class OFActionSetNwTosVer10
+ return OFActionSetNwTosVer10.READER.readFrom(bb);
+ case (short) 0xa:
+ // discriminator value OFActionType.SET_TP_DST=10 for class OFActionSetTpDstVer10
+ return OFActionSetTpDstVer10.READER.readFrom(bb);
+ case (short) 0x9:
+ // discriminator value OFActionType.SET_TP_SRC=9 for class OFActionSetTpSrcVer10
+ return OFActionSetTpSrcVer10.READER.readFrom(bb);
+ case (short) 0x2:
+ // discriminator value OFActionType.SET_VLAN_PCP=2 for class OFActionSetVlanPcpVer10
+ return OFActionSetVlanPcpVer10.READER.readFrom(bb);
+ case (short) 0x1:
+ // discriminator value OFActionType.SET_VLAN_VID=1 for class OFActionSetVlanVidVer10
+ return OFActionSetVlanVidVer10.READER.readFrom(bb);
+ case (short) 0x3:
+ // discriminator value OFActionType.STRIP_VLAN=3 for class OFActionStripVlanVer10
+ return OFActionStripVlanVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator type of class OFActionVer10: " + type);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionsVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionsVer10.java
new file mode 100644
index 0000000..7bb203b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFActionsVer10.java
@@ -0,0 +1,282 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+
+
+public class OFActionsVer10 implements OFActions {
+ public final static OFActionsVer10 INSTANCE = new OFActionsVer10();
+
+
+
+
+ public OFActionBsnChecksum.Builder buildBsnChecksum() {
+ return new OFActionBsnChecksumVer10.Builder();
+ }
+ public OFActionBsnChecksum bsnChecksum(U128 checksum) {
+ return new OFActionBsnChecksumVer10(
+ checksum
+ );
+ }
+
+ public OFActionBsnMirror.Builder buildBsnMirror() {
+ return new OFActionBsnMirrorVer10.Builder();
+ }
+
+ public OFActionBsnSetTunnelDst.Builder buildBsnSetTunnelDst() {
+ return new OFActionBsnSetTunnelDstVer10.Builder();
+ }
+ public OFActionBsnSetTunnelDst bsnSetTunnelDst(long dst) {
+ return new OFActionBsnSetTunnelDstVer10(
+ dst
+ );
+ }
+
+ public OFActionEnqueue.Builder buildEnqueue() {
+ return new OFActionEnqueueVer10.Builder();
+ }
+ public OFActionEnqueue enqueue(OFPort port, long queueId) {
+ return new OFActionEnqueueVer10(
+ port,
+ queueId
+ );
+ }
+
+ public OFActionNiciraDecTtl niciraDecTtl() {
+ return OFActionNiciraDecTtlVer10.INSTANCE;
+ }
+
+ public OFActionOutput.Builder buildOutput() {
+ return new OFActionOutputVer10.Builder();
+ }
+ public OFActionOutput output(OFPort port, int maxLen) {
+ return new OFActionOutputVer10(
+ port,
+ maxLen
+ );
+ }
+
+ public OFActionSetDlDst.Builder buildSetDlDst() {
+ return new OFActionSetDlDstVer10.Builder();
+ }
+ public OFActionSetDlDst setDlDst(MacAddress dlAddr) {
+ return new OFActionSetDlDstVer10(
+ dlAddr
+ );
+ }
+
+ public OFActionSetDlSrc.Builder buildSetDlSrc() {
+ return new OFActionSetDlSrcVer10.Builder();
+ }
+ public OFActionSetDlSrc setDlSrc(MacAddress dlAddr) {
+ return new OFActionSetDlSrcVer10(
+ dlAddr
+ );
+ }
+
+ public OFActionSetNwDst.Builder buildSetNwDst() {
+ return new OFActionSetNwDstVer10.Builder();
+ }
+ public OFActionSetNwDst setNwDst(IPv4Address nwAddr) {
+ return new OFActionSetNwDstVer10(
+ nwAddr
+ );
+ }
+
+ public OFActionSetNwSrc.Builder buildSetNwSrc() {
+ return new OFActionSetNwSrcVer10.Builder();
+ }
+ public OFActionSetNwSrc setNwSrc(IPv4Address nwAddr) {
+ return new OFActionSetNwSrcVer10(
+ nwAddr
+ );
+ }
+
+ public OFActionSetNwTos.Builder buildSetNwTos() {
+ return new OFActionSetNwTosVer10.Builder();
+ }
+ public OFActionSetNwTos setNwTos(short nwTos) {
+ return new OFActionSetNwTosVer10(
+ nwTos
+ );
+ }
+
+ public OFActionSetTpDst.Builder buildSetTpDst() {
+ return new OFActionSetTpDstVer10.Builder();
+ }
+ public OFActionSetTpDst setTpDst(TransportPort tpPort) {
+ return new OFActionSetTpDstVer10(
+ tpPort
+ );
+ }
+
+ public OFActionSetTpSrc.Builder buildSetTpSrc() {
+ return new OFActionSetTpSrcVer10.Builder();
+ }
+ public OFActionSetTpSrc setTpSrc(TransportPort tpPort) {
+ return new OFActionSetTpSrcVer10(
+ tpPort
+ );
+ }
+
+ public OFActionSetVlanPcp.Builder buildSetVlanPcp() {
+ return new OFActionSetVlanPcpVer10.Builder();
+ }
+ public OFActionSetVlanPcp setVlanPcp(VlanPcp vlanPcp) {
+ return new OFActionSetVlanPcpVer10(
+ vlanPcp
+ );
+ }
+
+ public OFActionSetVlanVid.Builder buildSetVlanVid() {
+ return new OFActionSetVlanVidVer10.Builder();
+ }
+ public OFActionSetVlanVid setVlanVid(VlanVid vlanVid) {
+ return new OFActionSetVlanVidVer10(
+ vlanVid
+ );
+ }
+
+ public OFActionStripVlan stripVlan() {
+ return OFActionStripVlanVer10.INSTANCE;
+ }
+
+ public OFActionCopyTtlIn copyTtlIn() {
+ throw new UnsupportedOperationException("OFActionCopyTtlIn not supported in version 1.0");
+ }
+
+ public OFActionCopyTtlOut copyTtlOut() {
+ throw new UnsupportedOperationException("OFActionCopyTtlOut not supported in version 1.0");
+ }
+
+ public OFActionDecMplsTtl decMplsTtl() {
+ throw new UnsupportedOperationException("OFActionDecMplsTtl not supported in version 1.0");
+ }
+
+ public OFActionDecNwTtl decNwTtl() {
+ throw new UnsupportedOperationException("OFActionDecNwTtl not supported in version 1.0");
+ }
+
+ public OFActionGroup.Builder buildGroup() {
+ throw new UnsupportedOperationException("OFActionGroup not supported in version 1.0");
+ }
+ public OFActionGroup group(OFGroup group) {
+ throw new UnsupportedOperationException("OFActionGroup not supported in version 1.0");
+ }
+
+ public OFActionPopMpls.Builder buildPopMpls() {
+ throw new UnsupportedOperationException("OFActionPopMpls not supported in version 1.0");
+ }
+ public OFActionPopMpls popMpls(EthType ethertype) {
+ throw new UnsupportedOperationException("OFActionPopMpls not supported in version 1.0");
+ }
+
+ public OFActionPopVlan popVlan() {
+ throw new UnsupportedOperationException("OFActionPopVlan not supported in version 1.0");
+ }
+
+ public OFActionPushMpls.Builder buildPushMpls() {
+ throw new UnsupportedOperationException("OFActionPushMpls not supported in version 1.0");
+ }
+ public OFActionPushMpls pushMpls(EthType ethertype) {
+ throw new UnsupportedOperationException("OFActionPushMpls not supported in version 1.0");
+ }
+
+ public OFActionPushVlan.Builder buildPushVlan() {
+ throw new UnsupportedOperationException("OFActionPushVlan not supported in version 1.0");
+ }
+ public OFActionPushVlan pushVlan(EthType ethertype) {
+ throw new UnsupportedOperationException("OFActionPushVlan not supported in version 1.0");
+ }
+
+ public OFActionSetMplsLabel.Builder buildSetMplsLabel() {
+ throw new UnsupportedOperationException("OFActionSetMplsLabel not supported in version 1.0");
+ }
+ public OFActionSetMplsLabel setMplsLabel(long mplsLabel) {
+ throw new UnsupportedOperationException("OFActionSetMplsLabel not supported in version 1.0");
+ }
+
+ public OFActionSetMplsTc.Builder buildSetMplsTc() {
+ throw new UnsupportedOperationException("OFActionSetMplsTc not supported in version 1.0");
+ }
+ public OFActionSetMplsTc setMplsTc(short mplsTc) {
+ throw new UnsupportedOperationException("OFActionSetMplsTc not supported in version 1.0");
+ }
+
+ public OFActionSetMplsTtl.Builder buildSetMplsTtl() {
+ throw new UnsupportedOperationException("OFActionSetMplsTtl not supported in version 1.0");
+ }
+ public OFActionSetMplsTtl setMplsTtl(short mplsTtl) {
+ throw new UnsupportedOperationException("OFActionSetMplsTtl not supported in version 1.0");
+ }
+
+ public OFActionSetNwEcn.Builder buildSetNwEcn() {
+ throw new UnsupportedOperationException("OFActionSetNwEcn not supported in version 1.0");
+ }
+ public OFActionSetNwEcn setNwEcn(IpEcn nwEcn) {
+ throw new UnsupportedOperationException("OFActionSetNwEcn not supported in version 1.0");
+ }
+
+ public OFActionSetNwTtl.Builder buildSetNwTtl() {
+ throw new UnsupportedOperationException("OFActionSetNwTtl not supported in version 1.0");
+ }
+ public OFActionSetNwTtl setNwTtl(short nwTtl) {
+ throw new UnsupportedOperationException("OFActionSetNwTtl not supported in version 1.0");
+ }
+
+ public OFActionSetQueue.Builder buildSetQueue() {
+ throw new UnsupportedOperationException("OFActionSetQueue not supported in version 1.0");
+ }
+ public OFActionSetQueue setQueue(long queueId) {
+ throw new UnsupportedOperationException("OFActionSetQueue not supported in version 1.0");
+ }
+
+ public OFActionSetField.Builder buildSetField() {
+ throw new UnsupportedOperationException("OFActionSetField not supported in version 1.0");
+ }
+ public OFActionSetField setField(OFOxm<?> field) {
+ throw new UnsupportedOperationException("OFActionSetField not supported in version 1.0");
+ }
+
+ public OFActionPopPbb popPbb() {
+ throw new UnsupportedOperationException("OFActionPopPbb not supported in version 1.0");
+ }
+
+ public OFActionPushPbb.Builder buildPushPbb() {
+ throw new UnsupportedOperationException("OFActionPushPbb not supported in version 1.0");
+ }
+ public OFActionPushPbb pushPbb(EthType ethertype) {
+ throw new UnsupportedOperationException("OFActionPushPbb not supported in version 1.0");
+ }
+
+ public OFMessageReader<OFAction> getReader() {
+ return OFActionVer10.READER;
+ }
+
+
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsReplyVer10.java
new file mode 100644
index 0000000..a30e829
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsReplyVer10.java
@@ -0,0 +1,506 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFAggregateStatsReplyVer10 implements OFAggregateStatsReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFAggregateStatsReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 36;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static Set<OFStatsReplyFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsReplyFlags>of();
+ private final static U64 DEFAULT_PACKET_COUNT = U64.ZERO;
+ private final static U64 DEFAULT_BYTE_COUNT = U64.ZERO;
+ private final static long DEFAULT_FLOW_COUNT = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final Set<OFStatsReplyFlags> flags;
+ private final U64 packetCount;
+ private final U64 byteCount;
+ private final long flowCount;
+//
+ // Immutable default instance
+ final static OFAggregateStatsReplyVer10 DEFAULT = new OFAggregateStatsReplyVer10(
+ DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_PACKET_COUNT, DEFAULT_BYTE_COUNT, DEFAULT_FLOW_COUNT
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFAggregateStatsReplyVer10(long xid, Set<OFStatsReplyFlags> flags, U64 packetCount, U64 byteCount, long flowCount) {
+ this.xid = xid;
+ this.flags = flags;
+ this.packetCount = packetCount;
+ this.byteCount = byteCount;
+ this.flowCount = flowCount;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.AGGREGATE;
+ }
+
+ @Override
+ public Set<OFStatsReplyFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public U64 getPacketCount() {
+ return packetCount;
+ }
+
+ @Override
+ public U64 getByteCount() {
+ return byteCount;
+ }
+
+ @Override
+ public long getFlowCount() {
+ return flowCount;
+ }
+
+
+
+ public OFAggregateStatsReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFAggregateStatsReply.Builder {
+ final OFAggregateStatsReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean flagsSet;
+ private Set<OFStatsReplyFlags> flags;
+ private boolean packetCountSet;
+ private U64 packetCount;
+ private boolean byteCountSet;
+ private U64 byteCount;
+ private boolean flowCountSet;
+ private long flowCount;
+
+ BuilderWithParent(OFAggregateStatsReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.AGGREGATE;
+ }
+
+ @Override
+ public Set<OFStatsReplyFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public U64 getPacketCount() {
+ return packetCount;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setPacketCount(U64 packetCount) {
+ this.packetCount = packetCount;
+ this.packetCountSet = true;
+ return this;
+ }
+ @Override
+ public U64 getByteCount() {
+ return byteCount;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setByteCount(U64 byteCount) {
+ this.byteCount = byteCount;
+ this.byteCountSet = true;
+ return this;
+ }
+ @Override
+ public long getFlowCount() {
+ return flowCount;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setFlowCount(long flowCount) {
+ this.flowCount = flowCount;
+ this.flowCountSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFAggregateStatsReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ U64 packetCount = this.packetCountSet ? this.packetCount : parentMessage.packetCount;
+ if(packetCount == null)
+ throw new NullPointerException("Property packetCount must not be null");
+ U64 byteCount = this.byteCountSet ? this.byteCount : parentMessage.byteCount;
+ if(byteCount == null)
+ throw new NullPointerException("Property byteCount must not be null");
+ long flowCount = this.flowCountSet ? this.flowCount : parentMessage.flowCount;
+
+ //
+ return new OFAggregateStatsReplyVer10(
+ xid,
+ flags,
+ packetCount,
+ byteCount,
+ flowCount
+ );
+ }
+
+ }
+
+ static class Builder implements OFAggregateStatsReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean flagsSet;
+ private Set<OFStatsReplyFlags> flags;
+ private boolean packetCountSet;
+ private U64 packetCount;
+ private boolean byteCountSet;
+ private U64 byteCount;
+ private boolean flowCountSet;
+ private long flowCount;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.AGGREGATE;
+ }
+
+ @Override
+ public Set<OFStatsReplyFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public U64 getPacketCount() {
+ return packetCount;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setPacketCount(U64 packetCount) {
+ this.packetCount = packetCount;
+ this.packetCountSet = true;
+ return this;
+ }
+ @Override
+ public U64 getByteCount() {
+ return byteCount;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setByteCount(U64 byteCount) {
+ this.byteCount = byteCount;
+ this.byteCountSet = true;
+ return this;
+ }
+ @Override
+ public long getFlowCount() {
+ return flowCount;
+ }
+
+ @Override
+ public OFAggregateStatsReply.Builder setFlowCount(long flowCount) {
+ this.flowCount = flowCount;
+ this.flowCountSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFAggregateStatsReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ U64 packetCount = this.packetCountSet ? this.packetCount : DEFAULT_PACKET_COUNT;
+ if(packetCount == null)
+ throw new NullPointerException("Property packetCount must not be null");
+ U64 byteCount = this.byteCountSet ? this.byteCount : DEFAULT_BYTE_COUNT;
+ if(byteCount == null)
+ throw new NullPointerException("Property byteCount must not be null");
+ long flowCount = this.flowCountSet ? this.flowCount : DEFAULT_FLOW_COUNT;
+
+
+ return new OFAggregateStatsReplyVer10(
+ xid,
+ flags,
+ packetCount,
+ byteCount,
+ flowCount
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFAggregateStatsReply> {
+ @Override
+ public OFAggregateStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 17
+ byte type = bb.readByte();
+ if(type != (byte) 0x11)
+ throw new OFParseError("Wrong type: Expected=OFType.STATS_REPLY(17), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 36)
+ throw new OFParseError("Wrong length: Expected=36(36), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property statsType == 2
+ short statsType = bb.readShort();
+ if(statsType != (short) 0x2)
+ throw new OFParseError("Wrong statsType: Expected=OFStatsType.AGGREGATE(2), got="+statsType);
+ Set<OFStatsReplyFlags> flags = OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+ U64 packetCount = U64.ofRaw(bb.readLong());
+ U64 byteCount = U64.ofRaw(bb.readLong());
+ long flowCount = U32.f(bb.readInt());
+ // pad: 4 bytes
+ bb.skipBytes(4);
+
+ OFAggregateStatsReplyVer10 aggregateStatsReplyVer10 = new OFAggregateStatsReplyVer10(
+ xid,
+ flags,
+ packetCount,
+ byteCount,
+ flowCount
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", aggregateStatsReplyVer10);
+ return aggregateStatsReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFAggregateStatsReplyVer10Funnel FUNNEL = new OFAggregateStatsReplyVer10Funnel();
+ static class OFAggregateStatsReplyVer10Funnel implements Funnel<OFAggregateStatsReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFAggregateStatsReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 17
+ sink.putByte((byte) 0x11);
+ // fixed value property length = 36
+ sink.putShort((short) 0x24);
+ sink.putLong(message.xid);
+ // fixed value property statsType = 2
+ sink.putShort((short) 0x2);
+ OFStatsReplyFlagsSerializerVer10.putTo(message.flags, sink);
+ message.packetCount.putTo(sink);
+ message.byteCount.putTo(sink);
+ sink.putLong(message.flowCount);
+ // skip pad (4 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFAggregateStatsReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFAggregateStatsReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 17
+ bb.writeByte((byte) 0x11);
+ // fixed value property length = 36
+ bb.writeShort((short) 0x24);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property statsType = 2
+ bb.writeShort((short) 0x2);
+ OFStatsReplyFlagsSerializerVer10.writeTo(bb, message.flags);
+ bb.writeLong(message.packetCount.getValue());
+ bb.writeLong(message.byteCount.getValue());
+ bb.writeInt(U32.t(message.flowCount));
+ // pad: 4 bytes
+ bb.writeZero(4);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFAggregateStatsReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("flags=").append(flags);
+ b.append(", ");
+ b.append("packetCount=").append(packetCount);
+ b.append(", ");
+ b.append("byteCount=").append(byteCount);
+ b.append(", ");
+ b.append("flowCount=").append(flowCount);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFAggregateStatsReplyVer10 other = (OFAggregateStatsReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (flags == null) {
+ if (other.flags != null)
+ return false;
+ } else if (!flags.equals(other.flags))
+ return false;
+ if (packetCount == null) {
+ if (other.packetCount != null)
+ return false;
+ } else if (!packetCount.equals(other.packetCount))
+ return false;
+ if (byteCount == null) {
+ if (other.byteCount != null)
+ return false;
+ } else if (!byteCount.equals(other.byteCount))
+ return false;
+ if( flowCount != other.flowCount)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+ result = prime * result + ((packetCount == null) ? 0 : packetCount.hashCode());
+ result = prime * result + ((byteCount == null) ? 0 : byteCount.hashCode());
+ result = prime * (int) (flowCount ^ (flowCount >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsRequestVer10.java
new file mode 100644
index 0000000..4b36011
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFAggregateStatsRequestVer10.java
@@ -0,0 +1,582 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFAggregateStatsRequestVer10 implements OFAggregateStatsRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFAggregateStatsRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 56;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static Set<OFStatsRequestFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsRequestFlags>of();
+ private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+ private final static TableId DEFAULT_TABLE_ID = TableId.ALL;
+ private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+
+ // OF message fields
+ private final long xid;
+ private final Set<OFStatsRequestFlags> flags;
+ private final Match match;
+ private final TableId tableId;
+ private final OFPort outPort;
+//
+ // Immutable default instance
+ final static OFAggregateStatsRequestVer10 DEFAULT = new OFAggregateStatsRequestVer10(
+ DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_MATCH, DEFAULT_TABLE_ID, DEFAULT_OUT_PORT
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFAggregateStatsRequestVer10(long xid, Set<OFStatsRequestFlags> flags, Match match, TableId tableId, OFPort outPort) {
+ this.xid = xid;
+ this.flags = flags;
+ this.match = match;
+ this.tableId = tableId;
+ this.outPort = outPort;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.AGGREGATE;
+ }
+
+ @Override
+ public Set<OFStatsRequestFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public TableId getTableId() {
+ return tableId;
+ }
+
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public U64 getCookie()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+ }
+
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+
+
+ public OFAggregateStatsRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFAggregateStatsRequest.Builder {
+ final OFAggregateStatsRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean flagsSet;
+ private Set<OFStatsRequestFlags> flags;
+ private boolean matchSet;
+ private Match match;
+ private boolean tableIdSet;
+ private TableId tableId;
+ private boolean outPortSet;
+ private OFPort outPort;
+
+ BuilderWithParent(OFAggregateStatsRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.AGGREGATE;
+ }
+
+ @Override
+ public Set<OFStatsRequestFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public TableId getTableId() {
+ return tableId;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setTableId(TableId tableId) {
+ this.tableId = tableId;
+ this.tableIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public U64 getCookie()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setCookie(U64 cookie) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFAggregateStatsRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ Match match = this.matchSet ? this.match : parentMessage.match;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ TableId tableId = this.tableIdSet ? this.tableId : parentMessage.tableId;
+ if(tableId == null)
+ throw new NullPointerException("Property tableId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+
+ //
+ return new OFAggregateStatsRequestVer10(
+ xid,
+ flags,
+ match,
+ tableId,
+ outPort
+ );
+ }
+
+ }
+
+ static class Builder implements OFAggregateStatsRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean flagsSet;
+ private Set<OFStatsRequestFlags> flags;
+ private boolean matchSet;
+ private Match match;
+ private boolean tableIdSet;
+ private TableId tableId;
+ private boolean outPortSet;
+ private OFPort outPort;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.AGGREGATE;
+ }
+
+ @Override
+ public Set<OFStatsRequestFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public TableId getTableId() {
+ return tableId;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setTableId(TableId tableId) {
+ this.tableId = tableId;
+ this.tableIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public U64 getCookie()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setCookie(U64 cookie) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookie not supported in version 1.0");
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFAggregateStatsRequest.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFAggregateStatsRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ TableId tableId = this.tableIdSet ? this.tableId : DEFAULT_TABLE_ID;
+ if(tableId == null)
+ throw new NullPointerException("Property tableId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+
+
+ return new OFAggregateStatsRequestVer10(
+ xid,
+ flags,
+ match,
+ tableId,
+ outPort
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFAggregateStatsRequest> {
+ @Override
+ public OFAggregateStatsRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 16
+ byte type = bb.readByte();
+ if(type != (byte) 0x10)
+ throw new OFParseError("Wrong type: Expected=OFType.STATS_REQUEST(16), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 56)
+ throw new OFParseError("Wrong length: Expected=56(56), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property statsType == 2
+ short statsType = bb.readShort();
+ if(statsType != (short) 0x2)
+ throw new OFParseError("Wrong statsType: Expected=OFStatsType.AGGREGATE(2), got="+statsType);
+ Set<OFStatsRequestFlags> flags = OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+ Match match = ChannelUtilsVer10.readOFMatch(bb);
+ TableId tableId = TableId.readByte(bb);
+ // pad: 1 bytes
+ bb.skipBytes(1);
+ OFPort outPort = OFPort.read2Bytes(bb);
+
+ OFAggregateStatsRequestVer10 aggregateStatsRequestVer10 = new OFAggregateStatsRequestVer10(
+ xid,
+ flags,
+ match,
+ tableId,
+ outPort
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", aggregateStatsRequestVer10);
+ return aggregateStatsRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFAggregateStatsRequestVer10Funnel FUNNEL = new OFAggregateStatsRequestVer10Funnel();
+ static class OFAggregateStatsRequestVer10Funnel implements Funnel<OFAggregateStatsRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFAggregateStatsRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 16
+ sink.putByte((byte) 0x10);
+ // fixed value property length = 56
+ sink.putShort((short) 0x38);
+ sink.putLong(message.xid);
+ // fixed value property statsType = 2
+ sink.putShort((short) 0x2);
+ OFStatsRequestFlagsSerializerVer10.putTo(message.flags, sink);
+ message.match.putTo(sink);
+ message.tableId.putTo(sink);
+ // skip pad (1 bytes)
+ message.outPort.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFAggregateStatsRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFAggregateStatsRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 16
+ bb.writeByte((byte) 0x10);
+ // fixed value property length = 56
+ bb.writeShort((short) 0x38);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property statsType = 2
+ bb.writeShort((short) 0x2);
+ OFStatsRequestFlagsSerializerVer10.writeTo(bb, message.flags);
+ message.match.writeTo(bb);
+ message.tableId.writeByte(bb);
+ // pad: 1 bytes
+ bb.writeZero(1);
+ message.outPort.write2Bytes(bb);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFAggregateStatsRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("flags=").append(flags);
+ b.append(", ");
+ b.append("match=").append(match);
+ b.append(", ");
+ b.append("tableId=").append(tableId);
+ b.append(", ");
+ b.append("outPort=").append(outPort);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFAggregateStatsRequestVer10 other = (OFAggregateStatsRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (flags == null) {
+ if (other.flags != null)
+ return false;
+ } else if (!flags.equals(other.flags))
+ return false;
+ if (match == null) {
+ if (other.match != null)
+ return false;
+ } else if (!match.equals(other.match))
+ return false;
+ if (tableId == null) {
+ if (other.tableId != null)
+ return false;
+ } else if (!tableId.equals(other.tableId))
+ return false;
+ if (outPort == null) {
+ if (other.outPort != null)
+ return false;
+ } else if (!outPort.equals(other.outPort))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+ result = prime * result + ((match == null) ? 0 : match.hashCode());
+ result = prime * result + ((tableId == null) ? 0 : tableId.hashCode());
+ result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionCodeSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionCodeSerializerVer10.java
new file mode 100644
index 0000000..b1f67c7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionCodeSerializerVer10.java
@@ -0,0 +1,109 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBadActionCode;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBadActionCodeSerializerVer10 {
+
+ public final static short BAD_TYPE_VAL = (short) 0x0;
+ public final static short BAD_LEN_VAL = (short) 0x1;
+ public final static short BAD_EXPERIMENTER_VAL = (short) 0x2;
+ public final static short BAD_EXPERIMENTER_TYPE_VAL = (short) 0x3;
+ public final static short BAD_OUT_PORT_VAL = (short) 0x4;
+ public final static short BAD_ARGUMENT_VAL = (short) 0x5;
+ public final static short EPERM_VAL = (short) 0x6;
+ public final static short TOO_MANY_VAL = (short) 0x7;
+ public final static short BAD_QUEUE_VAL = (short) 0x8;
+
+ public static OFBadActionCode readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFBadActionCode e) {
+ bb.writeShort(toWireValue(e));
+ }
+
+ public static void putTo(OFBadActionCode e, PrimitiveSink sink) {
+ sink.putShort(toWireValue(e));
+ }
+
+ public static OFBadActionCode ofWireValue(short val) {
+ switch(val) {
+ case BAD_TYPE_VAL:
+ return OFBadActionCode.BAD_TYPE;
+ case BAD_LEN_VAL:
+ return OFBadActionCode.BAD_LEN;
+ case BAD_EXPERIMENTER_VAL:
+ return OFBadActionCode.BAD_EXPERIMENTER;
+ case BAD_EXPERIMENTER_TYPE_VAL:
+ return OFBadActionCode.BAD_EXPERIMENTER_TYPE;
+ case BAD_OUT_PORT_VAL:
+ return OFBadActionCode.BAD_OUT_PORT;
+ case BAD_ARGUMENT_VAL:
+ return OFBadActionCode.BAD_ARGUMENT;
+ case EPERM_VAL:
+ return OFBadActionCode.EPERM;
+ case TOO_MANY_VAL:
+ return OFBadActionCode.TOO_MANY;
+ case BAD_QUEUE_VAL:
+ return OFBadActionCode.BAD_QUEUE;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFBadActionCode in version 1.0: " + val);
+ }
+ }
+
+
+ public static short toWireValue(OFBadActionCode e) {
+ switch(e) {
+ case BAD_TYPE:
+ return BAD_TYPE_VAL;
+ case BAD_LEN:
+ return BAD_LEN_VAL;
+ case BAD_EXPERIMENTER:
+ return BAD_EXPERIMENTER_VAL;
+ case BAD_EXPERIMENTER_TYPE:
+ return BAD_EXPERIMENTER_TYPE_VAL;
+ case BAD_OUT_PORT:
+ return BAD_OUT_PORT_VAL;
+ case BAD_ARGUMENT:
+ return BAD_ARGUMENT_VAL;
+ case EPERM:
+ return EPERM_VAL;
+ case TOO_MANY:
+ return TOO_MANY_VAL;
+ case BAD_QUEUE:
+ return BAD_QUEUE_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFBadActionCode in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionErrorMsgVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionErrorMsgVer10.java
new file mode 100644
index 0000000..aae9003
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadActionErrorMsgVer10.java
@@ -0,0 +1,400 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBadActionErrorMsgVer10 implements OFBadActionErrorMsg {
+ private static final Logger logger = LoggerFactory.getLogger(OFBadActionErrorMsgVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 12;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static OFErrorCauseData DEFAULT_DATA = OFErrorCauseData.NONE;
+
+ // OF message fields
+ private final long xid;
+ private final OFBadActionCode code;
+ private final OFErrorCauseData data;
+//
+
+ // package private constructor - used by readers, builders, and factory
+ OFBadActionErrorMsgVer10(long xid, OFBadActionCode code, OFErrorCauseData data) {
+ this.xid = xid;
+ this.code = code;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.BAD_ACTION;
+ }
+
+ @Override
+ public OFBadActionCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+
+
+ public OFBadActionErrorMsg.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBadActionErrorMsg.Builder {
+ final OFBadActionErrorMsgVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean codeSet;
+ private OFBadActionCode code;
+ private boolean dataSet;
+ private OFErrorCauseData data;
+
+ BuilderWithParent(OFBadActionErrorMsgVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBadActionErrorMsg.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.BAD_ACTION;
+ }
+
+ @Override
+ public OFBadActionCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFBadActionErrorMsg.Builder setCode(OFBadActionCode code) {
+ this.code = code;
+ this.codeSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+ @Override
+ public OFBadActionErrorMsg.Builder setData(OFErrorCauseData data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBadActionErrorMsg build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ OFBadActionCode code = this.codeSet ? this.code : parentMessage.code;
+ if(code == null)
+ throw new NullPointerException("Property code must not be null");
+ OFErrorCauseData data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFBadActionErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFBadActionErrorMsg.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean codeSet;
+ private OFBadActionCode code;
+ private boolean dataSet;
+ private OFErrorCauseData data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBadActionErrorMsg.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.BAD_ACTION;
+ }
+
+ @Override
+ public OFBadActionCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFBadActionErrorMsg.Builder setCode(OFBadActionCode code) {
+ this.code = code;
+ this.codeSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+ @Override
+ public OFBadActionErrorMsg.Builder setData(OFErrorCauseData data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBadActionErrorMsg build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ if(!this.codeSet)
+ throw new IllegalStateException("Property code doesn't have default value -- must be set");
+ if(code == null)
+ throw new NullPointerException("Property code must not be null");
+ OFErrorCauseData data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFBadActionErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBadActionErrorMsg> {
+ @Override
+ public OFBadActionErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 1
+ byte type = bb.readByte();
+ if(type != (byte) 0x1)
+ throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property errType == 2
+ short errType = bb.readShort();
+ if(errType != (short) 0x2)
+ throw new OFParseError("Wrong errType: Expected=OFErrorType.BAD_ACTION(2), got="+errType);
+ OFBadActionCode code = OFBadActionCodeSerializerVer10.readFrom(bb);
+ OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_10);
+
+ OFBadActionErrorMsgVer10 badActionErrorMsgVer10 = new OFBadActionErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", badActionErrorMsgVer10);
+ return badActionErrorMsgVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBadActionErrorMsgVer10Funnel FUNNEL = new OFBadActionErrorMsgVer10Funnel();
+ static class OFBadActionErrorMsgVer10Funnel implements Funnel<OFBadActionErrorMsgVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBadActionErrorMsgVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 1
+ sink.putByte((byte) 0x1);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property errType = 2
+ sink.putShort((short) 0x2);
+ OFBadActionCodeSerializerVer10.putTo(message.code, sink);
+ message.data.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBadActionErrorMsgVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBadActionErrorMsgVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 1
+ bb.writeByte((byte) 0x1);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property errType = 2
+ bb.writeShort((short) 0x2);
+ OFBadActionCodeSerializerVer10.writeTo(bb, message.code);
+ message.data.writeTo(bb);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBadActionErrorMsgVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("code=").append(code);
+ b.append(", ");
+ b.append("data=").append(data);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBadActionErrorMsgVer10 other = (OFBadActionErrorMsgVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (code == null) {
+ if (other.code != null)
+ return false;
+ } else if (!code.equals(other.code))
+ return false;
+ if (data == null) {
+ if (other.data != null)
+ return false;
+ } else if (!data.equals(other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((code == null) ? 0 : code.hashCode());
+ result = prime * result + ((data == null) ? 0 : data.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestCodeSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestCodeSerializerVer10.java
new file mode 100644
index 0000000..fc11c91
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestCodeSerializerVer10.java
@@ -0,0 +1,109 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBadRequestCode;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBadRequestCodeSerializerVer10 {
+
+ public final static short BAD_VERSION_VAL = (short) 0x0;
+ public final static short BAD_TYPE_VAL = (short) 0x1;
+ public final static short BAD_STAT_VAL = (short) 0x2;
+ public final static short BAD_EXPERIMENTER_VAL = (short) 0x3;
+ public final static short BAD_SUBTYPE_VAL = (short) 0x4;
+ public final static short EPERM_VAL = (short) 0x5;
+ public final static short BAD_LEN_VAL = (short) 0x6;
+ public final static short BUFFER_EMPTY_VAL = (short) 0x7;
+ public final static short BUFFER_UNKNOWN_VAL = (short) 0x8;
+
+ public static OFBadRequestCode readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFBadRequestCode e) {
+ bb.writeShort(toWireValue(e));
+ }
+
+ public static void putTo(OFBadRequestCode e, PrimitiveSink sink) {
+ sink.putShort(toWireValue(e));
+ }
+
+ public static OFBadRequestCode ofWireValue(short val) {
+ switch(val) {
+ case BAD_VERSION_VAL:
+ return OFBadRequestCode.BAD_VERSION;
+ case BAD_TYPE_VAL:
+ return OFBadRequestCode.BAD_TYPE;
+ case BAD_STAT_VAL:
+ return OFBadRequestCode.BAD_STAT;
+ case BAD_EXPERIMENTER_VAL:
+ return OFBadRequestCode.BAD_EXPERIMENTER;
+ case BAD_SUBTYPE_VAL:
+ return OFBadRequestCode.BAD_SUBTYPE;
+ case EPERM_VAL:
+ return OFBadRequestCode.EPERM;
+ case BAD_LEN_VAL:
+ return OFBadRequestCode.BAD_LEN;
+ case BUFFER_EMPTY_VAL:
+ return OFBadRequestCode.BUFFER_EMPTY;
+ case BUFFER_UNKNOWN_VAL:
+ return OFBadRequestCode.BUFFER_UNKNOWN;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFBadRequestCode in version 1.0: " + val);
+ }
+ }
+
+
+ public static short toWireValue(OFBadRequestCode e) {
+ switch(e) {
+ case BAD_VERSION:
+ return BAD_VERSION_VAL;
+ case BAD_TYPE:
+ return BAD_TYPE_VAL;
+ case BAD_STAT:
+ return BAD_STAT_VAL;
+ case BAD_EXPERIMENTER:
+ return BAD_EXPERIMENTER_VAL;
+ case BAD_SUBTYPE:
+ return BAD_SUBTYPE_VAL;
+ case EPERM:
+ return EPERM_VAL;
+ case BAD_LEN:
+ return BAD_LEN_VAL;
+ case BUFFER_EMPTY:
+ return BUFFER_EMPTY_VAL;
+ case BUFFER_UNKNOWN:
+ return BUFFER_UNKNOWN_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFBadRequestCode in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestErrorMsgVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestErrorMsgVer10.java
new file mode 100644
index 0000000..3d0c19d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBadRequestErrorMsgVer10.java
@@ -0,0 +1,400 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBadRequestErrorMsgVer10 implements OFBadRequestErrorMsg {
+ private static final Logger logger = LoggerFactory.getLogger(OFBadRequestErrorMsgVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 12;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static OFErrorCauseData DEFAULT_DATA = OFErrorCauseData.NONE;
+
+ // OF message fields
+ private final long xid;
+ private final OFBadRequestCode code;
+ private final OFErrorCauseData data;
+//
+
+ // package private constructor - used by readers, builders, and factory
+ OFBadRequestErrorMsgVer10(long xid, OFBadRequestCode code, OFErrorCauseData data) {
+ this.xid = xid;
+ this.code = code;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.BAD_REQUEST;
+ }
+
+ @Override
+ public OFBadRequestCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+
+
+ public OFBadRequestErrorMsg.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBadRequestErrorMsg.Builder {
+ final OFBadRequestErrorMsgVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean codeSet;
+ private OFBadRequestCode code;
+ private boolean dataSet;
+ private OFErrorCauseData data;
+
+ BuilderWithParent(OFBadRequestErrorMsgVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBadRequestErrorMsg.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.BAD_REQUEST;
+ }
+
+ @Override
+ public OFBadRequestCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFBadRequestErrorMsg.Builder setCode(OFBadRequestCode code) {
+ this.code = code;
+ this.codeSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+ @Override
+ public OFBadRequestErrorMsg.Builder setData(OFErrorCauseData data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBadRequestErrorMsg build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ OFBadRequestCode code = this.codeSet ? this.code : parentMessage.code;
+ if(code == null)
+ throw new NullPointerException("Property code must not be null");
+ OFErrorCauseData data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFBadRequestErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFBadRequestErrorMsg.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean codeSet;
+ private OFBadRequestCode code;
+ private boolean dataSet;
+ private OFErrorCauseData data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBadRequestErrorMsg.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.BAD_REQUEST;
+ }
+
+ @Override
+ public OFBadRequestCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFBadRequestErrorMsg.Builder setCode(OFBadRequestCode code) {
+ this.code = code;
+ this.codeSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+ @Override
+ public OFBadRequestErrorMsg.Builder setData(OFErrorCauseData data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBadRequestErrorMsg build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ if(!this.codeSet)
+ throw new IllegalStateException("Property code doesn't have default value -- must be set");
+ if(code == null)
+ throw new NullPointerException("Property code must not be null");
+ OFErrorCauseData data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFBadRequestErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBadRequestErrorMsg> {
+ @Override
+ public OFBadRequestErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 1
+ byte type = bb.readByte();
+ if(type != (byte) 0x1)
+ throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property errType == 1
+ short errType = bb.readShort();
+ if(errType != (short) 0x1)
+ throw new OFParseError("Wrong errType: Expected=OFErrorType.BAD_REQUEST(1), got="+errType);
+ OFBadRequestCode code = OFBadRequestCodeSerializerVer10.readFrom(bb);
+ OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_10);
+
+ OFBadRequestErrorMsgVer10 badRequestErrorMsgVer10 = new OFBadRequestErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", badRequestErrorMsgVer10);
+ return badRequestErrorMsgVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBadRequestErrorMsgVer10Funnel FUNNEL = new OFBadRequestErrorMsgVer10Funnel();
+ static class OFBadRequestErrorMsgVer10Funnel implements Funnel<OFBadRequestErrorMsgVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBadRequestErrorMsgVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 1
+ sink.putByte((byte) 0x1);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property errType = 1
+ sink.putShort((short) 0x1);
+ OFBadRequestCodeSerializerVer10.putTo(message.code, sink);
+ message.data.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBadRequestErrorMsgVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBadRequestErrorMsgVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 1
+ bb.writeByte((byte) 0x1);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property errType = 1
+ bb.writeShort((short) 0x1);
+ OFBadRequestCodeSerializerVer10.writeTo(bb, message.code);
+ message.data.writeTo(bb);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBadRequestErrorMsgVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("code=").append(code);
+ b.append(", ");
+ b.append("data=").append(data);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBadRequestErrorMsgVer10 other = (OFBadRequestErrorMsgVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (code == null) {
+ if (other.code != null)
+ return false;
+ } else if (!code.equals(other.code))
+ return false;
+ if (data == null) {
+ if (other.data != null)
+ return false;
+ } else if (!data.equals(other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((code == null) ? 0 : code.hashCode());
+ result = prime * result + ((data == null) ? 0 : data.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierReplyVer10.java
new file mode 100644
index 0000000..37e7356
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierReplyVer10.java
@@ -0,0 +1,268 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBarrierReplyVer10 implements OFBarrierReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBarrierReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+//
+ // Immutable default instance
+ final static OFBarrierReplyVer10 DEFAULT = new OFBarrierReplyVer10(
+ DEFAULT_XID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBarrierReplyVer10(long xid) {
+ this.xid = xid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.BARRIER_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+
+
+ public OFBarrierReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBarrierReply.Builder {
+ final OFBarrierReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ BuilderWithParent(OFBarrierReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.BARRIER_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBarrierReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBarrierReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+ //
+ return new OFBarrierReplyVer10(
+ xid
+ );
+ }
+
+ }
+
+ static class Builder implements OFBarrierReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.BARRIER_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBarrierReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBarrierReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+ return new OFBarrierReplyVer10(
+ xid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBarrierReply> {
+ @Override
+ public OFBarrierReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 19
+ byte type = bb.readByte();
+ if(type != (byte) 0x13)
+ throw new OFParseError("Wrong type: Expected=OFType.BARRIER_REPLY(19), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+
+ OFBarrierReplyVer10 barrierReplyVer10 = new OFBarrierReplyVer10(
+ xid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", barrierReplyVer10);
+ return barrierReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBarrierReplyVer10Funnel FUNNEL = new OFBarrierReplyVer10Funnel();
+ static class OFBarrierReplyVer10Funnel implements Funnel<OFBarrierReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBarrierReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 19
+ sink.putByte((byte) 0x13);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ sink.putLong(message.xid);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBarrierReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBarrierReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 19
+ bb.writeByte((byte) 0x13);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ bb.writeInt(U32.t(message.xid));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBarrierReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBarrierReplyVer10 other = (OFBarrierReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierRequestVer10.java
new file mode 100644
index 0000000..e2def34
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBarrierRequestVer10.java
@@ -0,0 +1,268 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBarrierRequestVer10 implements OFBarrierRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBarrierRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+//
+ // Immutable default instance
+ final static OFBarrierRequestVer10 DEFAULT = new OFBarrierRequestVer10(
+ DEFAULT_XID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBarrierRequestVer10(long xid) {
+ this.xid = xid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.BARRIER_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+
+
+ public OFBarrierRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBarrierRequest.Builder {
+ final OFBarrierRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ BuilderWithParent(OFBarrierRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.BARRIER_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBarrierRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBarrierRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+ //
+ return new OFBarrierRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+ static class Builder implements OFBarrierRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.BARRIER_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBarrierRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBarrierRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+ return new OFBarrierRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBarrierRequest> {
+ @Override
+ public OFBarrierRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 18
+ byte type = bb.readByte();
+ if(type != (byte) 0x12)
+ throw new OFParseError("Wrong type: Expected=OFType.BARRIER_REQUEST(18), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+
+ OFBarrierRequestVer10 barrierRequestVer10 = new OFBarrierRequestVer10(
+ xid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", barrierRequestVer10);
+ return barrierRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBarrierRequestVer10Funnel FUNNEL = new OFBarrierRequestVer10Funnel();
+ static class OFBarrierRequestVer10Funnel implements Funnel<OFBarrierRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBarrierRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 18
+ sink.putByte((byte) 0x12);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ sink.putLong(message.xid);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBarrierRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBarrierRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 18
+ bb.writeByte((byte) 0x12);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ bb.writeInt(U32.t(message.xid));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBarrierRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBarrierRequestVer10 other = (OFBarrierRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataReplyVer10.java
new file mode 100644
index 0000000..a1c1020
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataReplyVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwClearDataReplyVer10 implements OFBsnBwClearDataReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnBwClearDataReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_STATUS = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long status;
+//
+ // Immutable default instance
+ final static OFBsnBwClearDataReplyVer10 DEFAULT = new OFBsnBwClearDataReplyVer10(
+ DEFAULT_XID, DEFAULT_STATUS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnBwClearDataReplyVer10(long xid, long status) {
+ this.xid = xid;
+ this.status = status;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x16L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+
+
+ public OFBsnBwClearDataReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnBwClearDataReply.Builder {
+ final OFBsnBwClearDataReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+
+ BuilderWithParent(OFBsnBwClearDataReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwClearDataReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x16L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnBwClearDataReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnBwClearDataReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long status = this.statusSet ? this.status : parentMessage.status;
+
+ //
+ return new OFBsnBwClearDataReplyVer10(
+ xid,
+ status
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnBwClearDataReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwClearDataReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x16L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnBwClearDataReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnBwClearDataReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+ return new OFBsnBwClearDataReplyVer10(
+ xid,
+ status
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnBwClearDataReply> {
+ @Override
+ public OFBsnBwClearDataReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x16L
+ int subtype = bb.readInt();
+ if(subtype != 0x16)
+ throw new OFParseError("Wrong subtype: Expected=0x16L(0x16L), got="+subtype);
+ long status = U32.f(bb.readInt());
+
+ OFBsnBwClearDataReplyVer10 bsnBwClearDataReplyVer10 = new OFBsnBwClearDataReplyVer10(
+ xid,
+ status
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnBwClearDataReplyVer10);
+ return bsnBwClearDataReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnBwClearDataReplyVer10Funnel FUNNEL = new OFBsnBwClearDataReplyVer10Funnel();
+ static class OFBsnBwClearDataReplyVer10Funnel implements Funnel<OFBsnBwClearDataReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnBwClearDataReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x16L
+ sink.putInt(0x16);
+ sink.putLong(message.status);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnBwClearDataReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnBwClearDataReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x16L
+ bb.writeInt(0x16);
+ bb.writeInt(U32.t(message.status));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnBwClearDataReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnBwClearDataReplyVer10 other = (OFBsnBwClearDataReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( status != other.status)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (status ^ (status >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataRequestVer10.java
new file mode 100644
index 0000000..763b7d6
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwClearDataRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwClearDataRequestVer10 implements OFBsnBwClearDataRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnBwClearDataRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+//
+ // Immutable default instance
+ final static OFBsnBwClearDataRequestVer10 DEFAULT = new OFBsnBwClearDataRequestVer10(
+ DEFAULT_XID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnBwClearDataRequestVer10(long xid) {
+ this.xid = xid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x15L;
+ }
+
+
+
+ public OFBsnBwClearDataRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnBwClearDataRequest.Builder {
+ final OFBsnBwClearDataRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ BuilderWithParent(OFBsnBwClearDataRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwClearDataRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x15L;
+ }
+
+
+
+ @Override
+ public OFBsnBwClearDataRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+ //
+ return new OFBsnBwClearDataRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnBwClearDataRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwClearDataRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x15L;
+ }
+
+//
+ @Override
+ public OFBsnBwClearDataRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+ return new OFBsnBwClearDataRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnBwClearDataRequest> {
+ @Override
+ public OFBsnBwClearDataRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x15L
+ int subtype = bb.readInt();
+ if(subtype != 0x15)
+ throw new OFParseError("Wrong subtype: Expected=0x15L(0x15L), got="+subtype);
+
+ OFBsnBwClearDataRequestVer10 bsnBwClearDataRequestVer10 = new OFBsnBwClearDataRequestVer10(
+ xid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnBwClearDataRequestVer10);
+ return bsnBwClearDataRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnBwClearDataRequestVer10Funnel FUNNEL = new OFBsnBwClearDataRequestVer10Funnel();
+ static class OFBsnBwClearDataRequestVer10Funnel implements Funnel<OFBsnBwClearDataRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnBwClearDataRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x15L
+ sink.putInt(0x15);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnBwClearDataRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnBwClearDataRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x15L
+ bb.writeInt(0x15);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnBwClearDataRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnBwClearDataRequestVer10 other = (OFBsnBwClearDataRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetReplyVer10.java
new file mode 100644
index 0000000..fd16755
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetReplyVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwEnableGetReplyVer10 implements OFBsnBwEnableGetReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnBwEnableGetReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_ENABLED = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long enabled;
+//
+ // Immutable default instance
+ final static OFBsnBwEnableGetReplyVer10 DEFAULT = new OFBsnBwEnableGetReplyVer10(
+ DEFAULT_XID, DEFAULT_ENABLED
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnBwEnableGetReplyVer10(long xid, long enabled) {
+ this.xid = xid;
+ this.enabled = enabled;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x14L;
+ }
+
+ @Override
+ public long getEnabled() {
+ return enabled;
+ }
+
+
+
+ public OFBsnBwEnableGetReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnBwEnableGetReply.Builder {
+ final OFBsnBwEnableGetReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean enabledSet;
+ private long enabled;
+
+ BuilderWithParent(OFBsnBwEnableGetReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwEnableGetReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x14L;
+ }
+
+ @Override
+ public long getEnabled() {
+ return enabled;
+ }
+
+ @Override
+ public OFBsnBwEnableGetReply.Builder setEnabled(long enabled) {
+ this.enabled = enabled;
+ this.enabledSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnBwEnableGetReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long enabled = this.enabledSet ? this.enabled : parentMessage.enabled;
+
+ //
+ return new OFBsnBwEnableGetReplyVer10(
+ xid,
+ enabled
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnBwEnableGetReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean enabledSet;
+ private long enabled;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwEnableGetReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x14L;
+ }
+
+ @Override
+ public long getEnabled() {
+ return enabled;
+ }
+
+ @Override
+ public OFBsnBwEnableGetReply.Builder setEnabled(long enabled) {
+ this.enabled = enabled;
+ this.enabledSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnBwEnableGetReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long enabled = this.enabledSet ? this.enabled : DEFAULT_ENABLED;
+
+
+ return new OFBsnBwEnableGetReplyVer10(
+ xid,
+ enabled
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnBwEnableGetReply> {
+ @Override
+ public OFBsnBwEnableGetReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x14L
+ int subtype = bb.readInt();
+ if(subtype != 0x14)
+ throw new OFParseError("Wrong subtype: Expected=0x14L(0x14L), got="+subtype);
+ long enabled = U32.f(bb.readInt());
+
+ OFBsnBwEnableGetReplyVer10 bsnBwEnableGetReplyVer10 = new OFBsnBwEnableGetReplyVer10(
+ xid,
+ enabled
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnBwEnableGetReplyVer10);
+ return bsnBwEnableGetReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnBwEnableGetReplyVer10Funnel FUNNEL = new OFBsnBwEnableGetReplyVer10Funnel();
+ static class OFBsnBwEnableGetReplyVer10Funnel implements Funnel<OFBsnBwEnableGetReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnBwEnableGetReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x14L
+ sink.putInt(0x14);
+ sink.putLong(message.enabled);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnBwEnableGetReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnBwEnableGetReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x14L
+ bb.writeInt(0x14);
+ bb.writeInt(U32.t(message.enabled));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnBwEnableGetReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("enabled=").append(enabled);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnBwEnableGetReplyVer10 other = (OFBsnBwEnableGetReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( enabled != other.enabled)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (enabled ^ (enabled >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetRequestVer10.java
new file mode 100644
index 0000000..f8ad0a0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableGetRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwEnableGetRequestVer10 implements OFBsnBwEnableGetRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnBwEnableGetRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+//
+ // Immutable default instance
+ final static OFBsnBwEnableGetRequestVer10 DEFAULT = new OFBsnBwEnableGetRequestVer10(
+ DEFAULT_XID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnBwEnableGetRequestVer10(long xid) {
+ this.xid = xid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x13L;
+ }
+
+
+
+ public OFBsnBwEnableGetRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnBwEnableGetRequest.Builder {
+ final OFBsnBwEnableGetRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ BuilderWithParent(OFBsnBwEnableGetRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwEnableGetRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x13L;
+ }
+
+
+
+ @Override
+ public OFBsnBwEnableGetRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+ //
+ return new OFBsnBwEnableGetRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnBwEnableGetRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwEnableGetRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x13L;
+ }
+
+//
+ @Override
+ public OFBsnBwEnableGetRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+ return new OFBsnBwEnableGetRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnBwEnableGetRequest> {
+ @Override
+ public OFBsnBwEnableGetRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x13L
+ int subtype = bb.readInt();
+ if(subtype != 0x13)
+ throw new OFParseError("Wrong subtype: Expected=0x13L(0x13L), got="+subtype);
+
+ OFBsnBwEnableGetRequestVer10 bsnBwEnableGetRequestVer10 = new OFBsnBwEnableGetRequestVer10(
+ xid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnBwEnableGetRequestVer10);
+ return bsnBwEnableGetRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnBwEnableGetRequestVer10Funnel FUNNEL = new OFBsnBwEnableGetRequestVer10Funnel();
+ static class OFBsnBwEnableGetRequestVer10Funnel implements Funnel<OFBsnBwEnableGetRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnBwEnableGetRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x13L
+ sink.putInt(0x13);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnBwEnableGetRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnBwEnableGetRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x13L
+ bb.writeInt(0x13);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnBwEnableGetRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnBwEnableGetRequestVer10 other = (OFBsnBwEnableGetRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetReplyVer10.java
new file mode 100644
index 0000000..4370e74
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetReplyVer10.java
@@ -0,0 +1,408 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwEnableSetReplyVer10 implements OFBsnBwEnableSetReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnBwEnableSetReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_ENABLE = 0x0L;
+ private final static long DEFAULT_STATUS = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long enable;
+ private final long status;
+//
+ // Immutable default instance
+ final static OFBsnBwEnableSetReplyVer10 DEFAULT = new OFBsnBwEnableSetReplyVer10(
+ DEFAULT_XID, DEFAULT_ENABLE, DEFAULT_STATUS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnBwEnableSetReplyVer10(long xid, long enable, long status) {
+ this.xid = xid;
+ this.enable = enable;
+ this.status = status;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x17L;
+ }
+
+ @Override
+ public long getEnable() {
+ return enable;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+
+
+ public OFBsnBwEnableSetReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnBwEnableSetReply.Builder {
+ final OFBsnBwEnableSetReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean enableSet;
+ private long enable;
+ private boolean statusSet;
+ private long status;
+
+ BuilderWithParent(OFBsnBwEnableSetReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwEnableSetReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x17L;
+ }
+
+ @Override
+ public long getEnable() {
+ return enable;
+ }
+
+ @Override
+ public OFBsnBwEnableSetReply.Builder setEnable(long enable) {
+ this.enable = enable;
+ this.enableSet = true;
+ return this;
+ }
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnBwEnableSetReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnBwEnableSetReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long enable = this.enableSet ? this.enable : parentMessage.enable;
+ long status = this.statusSet ? this.status : parentMessage.status;
+
+ //
+ return new OFBsnBwEnableSetReplyVer10(
+ xid,
+ enable,
+ status
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnBwEnableSetReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean enableSet;
+ private long enable;
+ private boolean statusSet;
+ private long status;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwEnableSetReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x17L;
+ }
+
+ @Override
+ public long getEnable() {
+ return enable;
+ }
+
+ @Override
+ public OFBsnBwEnableSetReply.Builder setEnable(long enable) {
+ this.enable = enable;
+ this.enableSet = true;
+ return this;
+ }
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnBwEnableSetReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnBwEnableSetReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long enable = this.enableSet ? this.enable : DEFAULT_ENABLE;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+ return new OFBsnBwEnableSetReplyVer10(
+ xid,
+ enable,
+ status
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnBwEnableSetReply> {
+ @Override
+ public OFBsnBwEnableSetReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x17L
+ int subtype = bb.readInt();
+ if(subtype != 0x17)
+ throw new OFParseError("Wrong subtype: Expected=0x17L(0x17L), got="+subtype);
+ long enable = U32.f(bb.readInt());
+ long status = U32.f(bb.readInt());
+
+ OFBsnBwEnableSetReplyVer10 bsnBwEnableSetReplyVer10 = new OFBsnBwEnableSetReplyVer10(
+ xid,
+ enable,
+ status
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnBwEnableSetReplyVer10);
+ return bsnBwEnableSetReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnBwEnableSetReplyVer10Funnel FUNNEL = new OFBsnBwEnableSetReplyVer10Funnel();
+ static class OFBsnBwEnableSetReplyVer10Funnel implements Funnel<OFBsnBwEnableSetReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnBwEnableSetReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x17L
+ sink.putInt(0x17);
+ sink.putLong(message.enable);
+ sink.putLong(message.status);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnBwEnableSetReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnBwEnableSetReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x17L
+ bb.writeInt(0x17);
+ bb.writeInt(U32.t(message.enable));
+ bb.writeInt(U32.t(message.status));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnBwEnableSetReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("enable=").append(enable);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnBwEnableSetReplyVer10 other = (OFBsnBwEnableSetReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( enable != other.enable)
+ return false;
+ if( status != other.status)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (enable ^ (enable >>> 32));
+ result = prime * (int) (status ^ (status >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetRequestVer10.java
new file mode 100644
index 0000000..5e765a0
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnBwEnableSetRequestVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnBwEnableSetRequestVer10 implements OFBsnBwEnableSetRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnBwEnableSetRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_ENABLE = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long enable;
+//
+ // Immutable default instance
+ final static OFBsnBwEnableSetRequestVer10 DEFAULT = new OFBsnBwEnableSetRequestVer10(
+ DEFAULT_XID, DEFAULT_ENABLE
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnBwEnableSetRequestVer10(long xid, long enable) {
+ this.xid = xid;
+ this.enable = enable;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x12L;
+ }
+
+ @Override
+ public long getEnable() {
+ return enable;
+ }
+
+
+
+ public OFBsnBwEnableSetRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnBwEnableSetRequest.Builder {
+ final OFBsnBwEnableSetRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean enableSet;
+ private long enable;
+
+ BuilderWithParent(OFBsnBwEnableSetRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwEnableSetRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x12L;
+ }
+
+ @Override
+ public long getEnable() {
+ return enable;
+ }
+
+ @Override
+ public OFBsnBwEnableSetRequest.Builder setEnable(long enable) {
+ this.enable = enable;
+ this.enableSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnBwEnableSetRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long enable = this.enableSet ? this.enable : parentMessage.enable;
+
+ //
+ return new OFBsnBwEnableSetRequestVer10(
+ xid,
+ enable
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnBwEnableSetRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean enableSet;
+ private long enable;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnBwEnableSetRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x12L;
+ }
+
+ @Override
+ public long getEnable() {
+ return enable;
+ }
+
+ @Override
+ public OFBsnBwEnableSetRequest.Builder setEnable(long enable) {
+ this.enable = enable;
+ this.enableSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnBwEnableSetRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long enable = this.enableSet ? this.enable : DEFAULT_ENABLE;
+
+
+ return new OFBsnBwEnableSetRequestVer10(
+ xid,
+ enable
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnBwEnableSetRequest> {
+ @Override
+ public OFBsnBwEnableSetRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x12L
+ int subtype = bb.readInt();
+ if(subtype != 0x12)
+ throw new OFParseError("Wrong subtype: Expected=0x12L(0x12L), got="+subtype);
+ long enable = U32.f(bb.readInt());
+
+ OFBsnBwEnableSetRequestVer10 bsnBwEnableSetRequestVer10 = new OFBsnBwEnableSetRequestVer10(
+ xid,
+ enable
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnBwEnableSetRequestVer10);
+ return bsnBwEnableSetRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnBwEnableSetRequestVer10Funnel FUNNEL = new OFBsnBwEnableSetRequestVer10Funnel();
+ static class OFBsnBwEnableSetRequestVer10Funnel implements Funnel<OFBsnBwEnableSetRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnBwEnableSetRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x12L
+ sink.putInt(0x12);
+ sink.putLong(message.enable);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnBwEnableSetRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnBwEnableSetRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x12L
+ bb.writeInt(0x12);
+ bb.writeInt(U32.t(message.enable));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnBwEnableSetRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("enable=").append(enable);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnBwEnableSetRequestVer10 other = (OFBsnBwEnableSetRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( enable != other.enable)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (enable ^ (enable >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesReplyVer10.java
new file mode 100644
index 0000000..e63c1f7
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesReplyVer10.java
@@ -0,0 +1,375 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetInterfacesReplyVer10 implements OFBsnGetInterfacesReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnGetInterfacesReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 16;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static List<OFBsnInterface> DEFAULT_INTERFACES = ImmutableList.<OFBsnInterface>of();
+
+ // OF message fields
+ private final long xid;
+ private final List<OFBsnInterface> interfaces;
+//
+ // Immutable default instance
+ final static OFBsnGetInterfacesReplyVer10 DEFAULT = new OFBsnGetInterfacesReplyVer10(
+ DEFAULT_XID, DEFAULT_INTERFACES
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnGetInterfacesReplyVer10(long xid, List<OFBsnInterface> interfaces) {
+ this.xid = xid;
+ this.interfaces = interfaces;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xaL;
+ }
+
+ @Override
+ public List<OFBsnInterface> getInterfaces() {
+ return interfaces;
+ }
+
+
+
+ public OFBsnGetInterfacesReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnGetInterfacesReply.Builder {
+ final OFBsnGetInterfacesReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean interfacesSet;
+ private List<OFBsnInterface> interfaces;
+
+ BuilderWithParent(OFBsnGetInterfacesReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetInterfacesReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xaL;
+ }
+
+ @Override
+ public List<OFBsnInterface> getInterfaces() {
+ return interfaces;
+ }
+
+ @Override
+ public OFBsnGetInterfacesReply.Builder setInterfaces(List<OFBsnInterface> interfaces) {
+ this.interfaces = interfaces;
+ this.interfacesSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnGetInterfacesReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ List<OFBsnInterface> interfaces = this.interfacesSet ? this.interfaces : parentMessage.interfaces;
+ if(interfaces == null)
+ throw new NullPointerException("Property interfaces must not be null");
+
+ //
+ return new OFBsnGetInterfacesReplyVer10(
+ xid,
+ interfaces
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnGetInterfacesReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean interfacesSet;
+ private List<OFBsnInterface> interfaces;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetInterfacesReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xaL;
+ }
+
+ @Override
+ public List<OFBsnInterface> getInterfaces() {
+ return interfaces;
+ }
+
+ @Override
+ public OFBsnGetInterfacesReply.Builder setInterfaces(List<OFBsnInterface> interfaces) {
+ this.interfaces = interfaces;
+ this.interfacesSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnGetInterfacesReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ List<OFBsnInterface> interfaces = this.interfacesSet ? this.interfaces : DEFAULT_INTERFACES;
+ if(interfaces == null)
+ throw new NullPointerException("Property interfaces must not be null");
+
+
+ return new OFBsnGetInterfacesReplyVer10(
+ xid,
+ interfaces
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnGetInterfacesReply> {
+ @Override
+ public OFBsnGetInterfacesReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0xaL
+ int subtype = bb.readInt();
+ if(subtype != 0xa)
+ throw new OFParseError("Wrong subtype: Expected=0xaL(0xaL), got="+subtype);
+ List<OFBsnInterface> interfaces = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFBsnInterfaceVer10.READER);
+
+ OFBsnGetInterfacesReplyVer10 bsnGetInterfacesReplyVer10 = new OFBsnGetInterfacesReplyVer10(
+ xid,
+ interfaces
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnGetInterfacesReplyVer10);
+ return bsnGetInterfacesReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnGetInterfacesReplyVer10Funnel FUNNEL = new OFBsnGetInterfacesReplyVer10Funnel();
+ static class OFBsnGetInterfacesReplyVer10Funnel implements Funnel<OFBsnGetInterfacesReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnGetInterfacesReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0xaL
+ sink.putInt(0xa);
+ FunnelUtils.putList(message.interfaces, sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnGetInterfacesReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnGetInterfacesReplyVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0xaL
+ bb.writeInt(0xa);
+ ChannelUtils.writeList(bb, message.interfaces);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnGetInterfacesReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("interfaces=").append(interfaces);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnGetInterfacesReplyVer10 other = (OFBsnGetInterfacesReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (interfaces == null) {
+ if (other.interfaces != null)
+ return false;
+ } else if (!interfaces.equals(other.interfaces))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((interfaces == null) ? 0 : interfaces.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesRequestVer10.java
new file mode 100644
index 0000000..f5ddab5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetInterfacesRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetInterfacesRequestVer10 implements OFBsnGetInterfacesRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnGetInterfacesRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+//
+ // Immutable default instance
+ final static OFBsnGetInterfacesRequestVer10 DEFAULT = new OFBsnGetInterfacesRequestVer10(
+ DEFAULT_XID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnGetInterfacesRequestVer10(long xid) {
+ this.xid = xid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x9L;
+ }
+
+
+
+ public OFBsnGetInterfacesRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnGetInterfacesRequest.Builder {
+ final OFBsnGetInterfacesRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ BuilderWithParent(OFBsnGetInterfacesRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetInterfacesRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x9L;
+ }
+
+
+
+ @Override
+ public OFBsnGetInterfacesRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+ //
+ return new OFBsnGetInterfacesRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnGetInterfacesRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetInterfacesRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x9L;
+ }
+
+//
+ @Override
+ public OFBsnGetInterfacesRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+ return new OFBsnGetInterfacesRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnGetInterfacesRequest> {
+ @Override
+ public OFBsnGetInterfacesRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x9L
+ int subtype = bb.readInt();
+ if(subtype != 0x9)
+ throw new OFParseError("Wrong subtype: Expected=0x9L(0x9L), got="+subtype);
+
+ OFBsnGetInterfacesRequestVer10 bsnGetInterfacesRequestVer10 = new OFBsnGetInterfacesRequestVer10(
+ xid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnGetInterfacesRequestVer10);
+ return bsnGetInterfacesRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnGetInterfacesRequestVer10Funnel FUNNEL = new OFBsnGetInterfacesRequestVer10Funnel();
+ static class OFBsnGetInterfacesRequestVer10Funnel implements Funnel<OFBsnGetInterfacesRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnGetInterfacesRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x9L
+ sink.putInt(0x9);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnGetInterfacesRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnGetInterfacesRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x9L
+ bb.writeInt(0x9);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnGetInterfacesRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnGetInterfacesRequestVer10 other = (OFBsnGetInterfacesRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskReplyVer10.java
new file mode 100644
index 0000000..45fdba5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskReplyVer10.java
@@ -0,0 +1,413 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetIpMaskReplyVer10 implements OFBsnGetIpMaskReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnGetIpMaskReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static short DEFAULT_INDEX = (short) 0x0;
+ private final static long DEFAULT_MASK = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final short index;
+ private final long mask;
+//
+ // Immutable default instance
+ final static OFBsnGetIpMaskReplyVer10 DEFAULT = new OFBsnGetIpMaskReplyVer10(
+ DEFAULT_XID, DEFAULT_INDEX, DEFAULT_MASK
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnGetIpMaskReplyVer10(long xid, short index, long mask) {
+ this.xid = xid;
+ this.index = index;
+ this.mask = mask;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x2L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+ @Override
+ public long getMask() {
+ return mask;
+ }
+
+
+
+ public OFBsnGetIpMaskReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnGetIpMaskReply.Builder {
+ final OFBsnGetIpMaskReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean indexSet;
+ private short index;
+ private boolean maskSet;
+ private long mask;
+
+ BuilderWithParent(OFBsnGetIpMaskReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetIpMaskReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x2L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+ @Override
+ public OFBsnGetIpMaskReply.Builder setIndex(short index) {
+ this.index = index;
+ this.indexSet = true;
+ return this;
+ }
+ @Override
+ public long getMask() {
+ return mask;
+ }
+
+ @Override
+ public OFBsnGetIpMaskReply.Builder setMask(long mask) {
+ this.mask = mask;
+ this.maskSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnGetIpMaskReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ short index = this.indexSet ? this.index : parentMessage.index;
+ long mask = this.maskSet ? this.mask : parentMessage.mask;
+
+ //
+ return new OFBsnGetIpMaskReplyVer10(
+ xid,
+ index,
+ mask
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnGetIpMaskReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean indexSet;
+ private short index;
+ private boolean maskSet;
+ private long mask;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetIpMaskReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x2L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+ @Override
+ public OFBsnGetIpMaskReply.Builder setIndex(short index) {
+ this.index = index;
+ this.indexSet = true;
+ return this;
+ }
+ @Override
+ public long getMask() {
+ return mask;
+ }
+
+ @Override
+ public OFBsnGetIpMaskReply.Builder setMask(long mask) {
+ this.mask = mask;
+ this.maskSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnGetIpMaskReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ short index = this.indexSet ? this.index : DEFAULT_INDEX;
+ long mask = this.maskSet ? this.mask : DEFAULT_MASK;
+
+
+ return new OFBsnGetIpMaskReplyVer10(
+ xid,
+ index,
+ mask
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnGetIpMaskReply> {
+ @Override
+ public OFBsnGetIpMaskReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x2L
+ int subtype = bb.readInt();
+ if(subtype != 0x2)
+ throw new OFParseError("Wrong subtype: Expected=0x2L(0x2L), got="+subtype);
+ short index = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+ long mask = U32.f(bb.readInt());
+
+ OFBsnGetIpMaskReplyVer10 bsnGetIpMaskReplyVer10 = new OFBsnGetIpMaskReplyVer10(
+ xid,
+ index,
+ mask
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnGetIpMaskReplyVer10);
+ return bsnGetIpMaskReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnGetIpMaskReplyVer10Funnel FUNNEL = new OFBsnGetIpMaskReplyVer10Funnel();
+ static class OFBsnGetIpMaskReplyVer10Funnel implements Funnel<OFBsnGetIpMaskReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnGetIpMaskReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x2L
+ sink.putInt(0x2);
+ sink.putShort(message.index);
+ // skip pad (3 bytes)
+ sink.putLong(message.mask);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnGetIpMaskReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnGetIpMaskReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x2L
+ bb.writeInt(0x2);
+ bb.writeByte(U8.t(message.index));
+ // pad: 3 bytes
+ bb.writeZero(3);
+ bb.writeInt(U32.t(message.mask));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnGetIpMaskReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("index=").append(index);
+ b.append(", ");
+ b.append("mask=").append(mask);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnGetIpMaskReplyVer10 other = (OFBsnGetIpMaskReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( index != other.index)
+ return false;
+ if( mask != other.mask)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + index;
+ result = prime * (int) (mask ^ (mask >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskRequestVer10.java
new file mode 100644
index 0000000..f35f0dc
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetIpMaskRequestVer10.java
@@ -0,0 +1,366 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetIpMaskRequestVer10 implements OFBsnGetIpMaskRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnGetIpMaskRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static short DEFAULT_INDEX = (short) 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final short index;
+//
+ // Immutable default instance
+ final static OFBsnGetIpMaskRequestVer10 DEFAULT = new OFBsnGetIpMaskRequestVer10(
+ DEFAULT_XID, DEFAULT_INDEX
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnGetIpMaskRequestVer10(long xid, short index) {
+ this.xid = xid;
+ this.index = index;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+
+
+ public OFBsnGetIpMaskRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnGetIpMaskRequest.Builder {
+ final OFBsnGetIpMaskRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean indexSet;
+ private short index;
+
+ BuilderWithParent(OFBsnGetIpMaskRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetIpMaskRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+ @Override
+ public OFBsnGetIpMaskRequest.Builder setIndex(short index) {
+ this.index = index;
+ this.indexSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnGetIpMaskRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ short index = this.indexSet ? this.index : parentMessage.index;
+
+ //
+ return new OFBsnGetIpMaskRequestVer10(
+ xid,
+ index
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnGetIpMaskRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean indexSet;
+ private short index;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetIpMaskRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+ @Override
+ public OFBsnGetIpMaskRequest.Builder setIndex(short index) {
+ this.index = index;
+ this.indexSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnGetIpMaskRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ short index = this.indexSet ? this.index : DEFAULT_INDEX;
+
+
+ return new OFBsnGetIpMaskRequestVer10(
+ xid,
+ index
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnGetIpMaskRequest> {
+ @Override
+ public OFBsnGetIpMaskRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x1L
+ int subtype = bb.readInt();
+ if(subtype != 0x1)
+ throw new OFParseError("Wrong subtype: Expected=0x1L(0x1L), got="+subtype);
+ short index = U8.f(bb.readByte());
+ // pad: 7 bytes
+ bb.skipBytes(7);
+
+ OFBsnGetIpMaskRequestVer10 bsnGetIpMaskRequestVer10 = new OFBsnGetIpMaskRequestVer10(
+ xid,
+ index
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnGetIpMaskRequestVer10);
+ return bsnGetIpMaskRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnGetIpMaskRequestVer10Funnel FUNNEL = new OFBsnGetIpMaskRequestVer10Funnel();
+ static class OFBsnGetIpMaskRequestVer10Funnel implements Funnel<OFBsnGetIpMaskRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnGetIpMaskRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x1L
+ sink.putInt(0x1);
+ sink.putShort(message.index);
+ // skip pad (7 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnGetIpMaskRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnGetIpMaskRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x1L
+ bb.writeInt(0x1);
+ bb.writeByte(U8.t(message.index));
+ // pad: 7 bytes
+ bb.writeZero(7);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnGetIpMaskRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("index=").append(index);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnGetIpMaskRequestVer10 other = (OFBsnGetIpMaskRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( index != other.index)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + index;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableReplyVer10.java
new file mode 100644
index 0000000..852182c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableReplyVer10.java
@@ -0,0 +1,418 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetL2TableReplyVer10 implements OFBsnGetL2TableReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnGetL2TableReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static short DEFAULT_L2_TABLE_ENABLE = (short) 0x0;
+ private final static int DEFAULT_L2_TABLE_PRIORITY = 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final short l2TableEnable;
+ private final int l2TablePriority;
+//
+ // Immutable default instance
+ final static OFBsnGetL2TableReplyVer10 DEFAULT = new OFBsnGetL2TableReplyVer10(
+ DEFAULT_XID, DEFAULT_L2_TABLE_ENABLE, DEFAULT_L2_TABLE_PRIORITY
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnGetL2TableReplyVer10(long xid, short l2TableEnable, int l2TablePriority) {
+ this.xid = xid;
+ this.l2TableEnable = l2TableEnable;
+ this.l2TablePriority = l2TablePriority;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xeL;
+ }
+
+ @Override
+ public short getL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+
+
+ public OFBsnGetL2TableReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnGetL2TableReply.Builder {
+ final OFBsnGetL2TableReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean l2TableEnableSet;
+ private short l2TableEnable;
+ private boolean l2TablePrioritySet;
+ private int l2TablePriority;
+
+ BuilderWithParent(OFBsnGetL2TableReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetL2TableReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xeL;
+ }
+
+ @Override
+ public short getL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public OFBsnGetL2TableReply.Builder setL2TableEnable(short l2TableEnable) {
+ this.l2TableEnable = l2TableEnable;
+ this.l2TableEnableSet = true;
+ return this;
+ }
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+ @Override
+ public OFBsnGetL2TableReply.Builder setL2TablePriority(int l2TablePriority) {
+ this.l2TablePriority = l2TablePriority;
+ this.l2TablePrioritySet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnGetL2TableReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ short l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : parentMessage.l2TableEnable;
+ int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : parentMessage.l2TablePriority;
+
+ //
+ return new OFBsnGetL2TableReplyVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnGetL2TableReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean l2TableEnableSet;
+ private short l2TableEnable;
+ private boolean l2TablePrioritySet;
+ private int l2TablePriority;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetL2TableReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xeL;
+ }
+
+ @Override
+ public short getL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public OFBsnGetL2TableReply.Builder setL2TableEnable(short l2TableEnable) {
+ this.l2TableEnable = l2TableEnable;
+ this.l2TableEnableSet = true;
+ return this;
+ }
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+ @Override
+ public OFBsnGetL2TableReply.Builder setL2TablePriority(int l2TablePriority) {
+ this.l2TablePriority = l2TablePriority;
+ this.l2TablePrioritySet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnGetL2TableReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ short l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : DEFAULT_L2_TABLE_ENABLE;
+ int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : DEFAULT_L2_TABLE_PRIORITY;
+
+
+ return new OFBsnGetL2TableReplyVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnGetL2TableReply> {
+ @Override
+ public OFBsnGetL2TableReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0xeL
+ int subtype = bb.readInt();
+ if(subtype != 0xe)
+ throw new OFParseError("Wrong subtype: Expected=0xeL(0xeL), got="+subtype);
+ short l2TableEnable = U8.f(bb.readByte());
+ // pad: 1 bytes
+ bb.skipBytes(1);
+ int l2TablePriority = U16.f(bb.readShort());
+ // pad: 4 bytes
+ bb.skipBytes(4);
+
+ OFBsnGetL2TableReplyVer10 bsnGetL2TableReplyVer10 = new OFBsnGetL2TableReplyVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnGetL2TableReplyVer10);
+ return bsnGetL2TableReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnGetL2TableReplyVer10Funnel FUNNEL = new OFBsnGetL2TableReplyVer10Funnel();
+ static class OFBsnGetL2TableReplyVer10Funnel implements Funnel<OFBsnGetL2TableReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnGetL2TableReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0xeL
+ sink.putInt(0xe);
+ sink.putShort(message.l2TableEnable);
+ // skip pad (1 bytes)
+ sink.putInt(message.l2TablePriority);
+ // skip pad (4 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnGetL2TableReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnGetL2TableReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0xeL
+ bb.writeInt(0xe);
+ bb.writeByte(U8.t(message.l2TableEnable));
+ // pad: 1 bytes
+ bb.writeZero(1);
+ bb.writeShort(U16.t(message.l2TablePriority));
+ // pad: 4 bytes
+ bb.writeZero(4);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnGetL2TableReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("l2TableEnable=").append(l2TableEnable);
+ b.append(", ");
+ b.append("l2TablePriority=").append(l2TablePriority);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnGetL2TableReplyVer10 other = (OFBsnGetL2TableReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( l2TableEnable != other.l2TableEnable)
+ return false;
+ if( l2TablePriority != other.l2TablePriority)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + l2TableEnable;
+ result = prime * result + l2TablePriority;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableRequestVer10.java
new file mode 100644
index 0000000..8d432c1
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetL2TableRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetL2TableRequestVer10 implements OFBsnGetL2TableRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnGetL2TableRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+//
+ // Immutable default instance
+ final static OFBsnGetL2TableRequestVer10 DEFAULT = new OFBsnGetL2TableRequestVer10(
+ DEFAULT_XID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnGetL2TableRequestVer10(long xid) {
+ this.xid = xid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xdL;
+ }
+
+
+
+ public OFBsnGetL2TableRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnGetL2TableRequest.Builder {
+ final OFBsnGetL2TableRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ BuilderWithParent(OFBsnGetL2TableRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetL2TableRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xdL;
+ }
+
+
+
+ @Override
+ public OFBsnGetL2TableRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+ //
+ return new OFBsnGetL2TableRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnGetL2TableRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetL2TableRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xdL;
+ }
+
+//
+ @Override
+ public OFBsnGetL2TableRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+ return new OFBsnGetL2TableRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnGetL2TableRequest> {
+ @Override
+ public OFBsnGetL2TableRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0xdL
+ int subtype = bb.readInt();
+ if(subtype != 0xd)
+ throw new OFParseError("Wrong subtype: Expected=0xdL(0xdL), got="+subtype);
+
+ OFBsnGetL2TableRequestVer10 bsnGetL2TableRequestVer10 = new OFBsnGetL2TableRequestVer10(
+ xid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnGetL2TableRequestVer10);
+ return bsnGetL2TableRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnGetL2TableRequestVer10Funnel FUNNEL = new OFBsnGetL2TableRequestVer10Funnel();
+ static class OFBsnGetL2TableRequestVer10Funnel implements Funnel<OFBsnGetL2TableRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnGetL2TableRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0xdL
+ sink.putInt(0xd);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnGetL2TableRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnGetL2TableRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0xdL
+ bb.writeInt(0xd);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnGetL2TableRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnGetL2TableRequestVer10 other = (OFBsnGetL2TableRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringReplyVer10.java
new file mode 100644
index 0000000..080b04f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringReplyVer10.java
@@ -0,0 +1,366 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetMirroringReplyVer10 implements OFBsnGetMirroringReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnGetMirroringReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static short DEFAULT_REPORT_MIRROR_PORTS = (short) 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final short reportMirrorPorts;
+//
+ // Immutable default instance
+ final static OFBsnGetMirroringReplyVer10 DEFAULT = new OFBsnGetMirroringReplyVer10(
+ DEFAULT_XID, DEFAULT_REPORT_MIRROR_PORTS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnGetMirroringReplyVer10(long xid, short reportMirrorPorts) {
+ this.xid = xid;
+ this.reportMirrorPorts = reportMirrorPorts;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x5L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+
+
+ public OFBsnGetMirroringReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnGetMirroringReply.Builder {
+ final OFBsnGetMirroringReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean reportMirrorPortsSet;
+ private short reportMirrorPorts;
+
+ BuilderWithParent(OFBsnGetMirroringReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetMirroringReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x5L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+ @Override
+ public OFBsnGetMirroringReply.Builder setReportMirrorPorts(short reportMirrorPorts) {
+ this.reportMirrorPorts = reportMirrorPorts;
+ this.reportMirrorPortsSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnGetMirroringReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : parentMessage.reportMirrorPorts;
+
+ //
+ return new OFBsnGetMirroringReplyVer10(
+ xid,
+ reportMirrorPorts
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnGetMirroringReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean reportMirrorPortsSet;
+ private short reportMirrorPorts;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetMirroringReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x5L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+ @Override
+ public OFBsnGetMirroringReply.Builder setReportMirrorPorts(short reportMirrorPorts) {
+ this.reportMirrorPorts = reportMirrorPorts;
+ this.reportMirrorPortsSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnGetMirroringReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : DEFAULT_REPORT_MIRROR_PORTS;
+
+
+ return new OFBsnGetMirroringReplyVer10(
+ xid,
+ reportMirrorPorts
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnGetMirroringReply> {
+ @Override
+ public OFBsnGetMirroringReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x5L
+ int subtype = bb.readInt();
+ if(subtype != 0x5)
+ throw new OFParseError("Wrong subtype: Expected=0x5L(0x5L), got="+subtype);
+ short reportMirrorPorts = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+
+ OFBsnGetMirroringReplyVer10 bsnGetMirroringReplyVer10 = new OFBsnGetMirroringReplyVer10(
+ xid,
+ reportMirrorPorts
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnGetMirroringReplyVer10);
+ return bsnGetMirroringReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnGetMirroringReplyVer10Funnel FUNNEL = new OFBsnGetMirroringReplyVer10Funnel();
+ static class OFBsnGetMirroringReplyVer10Funnel implements Funnel<OFBsnGetMirroringReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnGetMirroringReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x5L
+ sink.putInt(0x5);
+ sink.putShort(message.reportMirrorPorts);
+ // skip pad (3 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnGetMirroringReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnGetMirroringReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x5L
+ bb.writeInt(0x5);
+ bb.writeByte(U8.t(message.reportMirrorPorts));
+ // pad: 3 bytes
+ bb.writeZero(3);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnGetMirroringReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("reportMirrorPorts=").append(reportMirrorPorts);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnGetMirroringReplyVer10 other = (OFBsnGetMirroringReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( reportMirrorPorts != other.reportMirrorPorts)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + reportMirrorPorts;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringRequestVer10.java
new file mode 100644
index 0000000..e4422dd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnGetMirroringRequestVer10.java
@@ -0,0 +1,366 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnGetMirroringRequestVer10 implements OFBsnGetMirroringRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnGetMirroringRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static short DEFAULT_REPORT_MIRROR_PORTS = (short) 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final short reportMirrorPorts;
+//
+ // Immutable default instance
+ final static OFBsnGetMirroringRequestVer10 DEFAULT = new OFBsnGetMirroringRequestVer10(
+ DEFAULT_XID, DEFAULT_REPORT_MIRROR_PORTS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnGetMirroringRequestVer10(long xid, short reportMirrorPorts) {
+ this.xid = xid;
+ this.reportMirrorPorts = reportMirrorPorts;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x4L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+
+
+ public OFBsnGetMirroringRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnGetMirroringRequest.Builder {
+ final OFBsnGetMirroringRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean reportMirrorPortsSet;
+ private short reportMirrorPorts;
+
+ BuilderWithParent(OFBsnGetMirroringRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetMirroringRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x4L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+ @Override
+ public OFBsnGetMirroringRequest.Builder setReportMirrorPorts(short reportMirrorPorts) {
+ this.reportMirrorPorts = reportMirrorPorts;
+ this.reportMirrorPortsSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnGetMirroringRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : parentMessage.reportMirrorPorts;
+
+ //
+ return new OFBsnGetMirroringRequestVer10(
+ xid,
+ reportMirrorPorts
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnGetMirroringRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean reportMirrorPortsSet;
+ private short reportMirrorPorts;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnGetMirroringRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x4L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+ @Override
+ public OFBsnGetMirroringRequest.Builder setReportMirrorPorts(short reportMirrorPorts) {
+ this.reportMirrorPorts = reportMirrorPorts;
+ this.reportMirrorPortsSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnGetMirroringRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : DEFAULT_REPORT_MIRROR_PORTS;
+
+
+ return new OFBsnGetMirroringRequestVer10(
+ xid,
+ reportMirrorPorts
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnGetMirroringRequest> {
+ @Override
+ public OFBsnGetMirroringRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x4L
+ int subtype = bb.readInt();
+ if(subtype != 0x4)
+ throw new OFParseError("Wrong subtype: Expected=0x4L(0x4L), got="+subtype);
+ short reportMirrorPorts = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+
+ OFBsnGetMirroringRequestVer10 bsnGetMirroringRequestVer10 = new OFBsnGetMirroringRequestVer10(
+ xid,
+ reportMirrorPorts
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnGetMirroringRequestVer10);
+ return bsnGetMirroringRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnGetMirroringRequestVer10Funnel FUNNEL = new OFBsnGetMirroringRequestVer10Funnel();
+ static class OFBsnGetMirroringRequestVer10Funnel implements Funnel<OFBsnGetMirroringRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnGetMirroringRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x4L
+ sink.putInt(0x4);
+ sink.putShort(message.reportMirrorPorts);
+ // skip pad (3 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnGetMirroringRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnGetMirroringRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x4L
+ bb.writeInt(0x4);
+ bb.writeByte(U8.t(message.reportMirrorPorts));
+ // pad: 3 bytes
+ bb.writeZero(3);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnGetMirroringRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("reportMirrorPorts=").append(reportMirrorPorts);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnGetMirroringRequestVer10 other = (OFBsnGetMirroringRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( reportMirrorPorts != other.reportMirrorPorts)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + reportMirrorPorts;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHeaderVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHeaderVer10.java
new file mode 100644
index 0000000..e2d6efe
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHeaderVer10.java
@@ -0,0 +1,169 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+import java.util.Set;
+
+abstract class OFBsnHeaderVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 16;
+
+
+ public final static OFBsnHeaderVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFBsnHeader> {
+ @Override
+ public OFBsnHeader readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ int subtype = bb.readInt();
+ bb.readerIndex(start);
+ switch(subtype) {
+ case 0x16:
+ // discriminator value 0x16L=0x16L for class OFBsnBwClearDataReplyVer10
+ return OFBsnBwClearDataReplyVer10.READER.readFrom(bb);
+ case 0x15:
+ // discriminator value 0x15L=0x15L for class OFBsnBwClearDataRequestVer10
+ return OFBsnBwClearDataRequestVer10.READER.readFrom(bb);
+ case 0x14:
+ // discriminator value 0x14L=0x14L for class OFBsnBwEnableGetReplyVer10
+ return OFBsnBwEnableGetReplyVer10.READER.readFrom(bb);
+ case 0x13:
+ // discriminator value 0x13L=0x13L for class OFBsnBwEnableGetRequestVer10
+ return OFBsnBwEnableGetRequestVer10.READER.readFrom(bb);
+ case 0x17:
+ // discriminator value 0x17L=0x17L for class OFBsnBwEnableSetReplyVer10
+ return OFBsnBwEnableSetReplyVer10.READER.readFrom(bb);
+ case 0x12:
+ // discriminator value 0x12L=0x12L for class OFBsnBwEnableSetRequestVer10
+ return OFBsnBwEnableSetRequestVer10.READER.readFrom(bb);
+ case 0xa:
+ // discriminator value 0xaL=0xaL for class OFBsnGetInterfacesReplyVer10
+ return OFBsnGetInterfacesReplyVer10.READER.readFrom(bb);
+ case 0x9:
+ // discriminator value 0x9L=0x9L for class OFBsnGetInterfacesRequestVer10
+ return OFBsnGetInterfacesRequestVer10.READER.readFrom(bb);
+ case 0x2:
+ // discriminator value 0x2L=0x2L for class OFBsnGetIpMaskReplyVer10
+ return OFBsnGetIpMaskReplyVer10.READER.readFrom(bb);
+ case 0x1:
+ // discriminator value 0x1L=0x1L for class OFBsnGetIpMaskRequestVer10
+ return OFBsnGetIpMaskRequestVer10.READER.readFrom(bb);
+ case 0xe:
+ // discriminator value 0xeL=0xeL for class OFBsnGetL2TableReplyVer10
+ return OFBsnGetL2TableReplyVer10.READER.readFrom(bb);
+ case 0xd:
+ // discriminator value 0xdL=0xdL for class OFBsnGetL2TableRequestVer10
+ return OFBsnGetL2TableRequestVer10.READER.readFrom(bb);
+ case 0x5:
+ // discriminator value 0x5L=0x5L for class OFBsnGetMirroringReplyVer10
+ return OFBsnGetMirroringReplyVer10.READER.readFrom(bb);
+ case 0x4:
+ // discriminator value 0x4L=0x4L for class OFBsnGetMirroringRequestVer10
+ return OFBsnGetMirroringRequestVer10.READER.readFrom(bb);
+ case 0x1c:
+ // discriminator value 0x1cL=0x1cL for class OFBsnHybridGetReplyVer10
+ return OFBsnHybridGetReplyVer10.READER.readFrom(bb);
+ case 0x1b:
+ // discriminator value 0x1bL=0x1bL for class OFBsnHybridGetRequestVer10
+ return OFBsnHybridGetRequestVer10.READER.readFrom(bb);
+ case 0x22:
+ // discriminator value 0x22L=0x22L for class OFBsnPduRxReplyVer10
+ return OFBsnPduRxReplyVer10.READER.readFrom(bb);
+ case 0x21:
+ // discriminator value 0x21L=0x21L for class OFBsnPduRxRequestVer10
+ return OFBsnPduRxRequestVer10.READER.readFrom(bb);
+ case 0x23:
+ // discriminator value 0x23L=0x23L for class OFBsnPduRxTimeoutVer10
+ return OFBsnPduRxTimeoutVer10.READER.readFrom(bb);
+ case 0x20:
+ // discriminator value 0x20L=0x20L for class OFBsnPduTxReplyVer10
+ return OFBsnPduTxReplyVer10.READER.readFrom(bb);
+ case 0x1f:
+ // discriminator value 0x1fL=0x1fL for class OFBsnPduTxRequestVer10
+ return OFBsnPduTxRequestVer10.READER.readFrom(bb);
+ case 0x0:
+ // discriminator value 0x0L=0x0L for class OFBsnSetIpMaskVer10
+ return OFBsnSetIpMaskVer10.READER.readFrom(bb);
+ case 0x18:
+ // discriminator value 0x18L=0x18L for class OFBsnSetL2TableReplyVer10
+ return OFBsnSetL2TableReplyVer10.READER.readFrom(bb);
+ case 0xc:
+ // discriminator value 0xcL=0xcL for class OFBsnSetL2TableRequestVer10
+ return OFBsnSetL2TableRequestVer10.READER.readFrom(bb);
+ case 0x3:
+ // discriminator value 0x3L=0x3L for class OFBsnSetMirroringVer10
+ return OFBsnSetMirroringVer10.READER.readFrom(bb);
+ case 0x19:
+ // discriminator value 0x19L=0x19L for class OFBsnSetPktinSuppressionReplyVer10
+ return OFBsnSetPktinSuppressionReplyVer10.READER.readFrom(bb);
+ case 0xb:
+ // discriminator value 0xbL=0xbL for class OFBsnSetPktinSuppressionRequestVer10
+ return OFBsnSetPktinSuppressionRequestVer10.READER.readFrom(bb);
+ case 0x6:
+ // discriminator value 0x6L=0x6L for class OFBsnShellCommandVer10
+ return OFBsnShellCommandVer10.READER.readFrom(bb);
+ case 0x7:
+ // discriminator value 0x7L=0x7L for class OFBsnShellOutputVer10
+ return OFBsnShellOutputVer10.READER.readFrom(bb);
+ case 0x8:
+ // discriminator value 0x8L=0x8L for class OFBsnShellStatusVer10
+ return OFBsnShellStatusVer10.READER.readFrom(bb);
+ case 0x10:
+ // discriminator value 0x10L=0x10L for class OFBsnVirtualPortCreateReplyVer10
+ return OFBsnVirtualPortCreateReplyVer10.READER.readFrom(bb);
+ case 0xf:
+ // discriminator value 0xfL=0xfL for class OFBsnVirtualPortCreateRequestVer10
+ return OFBsnVirtualPortCreateRequestVer10.READER.readFrom(bb);
+ case 0x1a:
+ // discriminator value 0x1aL=0x1aL for class OFBsnVirtualPortRemoveReplyVer10
+ return OFBsnVirtualPortRemoveReplyVer10.READER.readFrom(bb);
+ case 0x11:
+ // discriminator value 0x11L=0x11L for class OFBsnVirtualPortRemoveRequestVer10
+ return OFBsnVirtualPortRemoveRequestVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator subtype of class OFBsnHeaderVer10: " + subtype);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetReplyVer10.java
new file mode 100644
index 0000000..afe00bd
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetReplyVer10.java
@@ -0,0 +1,418 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnHybridGetReplyVer10 implements OFBsnHybridGetReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnHybridGetReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static short DEFAULT_HYBRID_ENABLE = (short) 0x0;
+ private final static int DEFAULT_HYBRID_VERSION = 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final short hybridEnable;
+ private final int hybridVersion;
+//
+ // Immutable default instance
+ final static OFBsnHybridGetReplyVer10 DEFAULT = new OFBsnHybridGetReplyVer10(
+ DEFAULT_XID, DEFAULT_HYBRID_ENABLE, DEFAULT_HYBRID_VERSION
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnHybridGetReplyVer10(long xid, short hybridEnable, int hybridVersion) {
+ this.xid = xid;
+ this.hybridEnable = hybridEnable;
+ this.hybridVersion = hybridVersion;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1cL;
+ }
+
+ @Override
+ public short getHybridEnable() {
+ return hybridEnable;
+ }
+
+ @Override
+ public int getHybridVersion() {
+ return hybridVersion;
+ }
+
+
+
+ public OFBsnHybridGetReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnHybridGetReply.Builder {
+ final OFBsnHybridGetReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean hybridEnableSet;
+ private short hybridEnable;
+ private boolean hybridVersionSet;
+ private int hybridVersion;
+
+ BuilderWithParent(OFBsnHybridGetReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnHybridGetReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1cL;
+ }
+
+ @Override
+ public short getHybridEnable() {
+ return hybridEnable;
+ }
+
+ @Override
+ public OFBsnHybridGetReply.Builder setHybridEnable(short hybridEnable) {
+ this.hybridEnable = hybridEnable;
+ this.hybridEnableSet = true;
+ return this;
+ }
+ @Override
+ public int getHybridVersion() {
+ return hybridVersion;
+ }
+
+ @Override
+ public OFBsnHybridGetReply.Builder setHybridVersion(int hybridVersion) {
+ this.hybridVersion = hybridVersion;
+ this.hybridVersionSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnHybridGetReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ short hybridEnable = this.hybridEnableSet ? this.hybridEnable : parentMessage.hybridEnable;
+ int hybridVersion = this.hybridVersionSet ? this.hybridVersion : parentMessage.hybridVersion;
+
+ //
+ return new OFBsnHybridGetReplyVer10(
+ xid,
+ hybridEnable,
+ hybridVersion
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnHybridGetReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean hybridEnableSet;
+ private short hybridEnable;
+ private boolean hybridVersionSet;
+ private int hybridVersion;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnHybridGetReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1cL;
+ }
+
+ @Override
+ public short getHybridEnable() {
+ return hybridEnable;
+ }
+
+ @Override
+ public OFBsnHybridGetReply.Builder setHybridEnable(short hybridEnable) {
+ this.hybridEnable = hybridEnable;
+ this.hybridEnableSet = true;
+ return this;
+ }
+ @Override
+ public int getHybridVersion() {
+ return hybridVersion;
+ }
+
+ @Override
+ public OFBsnHybridGetReply.Builder setHybridVersion(int hybridVersion) {
+ this.hybridVersion = hybridVersion;
+ this.hybridVersionSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnHybridGetReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ short hybridEnable = this.hybridEnableSet ? this.hybridEnable : DEFAULT_HYBRID_ENABLE;
+ int hybridVersion = this.hybridVersionSet ? this.hybridVersion : DEFAULT_HYBRID_VERSION;
+
+
+ return new OFBsnHybridGetReplyVer10(
+ xid,
+ hybridEnable,
+ hybridVersion
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnHybridGetReply> {
+ @Override
+ public OFBsnHybridGetReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x1cL
+ int subtype = bb.readInt();
+ if(subtype != 0x1c)
+ throw new OFParseError("Wrong subtype: Expected=0x1cL(0x1cL), got="+subtype);
+ short hybridEnable = U8.f(bb.readByte());
+ // pad: 1 bytes
+ bb.skipBytes(1);
+ int hybridVersion = U16.f(bb.readShort());
+ // pad: 4 bytes
+ bb.skipBytes(4);
+
+ OFBsnHybridGetReplyVer10 bsnHybridGetReplyVer10 = new OFBsnHybridGetReplyVer10(
+ xid,
+ hybridEnable,
+ hybridVersion
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnHybridGetReplyVer10);
+ return bsnHybridGetReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnHybridGetReplyVer10Funnel FUNNEL = new OFBsnHybridGetReplyVer10Funnel();
+ static class OFBsnHybridGetReplyVer10Funnel implements Funnel<OFBsnHybridGetReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnHybridGetReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x1cL
+ sink.putInt(0x1c);
+ sink.putShort(message.hybridEnable);
+ // skip pad (1 bytes)
+ sink.putInt(message.hybridVersion);
+ // skip pad (4 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnHybridGetReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnHybridGetReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x1cL
+ bb.writeInt(0x1c);
+ bb.writeByte(U8.t(message.hybridEnable));
+ // pad: 1 bytes
+ bb.writeZero(1);
+ bb.writeShort(U16.t(message.hybridVersion));
+ // pad: 4 bytes
+ bb.writeZero(4);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnHybridGetReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("hybridEnable=").append(hybridEnable);
+ b.append(", ");
+ b.append("hybridVersion=").append(hybridVersion);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnHybridGetReplyVer10 other = (OFBsnHybridGetReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( hybridEnable != other.hybridEnable)
+ return false;
+ if( hybridVersion != other.hybridVersion)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + hybridEnable;
+ result = prime * result + hybridVersion;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetRequestVer10.java
new file mode 100644
index 0000000..3282c8d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnHybridGetRequestVer10.java
@@ -0,0 +1,314 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnHybridGetRequestVer10 implements OFBsnHybridGetRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnHybridGetRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 16;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+//
+ // Immutable default instance
+ final static OFBsnHybridGetRequestVer10 DEFAULT = new OFBsnHybridGetRequestVer10(
+ DEFAULT_XID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnHybridGetRequestVer10(long xid) {
+ this.xid = xid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1bL;
+ }
+
+
+
+ public OFBsnHybridGetRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnHybridGetRequest.Builder {
+ final OFBsnHybridGetRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ BuilderWithParent(OFBsnHybridGetRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnHybridGetRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1bL;
+ }
+
+
+
+ @Override
+ public OFBsnHybridGetRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+ //
+ return new OFBsnHybridGetRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnHybridGetRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnHybridGetRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1bL;
+ }
+
+//
+ @Override
+ public OFBsnHybridGetRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+ return new OFBsnHybridGetRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnHybridGetRequest> {
+ @Override
+ public OFBsnHybridGetRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 16)
+ throw new OFParseError("Wrong length: Expected=16(16), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x1bL
+ int subtype = bb.readInt();
+ if(subtype != 0x1b)
+ throw new OFParseError("Wrong subtype: Expected=0x1bL(0x1bL), got="+subtype);
+
+ OFBsnHybridGetRequestVer10 bsnHybridGetRequestVer10 = new OFBsnHybridGetRequestVer10(
+ xid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnHybridGetRequestVer10);
+ return bsnHybridGetRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnHybridGetRequestVer10Funnel FUNNEL = new OFBsnHybridGetRequestVer10Funnel();
+ static class OFBsnHybridGetRequestVer10Funnel implements Funnel<OFBsnHybridGetRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnHybridGetRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 16
+ sink.putShort((short) 0x10);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x1bL
+ sink.putInt(0x1b);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnHybridGetRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnHybridGetRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 16
+ bb.writeShort((short) 0x10);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x1bL
+ bb.writeInt(0x1b);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnHybridGetRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnHybridGetRequestVer10 other = (OFBsnHybridGetRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnInterfaceVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnInterfaceVer10.java
new file mode 100644
index 0000000..19db624
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnInterfaceVer10.java
@@ -0,0 +1,396 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnInterfaceVer10 implements OFBsnInterface {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnInterfaceVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 32;
+
+ private final static MacAddress DEFAULT_HW_ADDR = MacAddress.NONE;
+ private final static String DEFAULT_NAME = "";
+ private final static IPv4Address DEFAULT_IPV4_ADDR = IPv4Address.NONE;
+ private final static IPv4Address DEFAULT_IPV4_NETMASK = IPv4Address.NONE;
+
+ // OF message fields
+ private final MacAddress hwAddr;
+ private final String name;
+ private final IPv4Address ipv4Addr;
+ private final IPv4Address ipv4Netmask;
+//
+ // Immutable default instance
+ final static OFBsnInterfaceVer10 DEFAULT = new OFBsnInterfaceVer10(
+ DEFAULT_HW_ADDR, DEFAULT_NAME, DEFAULT_IPV4_ADDR, DEFAULT_IPV4_NETMASK
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnInterfaceVer10(MacAddress hwAddr, String name, IPv4Address ipv4Addr, IPv4Address ipv4Netmask) {
+ this.hwAddr = hwAddr;
+ this.name = name;
+ this.ipv4Addr = ipv4Addr;
+ this.ipv4Netmask = ipv4Netmask;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public MacAddress getHwAddr() {
+ return hwAddr;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public IPv4Address getIpv4Addr() {
+ return ipv4Addr;
+ }
+
+ @Override
+ public IPv4Address getIpv4Netmask() {
+ return ipv4Netmask;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFBsnInterface.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnInterface.Builder {
+ final OFBsnInterfaceVer10 parentMessage;
+
+ // OF message fields
+ private boolean hwAddrSet;
+ private MacAddress hwAddr;
+ private boolean nameSet;
+ private String name;
+ private boolean ipv4AddrSet;
+ private IPv4Address ipv4Addr;
+ private boolean ipv4NetmaskSet;
+ private IPv4Address ipv4Netmask;
+
+ BuilderWithParent(OFBsnInterfaceVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public MacAddress getHwAddr() {
+ return hwAddr;
+ }
+
+ @Override
+ public OFBsnInterface.Builder setHwAddr(MacAddress hwAddr) {
+ this.hwAddr = hwAddr;
+ this.hwAddrSet = true;
+ return this;
+ }
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public OFBsnInterface.Builder setName(String name) {
+ this.name = name;
+ this.nameSet = true;
+ return this;
+ }
+ @Override
+ public IPv4Address getIpv4Addr() {
+ return ipv4Addr;
+ }
+
+ @Override
+ public OFBsnInterface.Builder setIpv4Addr(IPv4Address ipv4Addr) {
+ this.ipv4Addr = ipv4Addr;
+ this.ipv4AddrSet = true;
+ return this;
+ }
+ @Override
+ public IPv4Address getIpv4Netmask() {
+ return ipv4Netmask;
+ }
+
+ @Override
+ public OFBsnInterface.Builder setIpv4Netmask(IPv4Address ipv4Netmask) {
+ this.ipv4Netmask = ipv4Netmask;
+ this.ipv4NetmaskSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFBsnInterface build() {
+ MacAddress hwAddr = this.hwAddrSet ? this.hwAddr : parentMessage.hwAddr;
+ if(hwAddr == null)
+ throw new NullPointerException("Property hwAddr must not be null");
+ String name = this.nameSet ? this.name : parentMessage.name;
+ if(name == null)
+ throw new NullPointerException("Property name must not be null");
+ IPv4Address ipv4Addr = this.ipv4AddrSet ? this.ipv4Addr : parentMessage.ipv4Addr;
+ if(ipv4Addr == null)
+ throw new NullPointerException("Property ipv4Addr must not be null");
+ IPv4Address ipv4Netmask = this.ipv4NetmaskSet ? this.ipv4Netmask : parentMessage.ipv4Netmask;
+ if(ipv4Netmask == null)
+ throw new NullPointerException("Property ipv4Netmask must not be null");
+
+ //
+ return new OFBsnInterfaceVer10(
+ hwAddr,
+ name,
+ ipv4Addr,
+ ipv4Netmask
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnInterface.Builder {
+ // OF message fields
+ private boolean hwAddrSet;
+ private MacAddress hwAddr;
+ private boolean nameSet;
+ private String name;
+ private boolean ipv4AddrSet;
+ private IPv4Address ipv4Addr;
+ private boolean ipv4NetmaskSet;
+ private IPv4Address ipv4Netmask;
+
+ @Override
+ public MacAddress getHwAddr() {
+ return hwAddr;
+ }
+
+ @Override
+ public OFBsnInterface.Builder setHwAddr(MacAddress hwAddr) {
+ this.hwAddr = hwAddr;
+ this.hwAddrSet = true;
+ return this;
+ }
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public OFBsnInterface.Builder setName(String name) {
+ this.name = name;
+ this.nameSet = true;
+ return this;
+ }
+ @Override
+ public IPv4Address getIpv4Addr() {
+ return ipv4Addr;
+ }
+
+ @Override
+ public OFBsnInterface.Builder setIpv4Addr(IPv4Address ipv4Addr) {
+ this.ipv4Addr = ipv4Addr;
+ this.ipv4AddrSet = true;
+ return this;
+ }
+ @Override
+ public IPv4Address getIpv4Netmask() {
+ return ipv4Netmask;
+ }
+
+ @Override
+ public OFBsnInterface.Builder setIpv4Netmask(IPv4Address ipv4Netmask) {
+ this.ipv4Netmask = ipv4Netmask;
+ this.ipv4NetmaskSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFBsnInterface build() {
+ MacAddress hwAddr = this.hwAddrSet ? this.hwAddr : DEFAULT_HW_ADDR;
+ if(hwAddr == null)
+ throw new NullPointerException("Property hwAddr must not be null");
+ String name = this.nameSet ? this.name : DEFAULT_NAME;
+ if(name == null)
+ throw new NullPointerException("Property name must not be null");
+ IPv4Address ipv4Addr = this.ipv4AddrSet ? this.ipv4Addr : DEFAULT_IPV4_ADDR;
+ if(ipv4Addr == null)
+ throw new NullPointerException("Property ipv4Addr must not be null");
+ IPv4Address ipv4Netmask = this.ipv4NetmaskSet ? this.ipv4Netmask : DEFAULT_IPV4_NETMASK;
+ if(ipv4Netmask == null)
+ throw new NullPointerException("Property ipv4Netmask must not be null");
+
+
+ return new OFBsnInterfaceVer10(
+ hwAddr,
+ name,
+ ipv4Addr,
+ ipv4Netmask
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnInterface> {
+ @Override
+ public OFBsnInterface readFrom(ChannelBuffer bb) throws OFParseError {
+ MacAddress hwAddr = MacAddress.read6Bytes(bb);
+ // pad: 2 bytes
+ bb.skipBytes(2);
+ String name = ChannelUtils.readFixedLengthString(bb, 16);
+ IPv4Address ipv4Addr = IPv4Address.read4Bytes(bb);
+ IPv4Address ipv4Netmask = IPv4Address.read4Bytes(bb);
+
+ OFBsnInterfaceVer10 bsnInterfaceVer10 = new OFBsnInterfaceVer10(
+ hwAddr,
+ name,
+ ipv4Addr,
+ ipv4Netmask
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnInterfaceVer10);
+ return bsnInterfaceVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnInterfaceVer10Funnel FUNNEL = new OFBsnInterfaceVer10Funnel();
+ static class OFBsnInterfaceVer10Funnel implements Funnel<OFBsnInterfaceVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnInterfaceVer10 message, PrimitiveSink sink) {
+ message.hwAddr.putTo(sink);
+ // skip pad (2 bytes)
+ sink.putUnencodedChars(message.name);
+ message.ipv4Addr.putTo(sink);
+ message.ipv4Netmask.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnInterfaceVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnInterfaceVer10 message) {
+ message.hwAddr.write6Bytes(bb);
+ // pad: 2 bytes
+ bb.writeZero(2);
+ ChannelUtils.writeFixedLengthString(bb, message.name, 16);
+ message.ipv4Addr.write4Bytes(bb);
+ message.ipv4Netmask.write4Bytes(bb);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnInterfaceVer10(");
+ b.append("hwAddr=").append(hwAddr);
+ b.append(", ");
+ b.append("name=").append(name);
+ b.append(", ");
+ b.append("ipv4Addr=").append(ipv4Addr);
+ b.append(", ");
+ b.append("ipv4Netmask=").append(ipv4Netmask);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnInterfaceVer10 other = (OFBsnInterfaceVer10) obj;
+
+ if (hwAddr == null) {
+ if (other.hwAddr != null)
+ return false;
+ } else if (!hwAddr.equals(other.hwAddr))
+ return false;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (ipv4Addr == null) {
+ if (other.ipv4Addr != null)
+ return false;
+ } else if (!ipv4Addr.equals(other.ipv4Addr))
+ return false;
+ if (ipv4Netmask == null) {
+ if (other.ipv4Netmask != null)
+ return false;
+ } else if (!ipv4Netmask.equals(other.ipv4Netmask))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((hwAddr == null) ? 0 : hwAddr.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((ipv4Addr == null) ? 0 : ipv4Addr.hashCode());
+ result = prime * result + ((ipv4Netmask == null) ? 0 : ipv4Netmask.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxReplyVer10.java
new file mode 100644
index 0000000..9d16d85
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxReplyVer10.java
@@ -0,0 +1,462 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnPduRxReplyVer10 implements OFBsnPduRxReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnPduRxReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 23;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_STATUS = 0x0L;
+ private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+ private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final long status;
+ private final OFPort portNo;
+ private final short slotNum;
+//
+ // Immutable default instance
+ final static OFBsnPduRxReplyVer10 DEFAULT = new OFBsnPduRxReplyVer10(
+ DEFAULT_XID, DEFAULT_STATUS, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnPduRxReplyVer10(long xid, long status, OFPort portNo, short slotNum) {
+ this.xid = xid;
+ this.status = status;
+ this.portNo = portNo;
+ this.slotNum = slotNum;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x22L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+
+
+ public OFBsnPduRxReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnPduRxReply.Builder {
+ final OFBsnPduRxReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+
+ BuilderWithParent(OFBsnPduRxReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduRxReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x22L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnPduRxReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduRxReply.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduRxReply.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnPduRxReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long status = this.statusSet ? this.status : parentMessage.status;
+ OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+
+ //
+ return new OFBsnPduRxReplyVer10(
+ xid,
+ status,
+ portNo,
+ slotNum
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnPduRxReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduRxReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x22L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnPduRxReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduRxReply.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduRxReply.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnPduRxReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+ OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+
+
+ return new OFBsnPduRxReplyVer10(
+ xid,
+ status,
+ portNo,
+ slotNum
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnPduRxReply> {
+ @Override
+ public OFBsnPduRxReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 23)
+ throw new OFParseError("Wrong length: Expected=23(23), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x22L
+ int subtype = bb.readInt();
+ if(subtype != 0x22)
+ throw new OFParseError("Wrong subtype: Expected=0x22L(0x22L), got="+subtype);
+ long status = U32.f(bb.readInt());
+ OFPort portNo = OFPort.read2Bytes(bb);
+ short slotNum = U8.f(bb.readByte());
+
+ OFBsnPduRxReplyVer10 bsnPduRxReplyVer10 = new OFBsnPduRxReplyVer10(
+ xid,
+ status,
+ portNo,
+ slotNum
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnPduRxReplyVer10);
+ return bsnPduRxReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnPduRxReplyVer10Funnel FUNNEL = new OFBsnPduRxReplyVer10Funnel();
+ static class OFBsnPduRxReplyVer10Funnel implements Funnel<OFBsnPduRxReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnPduRxReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 23
+ sink.putShort((short) 0x17);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x22L
+ sink.putInt(0x22);
+ sink.putLong(message.status);
+ message.portNo.putTo(sink);
+ sink.putShort(message.slotNum);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnPduRxReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnPduRxReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 23
+ bb.writeShort((short) 0x17);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x22L
+ bb.writeInt(0x22);
+ bb.writeInt(U32.t(message.status));
+ message.portNo.write2Bytes(bb);
+ bb.writeByte(U8.t(message.slotNum));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnPduRxReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(", ");
+ b.append("portNo=").append(portNo);
+ b.append(", ");
+ b.append("slotNum=").append(slotNum);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnPduRxReplyVer10 other = (OFBsnPduRxReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( status != other.status)
+ return false;
+ if (portNo == null) {
+ if (other.portNo != null)
+ return false;
+ } else if (!portNo.equals(other.portNo))
+ return false;
+ if( slotNum != other.slotNum)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (status ^ (status >>> 32));
+ result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+ result = prime * result + slotNum;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxRequestVer10.java
new file mode 100644
index 0000000..5f6a942
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxRequestVer10.java
@@ -0,0 +1,524 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFBsnPduRxRequestVer10 implements OFBsnPduRxRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnPduRxRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 26;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_TIMEOUT_MS = 0x0L;
+ private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+ private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+ private final static byte[] DEFAULT_DATA = new byte[0];
+
+ // OF message fields
+ private final long xid;
+ private final long timeoutMs;
+ private final OFPort portNo;
+ private final short slotNum;
+ private final byte[] data;
+//
+ // Immutable default instance
+ final static OFBsnPduRxRequestVer10 DEFAULT = new OFBsnPduRxRequestVer10(
+ DEFAULT_XID, DEFAULT_TIMEOUT_MS, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM, DEFAULT_DATA
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnPduRxRequestVer10(long xid, long timeoutMs, OFPort portNo, short slotNum, byte[] data) {
+ this.xid = xid;
+ this.timeoutMs = timeoutMs;
+ this.portNo = portNo;
+ this.slotNum = slotNum;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x21L;
+ }
+
+ @Override
+ public long getTimeoutMs() {
+ return timeoutMs;
+ }
+
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+
+
+ public OFBsnPduRxRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnPduRxRequest.Builder {
+ final OFBsnPduRxRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean timeoutMsSet;
+ private long timeoutMs;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+ private boolean dataSet;
+ private byte[] data;
+
+ BuilderWithParent(OFBsnPduRxRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x21L;
+ }
+
+ @Override
+ public long getTimeoutMs() {
+ return timeoutMs;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setTimeoutMs(long timeoutMs) {
+ this.timeoutMs = timeoutMs;
+ this.timeoutMsSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnPduRxRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long timeoutMs = this.timeoutMsSet ? this.timeoutMs : parentMessage.timeoutMs;
+ OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+ byte[] data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFBsnPduRxRequestVer10(
+ xid,
+ timeoutMs,
+ portNo,
+ slotNum,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnPduRxRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean timeoutMsSet;
+ private long timeoutMs;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+ private boolean dataSet;
+ private byte[] data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x21L;
+ }
+
+ @Override
+ public long getTimeoutMs() {
+ return timeoutMs;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setTimeoutMs(long timeoutMs) {
+ this.timeoutMs = timeoutMs;
+ this.timeoutMsSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFBsnPduRxRequest.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnPduRxRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long timeoutMs = this.timeoutMsSet ? this.timeoutMs : DEFAULT_TIMEOUT_MS;
+ OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+ byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFBsnPduRxRequestVer10(
+ xid,
+ timeoutMs,
+ portNo,
+ slotNum,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnPduRxRequest> {
+ @Override
+ public OFBsnPduRxRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x21L
+ int subtype = bb.readInt();
+ if(subtype != 0x21)
+ throw new OFParseError("Wrong subtype: Expected=0x21L(0x21L), got="+subtype);
+ long timeoutMs = U32.f(bb.readInt());
+ OFPort portNo = OFPort.read2Bytes(bb);
+ short slotNum = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+ byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+ OFBsnPduRxRequestVer10 bsnPduRxRequestVer10 = new OFBsnPduRxRequestVer10(
+ xid,
+ timeoutMs,
+ portNo,
+ slotNum,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnPduRxRequestVer10);
+ return bsnPduRxRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnPduRxRequestVer10Funnel FUNNEL = new OFBsnPduRxRequestVer10Funnel();
+ static class OFBsnPduRxRequestVer10Funnel implements Funnel<OFBsnPduRxRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnPduRxRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x21L
+ sink.putInt(0x21);
+ sink.putLong(message.timeoutMs);
+ message.portNo.putTo(sink);
+ sink.putShort(message.slotNum);
+ // skip pad (3 bytes)
+ sink.putBytes(message.data);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnPduRxRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnPduRxRequestVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x21L
+ bb.writeInt(0x21);
+ bb.writeInt(U32.t(message.timeoutMs));
+ message.portNo.write2Bytes(bb);
+ bb.writeByte(U8.t(message.slotNum));
+ // pad: 3 bytes
+ bb.writeZero(3);
+ bb.writeBytes(message.data);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnPduRxRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("timeoutMs=").append(timeoutMs);
+ b.append(", ");
+ b.append("portNo=").append(portNo);
+ b.append(", ");
+ b.append("slotNum=").append(slotNum);
+ b.append(", ");
+ b.append("data=").append(Arrays.toString(data));
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnPduRxRequestVer10 other = (OFBsnPduRxRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( timeoutMs != other.timeoutMs)
+ return false;
+ if (portNo == null) {
+ if (other.portNo != null)
+ return false;
+ } else if (!portNo.equals(other.portNo))
+ return false;
+ if( slotNum != other.slotNum)
+ return false;
+ if (!Arrays.equals(data, other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (timeoutMs ^ (timeoutMs >>> 32));
+ result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+ result = prime * result + slotNum;
+ result = prime * result + Arrays.hashCode(data);
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxTimeoutVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxTimeoutVer10.java
new file mode 100644
index 0000000..129b62a
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduRxTimeoutVer10.java
@@ -0,0 +1,415 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnPduRxTimeoutVer10 implements OFBsnPduRxTimeout {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnPduRxTimeoutVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 19;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+ private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final OFPort portNo;
+ private final short slotNum;
+//
+ // Immutable default instance
+ final static OFBsnPduRxTimeoutVer10 DEFAULT = new OFBsnPduRxTimeoutVer10(
+ DEFAULT_XID, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnPduRxTimeoutVer10(long xid, OFPort portNo, short slotNum) {
+ this.xid = xid;
+ this.portNo = portNo;
+ this.slotNum = slotNum;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x23L;
+ }
+
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+
+
+ public OFBsnPduRxTimeout.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnPduRxTimeout.Builder {
+ final OFBsnPduRxTimeoutVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+
+ BuilderWithParent(OFBsnPduRxTimeoutVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduRxTimeout.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x23L;
+ }
+
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduRxTimeout.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduRxTimeout.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnPduRxTimeout build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+
+ //
+ return new OFBsnPduRxTimeoutVer10(
+ xid,
+ portNo,
+ slotNum
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnPduRxTimeout.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduRxTimeout.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x23L;
+ }
+
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduRxTimeout.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduRxTimeout.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnPduRxTimeout build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+
+
+ return new OFBsnPduRxTimeoutVer10(
+ xid,
+ portNo,
+ slotNum
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnPduRxTimeout> {
+ @Override
+ public OFBsnPduRxTimeout readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 19)
+ throw new OFParseError("Wrong length: Expected=19(19), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x23L
+ int subtype = bb.readInt();
+ if(subtype != 0x23)
+ throw new OFParseError("Wrong subtype: Expected=0x23L(0x23L), got="+subtype);
+ OFPort portNo = OFPort.read2Bytes(bb);
+ short slotNum = U8.f(bb.readByte());
+
+ OFBsnPduRxTimeoutVer10 bsnPduRxTimeoutVer10 = new OFBsnPduRxTimeoutVer10(
+ xid,
+ portNo,
+ slotNum
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnPduRxTimeoutVer10);
+ return bsnPduRxTimeoutVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnPduRxTimeoutVer10Funnel FUNNEL = new OFBsnPduRxTimeoutVer10Funnel();
+ static class OFBsnPduRxTimeoutVer10Funnel implements Funnel<OFBsnPduRxTimeoutVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnPduRxTimeoutVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 19
+ sink.putShort((short) 0x13);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x23L
+ sink.putInt(0x23);
+ message.portNo.putTo(sink);
+ sink.putShort(message.slotNum);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnPduRxTimeoutVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnPduRxTimeoutVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 19
+ bb.writeShort((short) 0x13);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x23L
+ bb.writeInt(0x23);
+ message.portNo.write2Bytes(bb);
+ bb.writeByte(U8.t(message.slotNum));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnPduRxTimeoutVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("portNo=").append(portNo);
+ b.append(", ");
+ b.append("slotNum=").append(slotNum);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnPduRxTimeoutVer10 other = (OFBsnPduRxTimeoutVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (portNo == null) {
+ if (other.portNo != null)
+ return false;
+ } else if (!portNo.equals(other.portNo))
+ return false;
+ if( slotNum != other.slotNum)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+ result = prime * result + slotNum;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduSlotNumTSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduSlotNumTSerializerVer10.java
new file mode 100644
index 0000000..3faf113
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduSlotNumTSerializerVer10.java
@@ -0,0 +1,69 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBsnPduSlotNumT;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBsnPduSlotNumTSerializerVer10 {
+
+ public final static byte PDU_SLOT_NUM_ANY_VAL = (byte) 0xff;
+
+ public static OFBsnPduSlotNumT readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readByte());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFBsnPduSlotNumT e) {
+ bb.writeByte(toWireValue(e));
+ }
+
+ public static void putTo(OFBsnPduSlotNumT e, PrimitiveSink sink) {
+ sink.putByte(toWireValue(e));
+ }
+
+ public static OFBsnPduSlotNumT ofWireValue(byte val) {
+ switch(val) {
+ case PDU_SLOT_NUM_ANY_VAL:
+ return OFBsnPduSlotNumT.PDU_SLOT_NUM_ANY;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFBsnPduSlotNumT in version 1.0: " + val);
+ }
+ }
+
+
+ public static byte toWireValue(OFBsnPduSlotNumT e) {
+ switch(e) {
+ case PDU_SLOT_NUM_ANY:
+ return PDU_SLOT_NUM_ANY_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFBsnPduSlotNumT in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxReplyVer10.java
new file mode 100644
index 0000000..5bbf0da
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxReplyVer10.java
@@ -0,0 +1,462 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnPduTxReplyVer10 implements OFBsnPduTxReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnPduTxReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 23;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_STATUS = 0x0L;
+ private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+ private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final long status;
+ private final OFPort portNo;
+ private final short slotNum;
+//
+ // Immutable default instance
+ final static OFBsnPduTxReplyVer10 DEFAULT = new OFBsnPduTxReplyVer10(
+ DEFAULT_XID, DEFAULT_STATUS, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnPduTxReplyVer10(long xid, long status, OFPort portNo, short slotNum) {
+ this.xid = xid;
+ this.status = status;
+ this.portNo = portNo;
+ this.slotNum = slotNum;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x20L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+
+
+ public OFBsnPduTxReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnPduTxReply.Builder {
+ final OFBsnPduTxReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+
+ BuilderWithParent(OFBsnPduTxReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduTxReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x20L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnPduTxReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduTxReply.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduTxReply.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnPduTxReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long status = this.statusSet ? this.status : parentMessage.status;
+ OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+
+ //
+ return new OFBsnPduTxReplyVer10(
+ xid,
+ status,
+ portNo,
+ slotNum
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnPduTxReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduTxReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x20L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnPduTxReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduTxReply.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduTxReply.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnPduTxReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+ OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+
+
+ return new OFBsnPduTxReplyVer10(
+ xid,
+ status,
+ portNo,
+ slotNum
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnPduTxReply> {
+ @Override
+ public OFBsnPduTxReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 23)
+ throw new OFParseError("Wrong length: Expected=23(23), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x20L
+ int subtype = bb.readInt();
+ if(subtype != 0x20)
+ throw new OFParseError("Wrong subtype: Expected=0x20L(0x20L), got="+subtype);
+ long status = U32.f(bb.readInt());
+ OFPort portNo = OFPort.read2Bytes(bb);
+ short slotNum = U8.f(bb.readByte());
+
+ OFBsnPduTxReplyVer10 bsnPduTxReplyVer10 = new OFBsnPduTxReplyVer10(
+ xid,
+ status,
+ portNo,
+ slotNum
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnPduTxReplyVer10);
+ return bsnPduTxReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnPduTxReplyVer10Funnel FUNNEL = new OFBsnPduTxReplyVer10Funnel();
+ static class OFBsnPduTxReplyVer10Funnel implements Funnel<OFBsnPduTxReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnPduTxReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 23
+ sink.putShort((short) 0x17);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x20L
+ sink.putInt(0x20);
+ sink.putLong(message.status);
+ message.portNo.putTo(sink);
+ sink.putShort(message.slotNum);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnPduTxReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnPduTxReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 23
+ bb.writeShort((short) 0x17);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x20L
+ bb.writeInt(0x20);
+ bb.writeInt(U32.t(message.status));
+ message.portNo.write2Bytes(bb);
+ bb.writeByte(U8.t(message.slotNum));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnPduTxReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(", ");
+ b.append("portNo=").append(portNo);
+ b.append(", ");
+ b.append("slotNum=").append(slotNum);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnPduTxReplyVer10 other = (OFBsnPduTxReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( status != other.status)
+ return false;
+ if (portNo == null) {
+ if (other.portNo != null)
+ return false;
+ } else if (!portNo.equals(other.portNo))
+ return false;
+ if( slotNum != other.slotNum)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (status ^ (status >>> 32));
+ result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+ result = prime * result + slotNum;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxRequestVer10.java
new file mode 100644
index 0000000..2f85edb
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnPduTxRequestVer10.java
@@ -0,0 +1,524 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFBsnPduTxRequestVer10 implements OFBsnPduTxRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnPduTxRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 26;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_TX_INTERVAL_MS = 0x0L;
+ private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+ private final static short DEFAULT_SLOT_NUM = (short) 0x0;
+ private final static byte[] DEFAULT_DATA = new byte[0];
+
+ // OF message fields
+ private final long xid;
+ private final long txIntervalMs;
+ private final OFPort portNo;
+ private final short slotNum;
+ private final byte[] data;
+//
+ // Immutable default instance
+ final static OFBsnPduTxRequestVer10 DEFAULT = new OFBsnPduTxRequestVer10(
+ DEFAULT_XID, DEFAULT_TX_INTERVAL_MS, DEFAULT_PORT_NO, DEFAULT_SLOT_NUM, DEFAULT_DATA
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnPduTxRequestVer10(long xid, long txIntervalMs, OFPort portNo, short slotNum, byte[] data) {
+ this.xid = xid;
+ this.txIntervalMs = txIntervalMs;
+ this.portNo = portNo;
+ this.slotNum = slotNum;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1fL;
+ }
+
+ @Override
+ public long getTxIntervalMs() {
+ return txIntervalMs;
+ }
+
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+
+
+ public OFBsnPduTxRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnPduTxRequest.Builder {
+ final OFBsnPduTxRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean txIntervalMsSet;
+ private long txIntervalMs;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+ private boolean dataSet;
+ private byte[] data;
+
+ BuilderWithParent(OFBsnPduTxRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1fL;
+ }
+
+ @Override
+ public long getTxIntervalMs() {
+ return txIntervalMs;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setTxIntervalMs(long txIntervalMs) {
+ this.txIntervalMs = txIntervalMs;
+ this.txIntervalMsSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnPduTxRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long txIntervalMs = this.txIntervalMsSet ? this.txIntervalMs : parentMessage.txIntervalMs;
+ OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : parentMessage.slotNum;
+ byte[] data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFBsnPduTxRequestVer10(
+ xid,
+ txIntervalMs,
+ portNo,
+ slotNum,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnPduTxRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean txIntervalMsSet;
+ private long txIntervalMs;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean slotNumSet;
+ private short slotNum;
+ private boolean dataSet;
+ private byte[] data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1fL;
+ }
+
+ @Override
+ public long getTxIntervalMs() {
+ return txIntervalMs;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setTxIntervalMs(long txIntervalMs) {
+ this.txIntervalMs = txIntervalMs;
+ this.txIntervalMsSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public short getSlotNum() {
+ return slotNum;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setSlotNum(short slotNum) {
+ this.slotNum = slotNum;
+ this.slotNumSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFBsnPduTxRequest.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnPduTxRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long txIntervalMs = this.txIntervalMsSet ? this.txIntervalMs : DEFAULT_TX_INTERVAL_MS;
+ OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ short slotNum = this.slotNumSet ? this.slotNum : DEFAULT_SLOT_NUM;
+ byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFBsnPduTxRequestVer10(
+ xid,
+ txIntervalMs,
+ portNo,
+ slotNum,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnPduTxRequest> {
+ @Override
+ public OFBsnPduTxRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x1fL
+ int subtype = bb.readInt();
+ if(subtype != 0x1f)
+ throw new OFParseError("Wrong subtype: Expected=0x1fL(0x1fL), got="+subtype);
+ long txIntervalMs = U32.f(bb.readInt());
+ OFPort portNo = OFPort.read2Bytes(bb);
+ short slotNum = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+ byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+ OFBsnPduTxRequestVer10 bsnPduTxRequestVer10 = new OFBsnPduTxRequestVer10(
+ xid,
+ txIntervalMs,
+ portNo,
+ slotNum,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnPduTxRequestVer10);
+ return bsnPduTxRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnPduTxRequestVer10Funnel FUNNEL = new OFBsnPduTxRequestVer10Funnel();
+ static class OFBsnPduTxRequestVer10Funnel implements Funnel<OFBsnPduTxRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnPduTxRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x1fL
+ sink.putInt(0x1f);
+ sink.putLong(message.txIntervalMs);
+ message.portNo.putTo(sink);
+ sink.putShort(message.slotNum);
+ // skip pad (3 bytes)
+ sink.putBytes(message.data);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnPduTxRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnPduTxRequestVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x1fL
+ bb.writeInt(0x1f);
+ bb.writeInt(U32.t(message.txIntervalMs));
+ message.portNo.write2Bytes(bb);
+ bb.writeByte(U8.t(message.slotNum));
+ // pad: 3 bytes
+ bb.writeZero(3);
+ bb.writeBytes(message.data);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnPduTxRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("txIntervalMs=").append(txIntervalMs);
+ b.append(", ");
+ b.append("portNo=").append(portNo);
+ b.append(", ");
+ b.append("slotNum=").append(slotNum);
+ b.append(", ");
+ b.append("data=").append(Arrays.toString(data));
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnPduTxRequestVer10 other = (OFBsnPduTxRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( txIntervalMs != other.txIntervalMs)
+ return false;
+ if (portNo == null) {
+ if (other.portNo != null)
+ return false;
+ } else if (!portNo.equals(other.portNo))
+ return false;
+ if( slotNum != other.slotNum)
+ return false;
+ if (!Arrays.equals(data, other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (txIntervalMs ^ (txIntervalMs >>> 32));
+ result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+ result = prime * result + slotNum;
+ result = prime * result + Arrays.hashCode(data);
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetIpMaskVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetIpMaskVer10.java
new file mode 100644
index 0000000..46ccc66
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetIpMaskVer10.java
@@ -0,0 +1,413 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetIpMaskVer10 implements OFBsnSetIpMask {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnSetIpMaskVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static short DEFAULT_INDEX = (short) 0x0;
+ private final static long DEFAULT_MASK = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final short index;
+ private final long mask;
+//
+ // Immutable default instance
+ final static OFBsnSetIpMaskVer10 DEFAULT = new OFBsnSetIpMaskVer10(
+ DEFAULT_XID, DEFAULT_INDEX, DEFAULT_MASK
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnSetIpMaskVer10(long xid, short index, long mask) {
+ this.xid = xid;
+ this.index = index;
+ this.mask = mask;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x0L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+ @Override
+ public long getMask() {
+ return mask;
+ }
+
+
+
+ public OFBsnSetIpMask.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnSetIpMask.Builder {
+ final OFBsnSetIpMaskVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean indexSet;
+ private short index;
+ private boolean maskSet;
+ private long mask;
+
+ BuilderWithParent(OFBsnSetIpMaskVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetIpMask.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x0L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+ @Override
+ public OFBsnSetIpMask.Builder setIndex(short index) {
+ this.index = index;
+ this.indexSet = true;
+ return this;
+ }
+ @Override
+ public long getMask() {
+ return mask;
+ }
+
+ @Override
+ public OFBsnSetIpMask.Builder setMask(long mask) {
+ this.mask = mask;
+ this.maskSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnSetIpMask build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ short index = this.indexSet ? this.index : parentMessage.index;
+ long mask = this.maskSet ? this.mask : parentMessage.mask;
+
+ //
+ return new OFBsnSetIpMaskVer10(
+ xid,
+ index,
+ mask
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnSetIpMask.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean indexSet;
+ private short index;
+ private boolean maskSet;
+ private long mask;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetIpMask.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x0L;
+ }
+
+ @Override
+ public short getIndex() {
+ return index;
+ }
+
+ @Override
+ public OFBsnSetIpMask.Builder setIndex(short index) {
+ this.index = index;
+ this.indexSet = true;
+ return this;
+ }
+ @Override
+ public long getMask() {
+ return mask;
+ }
+
+ @Override
+ public OFBsnSetIpMask.Builder setMask(long mask) {
+ this.mask = mask;
+ this.maskSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnSetIpMask build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ short index = this.indexSet ? this.index : DEFAULT_INDEX;
+ long mask = this.maskSet ? this.mask : DEFAULT_MASK;
+
+
+ return new OFBsnSetIpMaskVer10(
+ xid,
+ index,
+ mask
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnSetIpMask> {
+ @Override
+ public OFBsnSetIpMask readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x0L
+ int subtype = bb.readInt();
+ if(subtype != 0x0)
+ throw new OFParseError("Wrong subtype: Expected=0x0L(0x0L), got="+subtype);
+ short index = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+ long mask = U32.f(bb.readInt());
+
+ OFBsnSetIpMaskVer10 bsnSetIpMaskVer10 = new OFBsnSetIpMaskVer10(
+ xid,
+ index,
+ mask
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnSetIpMaskVer10);
+ return bsnSetIpMaskVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnSetIpMaskVer10Funnel FUNNEL = new OFBsnSetIpMaskVer10Funnel();
+ static class OFBsnSetIpMaskVer10Funnel implements Funnel<OFBsnSetIpMaskVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnSetIpMaskVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x0L
+ sink.putInt(0x0);
+ sink.putShort(message.index);
+ // skip pad (3 bytes)
+ sink.putLong(message.mask);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnSetIpMaskVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnSetIpMaskVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x0L
+ bb.writeInt(0x0);
+ bb.writeByte(U8.t(message.index));
+ // pad: 3 bytes
+ bb.writeZero(3);
+ bb.writeInt(U32.t(message.mask));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnSetIpMaskVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("index=").append(index);
+ b.append(", ");
+ b.append("mask=").append(mask);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnSetIpMaskVer10 other = (OFBsnSetIpMaskVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( index != other.index)
+ return false;
+ if( mask != other.mask)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + index;
+ result = prime * (int) (mask ^ (mask >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableReplyVer10.java
new file mode 100644
index 0000000..2f93768
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableReplyVer10.java
@@ -0,0 +1,460 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetL2TableReplyVer10 implements OFBsnSetL2TableReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnSetL2TableReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static boolean DEFAULT_L2_TABLE_ENABLE = false;
+ private final static int DEFAULT_L2_TABLE_PRIORITY = 0x0;
+ private final static long DEFAULT_STATUS = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final boolean l2TableEnable;
+ private final int l2TablePriority;
+ private final long status;
+//
+ // Immutable default instance
+ final static OFBsnSetL2TableReplyVer10 DEFAULT = new OFBsnSetL2TableReplyVer10(
+ DEFAULT_XID, DEFAULT_L2_TABLE_ENABLE, DEFAULT_L2_TABLE_PRIORITY, DEFAULT_STATUS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnSetL2TableReplyVer10(long xid, boolean l2TableEnable, int l2TablePriority, long status) {
+ this.xid = xid;
+ this.l2TableEnable = l2TableEnable;
+ this.l2TablePriority = l2TablePriority;
+ this.status = status;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x18L;
+ }
+
+ @Override
+ public boolean isL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+
+
+ public OFBsnSetL2TableReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnSetL2TableReply.Builder {
+ final OFBsnSetL2TableReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean l2TableEnableSet;
+ private boolean l2TableEnable;
+ private boolean l2TablePrioritySet;
+ private int l2TablePriority;
+ private boolean statusSet;
+ private long status;
+
+ BuilderWithParent(OFBsnSetL2TableReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetL2TableReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x18L;
+ }
+
+ @Override
+ public boolean isL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public OFBsnSetL2TableReply.Builder setL2TableEnable(boolean l2TableEnable) {
+ this.l2TableEnable = l2TableEnable;
+ this.l2TableEnableSet = true;
+ return this;
+ }
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+ @Override
+ public OFBsnSetL2TableReply.Builder setL2TablePriority(int l2TablePriority) {
+ this.l2TablePriority = l2TablePriority;
+ this.l2TablePrioritySet = true;
+ return this;
+ }
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnSetL2TableReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnSetL2TableReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ boolean l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : parentMessage.l2TableEnable;
+ int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : parentMessage.l2TablePriority;
+ long status = this.statusSet ? this.status : parentMessage.status;
+
+ //
+ return new OFBsnSetL2TableReplyVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority,
+ status
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnSetL2TableReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean l2TableEnableSet;
+ private boolean l2TableEnable;
+ private boolean l2TablePrioritySet;
+ private int l2TablePriority;
+ private boolean statusSet;
+ private long status;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetL2TableReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x18L;
+ }
+
+ @Override
+ public boolean isL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public OFBsnSetL2TableReply.Builder setL2TableEnable(boolean l2TableEnable) {
+ this.l2TableEnable = l2TableEnable;
+ this.l2TableEnableSet = true;
+ return this;
+ }
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+ @Override
+ public OFBsnSetL2TableReply.Builder setL2TablePriority(int l2TablePriority) {
+ this.l2TablePriority = l2TablePriority;
+ this.l2TablePrioritySet = true;
+ return this;
+ }
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnSetL2TableReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnSetL2TableReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ boolean l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : DEFAULT_L2_TABLE_ENABLE;
+ int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : DEFAULT_L2_TABLE_PRIORITY;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+ return new OFBsnSetL2TableReplyVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority,
+ status
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnSetL2TableReply> {
+ @Override
+ public OFBsnSetL2TableReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x18L
+ int subtype = bb.readInt();
+ if(subtype != 0x18)
+ throw new OFParseError("Wrong subtype: Expected=0x18L(0x18L), got="+subtype);
+ boolean l2TableEnable = (bb.readByte() != 0);
+ // pad: 1 bytes
+ bb.skipBytes(1);
+ int l2TablePriority = U16.f(bb.readShort());
+ long status = U32.f(bb.readInt());
+
+ OFBsnSetL2TableReplyVer10 bsnSetL2TableReplyVer10 = new OFBsnSetL2TableReplyVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority,
+ status
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnSetL2TableReplyVer10);
+ return bsnSetL2TableReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnSetL2TableReplyVer10Funnel FUNNEL = new OFBsnSetL2TableReplyVer10Funnel();
+ static class OFBsnSetL2TableReplyVer10Funnel implements Funnel<OFBsnSetL2TableReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnSetL2TableReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x18L
+ sink.putInt(0x18);
+ sink.putBoolean(message.l2TableEnable);
+ // skip pad (1 bytes)
+ sink.putInt(message.l2TablePriority);
+ sink.putLong(message.status);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnSetL2TableReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnSetL2TableReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x18L
+ bb.writeInt(0x18);
+ bb.writeByte(message.l2TableEnable ? 1 : 0);
+ // pad: 1 bytes
+ bb.writeZero(1);
+ bb.writeShort(U16.t(message.l2TablePriority));
+ bb.writeInt(U32.t(message.status));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnSetL2TableReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("l2TableEnable=").append(l2TableEnable);
+ b.append(", ");
+ b.append("l2TablePriority=").append(l2TablePriority);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnSetL2TableReplyVer10 other = (OFBsnSetL2TableReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( l2TableEnable != other.l2TableEnable)
+ return false;
+ if( l2TablePriority != other.l2TablePriority)
+ return false;
+ if( status != other.status)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + (l2TableEnable ? 1231 : 1237);
+ result = prime * result + l2TablePriority;
+ result = prime * (int) (status ^ (status >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableRequestVer10.java
new file mode 100644
index 0000000..dbc6dea
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetL2TableRequestVer10.java
@@ -0,0 +1,418 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetL2TableRequestVer10 implements OFBsnSetL2TableRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnSetL2TableRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static boolean DEFAULT_L2_TABLE_ENABLE = false;
+ private final static int DEFAULT_L2_TABLE_PRIORITY = 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final boolean l2TableEnable;
+ private final int l2TablePriority;
+//
+ // Immutable default instance
+ final static OFBsnSetL2TableRequestVer10 DEFAULT = new OFBsnSetL2TableRequestVer10(
+ DEFAULT_XID, DEFAULT_L2_TABLE_ENABLE, DEFAULT_L2_TABLE_PRIORITY
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnSetL2TableRequestVer10(long xid, boolean l2TableEnable, int l2TablePriority) {
+ this.xid = xid;
+ this.l2TableEnable = l2TableEnable;
+ this.l2TablePriority = l2TablePriority;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xcL;
+ }
+
+ @Override
+ public boolean isL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+
+
+ public OFBsnSetL2TableRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnSetL2TableRequest.Builder {
+ final OFBsnSetL2TableRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean l2TableEnableSet;
+ private boolean l2TableEnable;
+ private boolean l2TablePrioritySet;
+ private int l2TablePriority;
+
+ BuilderWithParent(OFBsnSetL2TableRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetL2TableRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xcL;
+ }
+
+ @Override
+ public boolean isL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public OFBsnSetL2TableRequest.Builder setL2TableEnable(boolean l2TableEnable) {
+ this.l2TableEnable = l2TableEnable;
+ this.l2TableEnableSet = true;
+ return this;
+ }
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+ @Override
+ public OFBsnSetL2TableRequest.Builder setL2TablePriority(int l2TablePriority) {
+ this.l2TablePriority = l2TablePriority;
+ this.l2TablePrioritySet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnSetL2TableRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ boolean l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : parentMessage.l2TableEnable;
+ int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : parentMessage.l2TablePriority;
+
+ //
+ return new OFBsnSetL2TableRequestVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnSetL2TableRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean l2TableEnableSet;
+ private boolean l2TableEnable;
+ private boolean l2TablePrioritySet;
+ private int l2TablePriority;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetL2TableRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xcL;
+ }
+
+ @Override
+ public boolean isL2TableEnable() {
+ return l2TableEnable;
+ }
+
+ @Override
+ public OFBsnSetL2TableRequest.Builder setL2TableEnable(boolean l2TableEnable) {
+ this.l2TableEnable = l2TableEnable;
+ this.l2TableEnableSet = true;
+ return this;
+ }
+ @Override
+ public int getL2TablePriority() {
+ return l2TablePriority;
+ }
+
+ @Override
+ public OFBsnSetL2TableRequest.Builder setL2TablePriority(int l2TablePriority) {
+ this.l2TablePriority = l2TablePriority;
+ this.l2TablePrioritySet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnSetL2TableRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ boolean l2TableEnable = this.l2TableEnableSet ? this.l2TableEnable : DEFAULT_L2_TABLE_ENABLE;
+ int l2TablePriority = this.l2TablePrioritySet ? this.l2TablePriority : DEFAULT_L2_TABLE_PRIORITY;
+
+
+ return new OFBsnSetL2TableRequestVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnSetL2TableRequest> {
+ @Override
+ public OFBsnSetL2TableRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0xcL
+ int subtype = bb.readInt();
+ if(subtype != 0xc)
+ throw new OFParseError("Wrong subtype: Expected=0xcL(0xcL), got="+subtype);
+ boolean l2TableEnable = (bb.readByte() != 0);
+ // pad: 1 bytes
+ bb.skipBytes(1);
+ int l2TablePriority = U16.f(bb.readShort());
+ // pad: 4 bytes
+ bb.skipBytes(4);
+
+ OFBsnSetL2TableRequestVer10 bsnSetL2TableRequestVer10 = new OFBsnSetL2TableRequestVer10(
+ xid,
+ l2TableEnable,
+ l2TablePriority
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnSetL2TableRequestVer10);
+ return bsnSetL2TableRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnSetL2TableRequestVer10Funnel FUNNEL = new OFBsnSetL2TableRequestVer10Funnel();
+ static class OFBsnSetL2TableRequestVer10Funnel implements Funnel<OFBsnSetL2TableRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnSetL2TableRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0xcL
+ sink.putInt(0xc);
+ sink.putBoolean(message.l2TableEnable);
+ // skip pad (1 bytes)
+ sink.putInt(message.l2TablePriority);
+ // skip pad (4 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnSetL2TableRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnSetL2TableRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0xcL
+ bb.writeInt(0xc);
+ bb.writeByte(message.l2TableEnable ? 1 : 0);
+ // pad: 1 bytes
+ bb.writeZero(1);
+ bb.writeShort(U16.t(message.l2TablePriority));
+ // pad: 4 bytes
+ bb.writeZero(4);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnSetL2TableRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("l2TableEnable=").append(l2TableEnable);
+ b.append(", ");
+ b.append("l2TablePriority=").append(l2TablePriority);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnSetL2TableRequestVer10 other = (OFBsnSetL2TableRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( l2TableEnable != other.l2TableEnable)
+ return false;
+ if( l2TablePriority != other.l2TablePriority)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + (l2TableEnable ? 1231 : 1237);
+ result = prime * result + l2TablePriority;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetMirroringVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetMirroringVer10.java
new file mode 100644
index 0000000..cb71dd5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetMirroringVer10.java
@@ -0,0 +1,366 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetMirroringVer10 implements OFBsnSetMirroring {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnSetMirroringVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static short DEFAULT_REPORT_MIRROR_PORTS = (short) 0x0;
+
+ // OF message fields
+ private final long xid;
+ private final short reportMirrorPorts;
+//
+ // Immutable default instance
+ final static OFBsnSetMirroringVer10 DEFAULT = new OFBsnSetMirroringVer10(
+ DEFAULT_XID, DEFAULT_REPORT_MIRROR_PORTS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnSetMirroringVer10(long xid, short reportMirrorPorts) {
+ this.xid = xid;
+ this.reportMirrorPorts = reportMirrorPorts;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x3L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+
+
+ public OFBsnSetMirroring.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnSetMirroring.Builder {
+ final OFBsnSetMirroringVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean reportMirrorPortsSet;
+ private short reportMirrorPorts;
+
+ BuilderWithParent(OFBsnSetMirroringVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetMirroring.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x3L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+ @Override
+ public OFBsnSetMirroring.Builder setReportMirrorPorts(short reportMirrorPorts) {
+ this.reportMirrorPorts = reportMirrorPorts;
+ this.reportMirrorPortsSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnSetMirroring build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : parentMessage.reportMirrorPorts;
+
+ //
+ return new OFBsnSetMirroringVer10(
+ xid,
+ reportMirrorPorts
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnSetMirroring.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean reportMirrorPortsSet;
+ private short reportMirrorPorts;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetMirroring.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x3L;
+ }
+
+ @Override
+ public short getReportMirrorPorts() {
+ return reportMirrorPorts;
+ }
+
+ @Override
+ public OFBsnSetMirroring.Builder setReportMirrorPorts(short reportMirrorPorts) {
+ this.reportMirrorPorts = reportMirrorPorts;
+ this.reportMirrorPortsSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnSetMirroring build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ short reportMirrorPorts = this.reportMirrorPortsSet ? this.reportMirrorPorts : DEFAULT_REPORT_MIRROR_PORTS;
+
+
+ return new OFBsnSetMirroringVer10(
+ xid,
+ reportMirrorPorts
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnSetMirroring> {
+ @Override
+ public OFBsnSetMirroring readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x3L
+ int subtype = bb.readInt();
+ if(subtype != 0x3)
+ throw new OFParseError("Wrong subtype: Expected=0x3L(0x3L), got="+subtype);
+ short reportMirrorPorts = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+
+ OFBsnSetMirroringVer10 bsnSetMirroringVer10 = new OFBsnSetMirroringVer10(
+ xid,
+ reportMirrorPorts
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnSetMirroringVer10);
+ return bsnSetMirroringVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnSetMirroringVer10Funnel FUNNEL = new OFBsnSetMirroringVer10Funnel();
+ static class OFBsnSetMirroringVer10Funnel implements Funnel<OFBsnSetMirroringVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnSetMirroringVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x3L
+ sink.putInt(0x3);
+ sink.putShort(message.reportMirrorPorts);
+ // skip pad (3 bytes)
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnSetMirroringVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnSetMirroringVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x3L
+ bb.writeInt(0x3);
+ bb.writeByte(U8.t(message.reportMirrorPorts));
+ // pad: 3 bytes
+ bb.writeZero(3);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnSetMirroringVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("reportMirrorPorts=").append(reportMirrorPorts);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnSetMirroringVer10 other = (OFBsnSetMirroringVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( reportMirrorPorts != other.reportMirrorPorts)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + reportMirrorPorts;
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionReplyVer10.java
new file mode 100644
index 0000000..7791761
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionReplyVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetPktinSuppressionReplyVer10 implements OFBsnSetPktinSuppressionReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnSetPktinSuppressionReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_STATUS = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long status;
+//
+ // Immutable default instance
+ final static OFBsnSetPktinSuppressionReplyVer10 DEFAULT = new OFBsnSetPktinSuppressionReplyVer10(
+ DEFAULT_XID, DEFAULT_STATUS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnSetPktinSuppressionReplyVer10(long xid, long status) {
+ this.xid = xid;
+ this.status = status;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x19L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+
+
+ public OFBsnSetPktinSuppressionReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnSetPktinSuppressionReply.Builder {
+ final OFBsnSetPktinSuppressionReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+
+ BuilderWithParent(OFBsnSetPktinSuppressionReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x19L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnSetPktinSuppressionReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long status = this.statusSet ? this.status : parentMessage.status;
+
+ //
+ return new OFBsnSetPktinSuppressionReplyVer10(
+ xid,
+ status
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnSetPktinSuppressionReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x19L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnSetPktinSuppressionReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+ return new OFBsnSetPktinSuppressionReplyVer10(
+ xid,
+ status
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnSetPktinSuppressionReply> {
+ @Override
+ public OFBsnSetPktinSuppressionReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x19L
+ int subtype = bb.readInt();
+ if(subtype != 0x19)
+ throw new OFParseError("Wrong subtype: Expected=0x19L(0x19L), got="+subtype);
+ long status = U32.f(bb.readInt());
+
+ OFBsnSetPktinSuppressionReplyVer10 bsnSetPktinSuppressionReplyVer10 = new OFBsnSetPktinSuppressionReplyVer10(
+ xid,
+ status
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnSetPktinSuppressionReplyVer10);
+ return bsnSetPktinSuppressionReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnSetPktinSuppressionReplyVer10Funnel FUNNEL = new OFBsnSetPktinSuppressionReplyVer10Funnel();
+ static class OFBsnSetPktinSuppressionReplyVer10Funnel implements Funnel<OFBsnSetPktinSuppressionReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnSetPktinSuppressionReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x19L
+ sink.putInt(0x19);
+ sink.putLong(message.status);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnSetPktinSuppressionReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnSetPktinSuppressionReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x19L
+ bb.writeInt(0x19);
+ bb.writeInt(U32.t(message.status));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnSetPktinSuppressionReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnSetPktinSuppressionReplyVer10 other = (OFBsnSetPktinSuppressionReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( status != other.status)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (status ^ (status >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionRequestVer10.java
new file mode 100644
index 0000000..758af8d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnSetPktinSuppressionRequestVer10.java
@@ -0,0 +1,561 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnSetPktinSuppressionRequestVer10 implements OFBsnSetPktinSuppressionRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnSetPktinSuppressionRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 32;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static boolean DEFAULT_ENABLED = false;
+ private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+ private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+ private final static int DEFAULT_PRIORITY = 0x0;
+ private final static U64 DEFAULT_COOKIE = U64.ZERO;
+
+ // OF message fields
+ private final long xid;
+ private final boolean enabled;
+ private final int idleTimeout;
+ private final int hardTimeout;
+ private final int priority;
+ private final U64 cookie;
+//
+ // Immutable default instance
+ final static OFBsnSetPktinSuppressionRequestVer10 DEFAULT = new OFBsnSetPktinSuppressionRequestVer10(
+ DEFAULT_XID, DEFAULT_ENABLED, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_COOKIE
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnSetPktinSuppressionRequestVer10(long xid, boolean enabled, int idleTimeout, int hardTimeout, int priority, U64 cookie) {
+ this.xid = xid;
+ this.enabled = enabled;
+ this.idleTimeout = idleTimeout;
+ this.hardTimeout = hardTimeout;
+ this.priority = priority;
+ this.cookie = cookie;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xbL;
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+
+
+ public OFBsnSetPktinSuppressionRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnSetPktinSuppressionRequest.Builder {
+ final OFBsnSetPktinSuppressionRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean enabledSet;
+ private boolean enabled;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean cookieSet;
+ private U64 cookie;
+
+ BuilderWithParent(OFBsnSetPktinSuppressionRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xbL;
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ this.enabledSet = true;
+ return this;
+ }
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ boolean enabled = this.enabledSet ? this.enabled : parentMessage.enabled;
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+ int priority = this.prioritySet ? this.priority : parentMessage.priority;
+ U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+
+ //
+ return new OFBsnSetPktinSuppressionRequestVer10(
+ xid,
+ enabled,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ cookie
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnSetPktinSuppressionRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean enabledSet;
+ private boolean enabled;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean cookieSet;
+ private U64 cookie;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xbL;
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return enabled;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setEnabled(boolean enabled) {
+ this.enabled = enabled;
+ this.enabledSet = true;
+ return this;
+ }
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFBsnSetPktinSuppressionRequest.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnSetPktinSuppressionRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ boolean enabled = this.enabledSet ? this.enabled : DEFAULT_ENABLED;
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+ int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+ U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+
+
+ return new OFBsnSetPktinSuppressionRequestVer10(
+ xid,
+ enabled,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ cookie
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnSetPktinSuppressionRequest> {
+ @Override
+ public OFBsnSetPktinSuppressionRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 32)
+ throw new OFParseError("Wrong length: Expected=32(32), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0xbL
+ int subtype = bb.readInt();
+ if(subtype != 0xb)
+ throw new OFParseError("Wrong subtype: Expected=0xbL(0xbL), got="+subtype);
+ boolean enabled = (bb.readByte() != 0);
+ // pad: 1 bytes
+ bb.skipBytes(1);
+ int idleTimeout = U16.f(bb.readShort());
+ int hardTimeout = U16.f(bb.readShort());
+ int priority = U16.f(bb.readShort());
+ U64 cookie = U64.ofRaw(bb.readLong());
+
+ OFBsnSetPktinSuppressionRequestVer10 bsnSetPktinSuppressionRequestVer10 = new OFBsnSetPktinSuppressionRequestVer10(
+ xid,
+ enabled,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ cookie
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnSetPktinSuppressionRequestVer10);
+ return bsnSetPktinSuppressionRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnSetPktinSuppressionRequestVer10Funnel FUNNEL = new OFBsnSetPktinSuppressionRequestVer10Funnel();
+ static class OFBsnSetPktinSuppressionRequestVer10Funnel implements Funnel<OFBsnSetPktinSuppressionRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnSetPktinSuppressionRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 32
+ sink.putShort((short) 0x20);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0xbL
+ sink.putInt(0xb);
+ sink.putBoolean(message.enabled);
+ // skip pad (1 bytes)
+ sink.putInt(message.idleTimeout);
+ sink.putInt(message.hardTimeout);
+ sink.putInt(message.priority);
+ message.cookie.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnSetPktinSuppressionRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnSetPktinSuppressionRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 32
+ bb.writeShort((short) 0x20);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0xbL
+ bb.writeInt(0xb);
+ bb.writeByte(message.enabled ? 1 : 0);
+ // pad: 1 bytes
+ bb.writeZero(1);
+ bb.writeShort(U16.t(message.idleTimeout));
+ bb.writeShort(U16.t(message.hardTimeout));
+ bb.writeShort(U16.t(message.priority));
+ bb.writeLong(message.cookie.getValue());
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnSetPktinSuppressionRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("enabled=").append(enabled);
+ b.append(", ");
+ b.append("idleTimeout=").append(idleTimeout);
+ b.append(", ");
+ b.append("hardTimeout=").append(hardTimeout);
+ b.append(", ");
+ b.append("priority=").append(priority);
+ b.append(", ");
+ b.append("cookie=").append(cookie);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnSetPktinSuppressionRequestVer10 other = (OFBsnSetPktinSuppressionRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( enabled != other.enabled)
+ return false;
+ if( idleTimeout != other.idleTimeout)
+ return false;
+ if( hardTimeout != other.hardTimeout)
+ return false;
+ if( priority != other.priority)
+ return false;
+ if (cookie == null) {
+ if (other.cookie != null)
+ return false;
+ } else if (!cookie.equals(other.cookie))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + (enabled ? 1231 : 1237);
+ result = prime * result + idleTimeout;
+ result = prime * result + hardTimeout;
+ result = prime * result + priority;
+ result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellCommandVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellCommandVer10.java
new file mode 100644
index 0000000..a6a04cb
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellCommandVer10.java
@@ -0,0 +1,418 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFBsnShellCommandVer10 implements OFBsnShellCommand {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnShellCommandVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_SERVICE = 0x0L;
+ private final static byte[] DEFAULT_DATA = new byte[0];
+
+ // OF message fields
+ private final long xid;
+ private final long service;
+ private final byte[] data;
+//
+ // Immutable default instance
+ final static OFBsnShellCommandVer10 DEFAULT = new OFBsnShellCommandVer10(
+ DEFAULT_XID, DEFAULT_SERVICE, DEFAULT_DATA
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnShellCommandVer10(long xid, long service, byte[] data) {
+ this.xid = xid;
+ this.service = service;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x6L;
+ }
+
+ @Override
+ public long getService() {
+ return service;
+ }
+
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+
+
+ public OFBsnShellCommand.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnShellCommand.Builder {
+ final OFBsnShellCommandVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean serviceSet;
+ private long service;
+ private boolean dataSet;
+ private byte[] data;
+
+ BuilderWithParent(OFBsnShellCommandVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnShellCommand.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x6L;
+ }
+
+ @Override
+ public long getService() {
+ return service;
+ }
+
+ @Override
+ public OFBsnShellCommand.Builder setService(long service) {
+ this.service = service;
+ this.serviceSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFBsnShellCommand.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnShellCommand build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long service = this.serviceSet ? this.service : parentMessage.service;
+ byte[] data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFBsnShellCommandVer10(
+ xid,
+ service,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnShellCommand.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean serviceSet;
+ private long service;
+ private boolean dataSet;
+ private byte[] data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnShellCommand.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x6L;
+ }
+
+ @Override
+ public long getService() {
+ return service;
+ }
+
+ @Override
+ public OFBsnShellCommand.Builder setService(long service) {
+ this.service = service;
+ this.serviceSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFBsnShellCommand.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnShellCommand build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long service = this.serviceSet ? this.service : DEFAULT_SERVICE;
+ byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFBsnShellCommandVer10(
+ xid,
+ service,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnShellCommand> {
+ @Override
+ public OFBsnShellCommand readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x6L
+ int subtype = bb.readInt();
+ if(subtype != 0x6)
+ throw new OFParseError("Wrong subtype: Expected=0x6L(0x6L), got="+subtype);
+ long service = U32.f(bb.readInt());
+ byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+ OFBsnShellCommandVer10 bsnShellCommandVer10 = new OFBsnShellCommandVer10(
+ xid,
+ service,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnShellCommandVer10);
+ return bsnShellCommandVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnShellCommandVer10Funnel FUNNEL = new OFBsnShellCommandVer10Funnel();
+ static class OFBsnShellCommandVer10Funnel implements Funnel<OFBsnShellCommandVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnShellCommandVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x6L
+ sink.putInt(0x6);
+ sink.putLong(message.service);
+ sink.putBytes(message.data);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnShellCommandVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnShellCommandVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x6L
+ bb.writeInt(0x6);
+ bb.writeInt(U32.t(message.service));
+ bb.writeBytes(message.data);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnShellCommandVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("service=").append(service);
+ b.append(", ");
+ b.append("data=").append(Arrays.toString(data));
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnShellCommandVer10 other = (OFBsnShellCommandVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( service != other.service)
+ return false;
+ if (!Arrays.equals(data, other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (service ^ (service >>> 32));
+ result = prime * result + Arrays.hashCode(data);
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellOutputVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellOutputVer10.java
new file mode 100644
index 0000000..54e7951
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellOutputVer10.java
@@ -0,0 +1,371 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFBsnShellOutputVer10 implements OFBsnShellOutput {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnShellOutputVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 16;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static byte[] DEFAULT_DATA = new byte[0];
+
+ // OF message fields
+ private final long xid;
+ private final byte[] data;
+//
+ // Immutable default instance
+ final static OFBsnShellOutputVer10 DEFAULT = new OFBsnShellOutputVer10(
+ DEFAULT_XID, DEFAULT_DATA
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnShellOutputVer10(long xid, byte[] data) {
+ this.xid = xid;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x7L;
+ }
+
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+
+
+ public OFBsnShellOutput.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnShellOutput.Builder {
+ final OFBsnShellOutputVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean dataSet;
+ private byte[] data;
+
+ BuilderWithParent(OFBsnShellOutputVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnShellOutput.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x7L;
+ }
+
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFBsnShellOutput.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnShellOutput build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ byte[] data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFBsnShellOutputVer10(
+ xid,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnShellOutput.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean dataSet;
+ private byte[] data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnShellOutput.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x7L;
+ }
+
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFBsnShellOutput.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnShellOutput build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFBsnShellOutputVer10(
+ xid,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnShellOutput> {
+ @Override
+ public OFBsnShellOutput readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x7L
+ int subtype = bb.readInt();
+ if(subtype != 0x7)
+ throw new OFParseError("Wrong subtype: Expected=0x7L(0x7L), got="+subtype);
+ byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+ OFBsnShellOutputVer10 bsnShellOutputVer10 = new OFBsnShellOutputVer10(
+ xid,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnShellOutputVer10);
+ return bsnShellOutputVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnShellOutputVer10Funnel FUNNEL = new OFBsnShellOutputVer10Funnel();
+ static class OFBsnShellOutputVer10Funnel implements Funnel<OFBsnShellOutputVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnShellOutputVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x7L
+ sink.putInt(0x7);
+ sink.putBytes(message.data);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnShellOutputVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnShellOutputVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x7L
+ bb.writeInt(0x7);
+ bb.writeBytes(message.data);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnShellOutputVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("data=").append(Arrays.toString(data));
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnShellOutputVer10 other = (OFBsnShellOutputVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (!Arrays.equals(data, other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + Arrays.hashCode(data);
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellStatusVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellStatusVer10.java
new file mode 100644
index 0000000..13189de
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnShellStatusVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnShellStatusVer10 implements OFBsnShellStatus {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnShellStatusVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_STATUS = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long status;
+//
+ // Immutable default instance
+ final static OFBsnShellStatusVer10 DEFAULT = new OFBsnShellStatusVer10(
+ DEFAULT_XID, DEFAULT_STATUS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnShellStatusVer10(long xid, long status) {
+ this.xid = xid;
+ this.status = status;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x8L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+
+
+ public OFBsnShellStatus.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnShellStatus.Builder {
+ final OFBsnShellStatusVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+
+ BuilderWithParent(OFBsnShellStatusVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnShellStatus.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x8L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnShellStatus.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnShellStatus build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long status = this.statusSet ? this.status : parentMessage.status;
+
+ //
+ return new OFBsnShellStatusVer10(
+ xid,
+ status
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnShellStatus.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnShellStatus.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x8L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnShellStatus.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnShellStatus build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+ return new OFBsnShellStatusVer10(
+ xid,
+ status
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnShellStatus> {
+ @Override
+ public OFBsnShellStatus readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x8L
+ int subtype = bb.readInt();
+ if(subtype != 0x8)
+ throw new OFParseError("Wrong subtype: Expected=0x8L(0x8L), got="+subtype);
+ long status = U32.f(bb.readInt());
+
+ OFBsnShellStatusVer10 bsnShellStatusVer10 = new OFBsnShellStatusVer10(
+ xid,
+ status
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnShellStatusVer10);
+ return bsnShellStatusVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnShellStatusVer10Funnel FUNNEL = new OFBsnShellStatusVer10Funnel();
+ static class OFBsnShellStatusVer10Funnel implements Funnel<OFBsnShellStatusVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnShellStatusVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x8L
+ sink.putInt(0x8);
+ sink.putLong(message.status);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnShellStatusVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnShellStatusVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x8L
+ bb.writeInt(0x8);
+ bb.writeInt(U32.t(message.status));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnShellStatusVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnShellStatusVer10 other = (OFBsnShellStatusVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( status != other.status)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (status ^ (status >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsReplyVer10.java
new file mode 100644
index 0000000..5dc77e8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsReplyVer10.java
@@ -0,0 +1,73 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFBsnStatsReplyVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 24;
+
+
+ public final static OFBsnStatsReplyVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFBsnStatsReply> {
+ @Override
+ public OFBsnStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 19
+ byte type = bb.readByte();
+ if(type != (byte) 0x13)
+ throw new OFParseError("Wrong type: Expected=OFType.BARRIER_REPLY(19), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ U32.f(bb.readInt());
+ // fixed value property statsType == 65535
+ short statsType = bb.readShort();
+ if(statsType != (short) 0xffff)
+ throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
+ OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+ // pad: 4 bytes
+ bb.skipBytes(4);
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ int subtype = bb.readInt();
+ bb.readerIndex(start);
+ switch(subtype) {
+ default:
+ throw new OFParseError("Unknown value for discriminator subtype of class OFBsnStatsReplyVer10: " + subtype);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsRequestVer10.java
new file mode 100644
index 0000000..197a732
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnStatsRequestVer10.java
@@ -0,0 +1,73 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFBsnStatsRequestVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 24;
+
+
+ public final static OFBsnStatsRequestVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFBsnStatsRequest<?>> {
+ @Override
+ public OFBsnStatsRequest<?> readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 18
+ byte type = bb.readByte();
+ if(type != (byte) 0x12)
+ throw new OFParseError("Wrong type: Expected=OFType.BARRIER_REQUEST(18), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ U32.f(bb.readInt());
+ // fixed value property statsType == 65535
+ short statsType = bb.readShort();
+ if(statsType != (short) 0xffff)
+ throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
+ OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+ // pad: 4 bytes
+ bb.skipBytes(4);
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ int subtype = bb.readInt();
+ bb.readerIndex(start);
+ switch(subtype) {
+ default:
+ throw new OFParseError("Unknown value for discriminator subtype of class OFBsnStatsRequestVer10: " + subtype);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnTlvsVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnTlvsVer10.java
new file mode 100644
index 0000000..7375e41
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnTlvsVer10.java
@@ -0,0 +1,200 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+
+public class OFBsnTlvsVer10 implements OFBsnTlvs {
+ public final static OFBsnTlvsVer10 INSTANCE = new OFBsnTlvsVer10();
+
+
+
+
+ public OFBsnTlvBroadcastQueryTimeout.Builder buildBroadcastQueryTimeout() {
+ throw new UnsupportedOperationException("OFBsnTlvBroadcastQueryTimeout not supported in version 1.0");
+ }
+ public OFBsnTlvBroadcastQueryTimeout broadcastQueryTimeout(long value) {
+ throw new UnsupportedOperationException("OFBsnTlvBroadcastQueryTimeout not supported in version 1.0");
+ }
+
+ public OFBsnTlvCircuitId.Builder buildCircuitId() {
+ throw new UnsupportedOperationException("OFBsnTlvCircuitId not supported in version 1.0");
+ }
+ public OFBsnTlvCircuitId circuitId(byte[] value) {
+ throw new UnsupportedOperationException("OFBsnTlvCircuitId not supported in version 1.0");
+ }
+
+ public OFBsnTlvCrcEnabled.Builder buildCrcEnabled() {
+ throw new UnsupportedOperationException("OFBsnTlvCrcEnabled not supported in version 1.0");
+ }
+ public OFBsnTlvCrcEnabled crcEnabled(short value) {
+ throw new UnsupportedOperationException("OFBsnTlvCrcEnabled not supported in version 1.0");
+ }
+
+ public OFBsnTlvIdleNotification idleNotification() {
+ throw new UnsupportedOperationException("OFBsnTlvIdleNotification not supported in version 1.0");
+ }
+
+ public OFBsnTlvIdleTime.Builder buildIdleTime() {
+ throw new UnsupportedOperationException("OFBsnTlvIdleTime not supported in version 1.0");
+ }
+ public OFBsnTlvIdleTime idleTime(U64 value) {
+ throw new UnsupportedOperationException("OFBsnTlvIdleTime not supported in version 1.0");
+ }
+
+ public OFBsnTlvIdleTimeout.Builder buildIdleTimeout() {
+ throw new UnsupportedOperationException("OFBsnTlvIdleTimeout not supported in version 1.0");
+ }
+ public OFBsnTlvIdleTimeout idleTimeout(long value) {
+ throw new UnsupportedOperationException("OFBsnTlvIdleTimeout not supported in version 1.0");
+ }
+
+ public OFBsnTlvIpv4.Builder buildIpv4() {
+ throw new UnsupportedOperationException("OFBsnTlvIpv4 not supported in version 1.0");
+ }
+ public OFBsnTlvIpv4 ipv4(IPv4Address value) {
+ throw new UnsupportedOperationException("OFBsnTlvIpv4 not supported in version 1.0");
+ }
+
+ public OFBsnTlvMac.Builder buildMac() {
+ throw new UnsupportedOperationException("OFBsnTlvMac not supported in version 1.0");
+ }
+ public OFBsnTlvMac mac(MacAddress value) {
+ throw new UnsupportedOperationException("OFBsnTlvMac not supported in version 1.0");
+ }
+
+ public OFBsnTlvMissPackets.Builder buildMissPackets() {
+ throw new UnsupportedOperationException("OFBsnTlvMissPackets not supported in version 1.0");
+ }
+ public OFBsnTlvMissPackets missPackets(U64 value) {
+ throw new UnsupportedOperationException("OFBsnTlvMissPackets not supported in version 1.0");
+ }
+
+ public OFBsnTlvPort.Builder buildPort() {
+ throw new UnsupportedOperationException("OFBsnTlvPort not supported in version 1.0");
+ }
+ public OFBsnTlvPort port(OFPort value) {
+ throw new UnsupportedOperationException("OFBsnTlvPort not supported in version 1.0");
+ }
+
+ public OFBsnTlvQueueId.Builder buildQueueId() {
+ throw new UnsupportedOperationException("OFBsnTlvQueueId not supported in version 1.0");
+ }
+ public OFBsnTlvQueueId queueId(long value) {
+ throw new UnsupportedOperationException("OFBsnTlvQueueId not supported in version 1.0");
+ }
+
+ public OFBsnTlvQueueWeight.Builder buildQueueWeight() {
+ throw new UnsupportedOperationException("OFBsnTlvQueueWeight not supported in version 1.0");
+ }
+ public OFBsnTlvQueueWeight queueWeight(long value) {
+ throw new UnsupportedOperationException("OFBsnTlvQueueWeight not supported in version 1.0");
+ }
+
+ public OFBsnTlvReplyPackets.Builder buildReplyPackets() {
+ throw new UnsupportedOperationException("OFBsnTlvReplyPackets not supported in version 1.0");
+ }
+ public OFBsnTlvReplyPackets replyPackets(U64 value) {
+ throw new UnsupportedOperationException("OFBsnTlvReplyPackets not supported in version 1.0");
+ }
+
+ public OFBsnTlvRequestPackets.Builder buildRequestPackets() {
+ throw new UnsupportedOperationException("OFBsnTlvRequestPackets not supported in version 1.0");
+ }
+ public OFBsnTlvRequestPackets requestPackets(U64 value) {
+ throw new UnsupportedOperationException("OFBsnTlvRequestPackets not supported in version 1.0");
+ }
+
+ public OFBsnTlvRxPackets.Builder buildRxPackets() {
+ throw new UnsupportedOperationException("OFBsnTlvRxPackets not supported in version 1.0");
+ }
+ public OFBsnTlvRxPackets rxPackets(U64 value) {
+ throw new UnsupportedOperationException("OFBsnTlvRxPackets not supported in version 1.0");
+ }
+
+ public OFBsnTlvTxPackets.Builder buildTxPackets() {
+ throw new UnsupportedOperationException("OFBsnTlvTxPackets not supported in version 1.0");
+ }
+ public OFBsnTlvTxPackets txPackets(U64 value) {
+ throw new UnsupportedOperationException("OFBsnTlvTxPackets not supported in version 1.0");
+ }
+
+ public OFBsnTlvUdfAnchor.Builder buildUdfAnchor() {
+ throw new UnsupportedOperationException("OFBsnTlvUdfAnchor not supported in version 1.0");
+ }
+ public OFBsnTlvUdfAnchor udfAnchor(OFBsnUdfAnchor value) {
+ throw new UnsupportedOperationException("OFBsnTlvUdfAnchor not supported in version 1.0");
+ }
+
+ public OFBsnTlvUdfId.Builder buildUdfId() {
+ throw new UnsupportedOperationException("OFBsnTlvUdfId not supported in version 1.0");
+ }
+ public OFBsnTlvUdfId udfId(int value) {
+ throw new UnsupportedOperationException("OFBsnTlvUdfId not supported in version 1.0");
+ }
+
+ public OFBsnTlvUdfLength.Builder buildUdfLength() {
+ throw new UnsupportedOperationException("OFBsnTlvUdfLength not supported in version 1.0");
+ }
+ public OFBsnTlvUdfLength udfLength(int value) {
+ throw new UnsupportedOperationException("OFBsnTlvUdfLength not supported in version 1.0");
+ }
+
+ public OFBsnTlvUdfOffset.Builder buildUdfOffset() {
+ throw new UnsupportedOperationException("OFBsnTlvUdfOffset not supported in version 1.0");
+ }
+ public OFBsnTlvUdfOffset udfOffset(int value) {
+ throw new UnsupportedOperationException("OFBsnTlvUdfOffset not supported in version 1.0");
+ }
+
+ public OFBsnTlvUnicastQueryTimeout.Builder buildUnicastQueryTimeout() {
+ throw new UnsupportedOperationException("OFBsnTlvUnicastQueryTimeout not supported in version 1.0");
+ }
+ public OFBsnTlvUnicastQueryTimeout unicastQueryTimeout(long value) {
+ throw new UnsupportedOperationException("OFBsnTlvUnicastQueryTimeout not supported in version 1.0");
+ }
+
+ public OFBsnTlvVlanVid.Builder buildVlanVid() {
+ throw new UnsupportedOperationException("OFBsnTlvVlanVid not supported in version 1.0");
+ }
+ public OFBsnTlvVlanVid vlanVid(VlanVid value) {
+ throw new UnsupportedOperationException("OFBsnTlvVlanVid not supported in version 1.0");
+ }
+
+ public OFBsnTlvVrf.Builder buildVrf() {
+ throw new UnsupportedOperationException("OFBsnTlvVrf not supported in version 1.0");
+ }
+ public OFBsnTlvVrf vrf(long value) {
+ throw new UnsupportedOperationException("OFBsnTlvVrf not supported in version 1.0");
+ }
+
+ public OFMessageReader<OFBsnTlv> getReader() {
+ throw new UnsupportedOperationException("Reader<OFBsnTlv> not supported in version 1.0");
+ }
+
+
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateReplyVer10.java
new file mode 100644
index 0000000..1256b9c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateReplyVer10.java
@@ -0,0 +1,408 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVirtualPortCreateReplyVer10 implements OFBsnVirtualPortCreateReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnVirtualPortCreateReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 24;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_STATUS = 0x0L;
+ private final static long DEFAULT_VPORT_NO = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long status;
+ private final long vportNo;
+//
+ // Immutable default instance
+ final static OFBsnVirtualPortCreateReplyVer10 DEFAULT = new OFBsnVirtualPortCreateReplyVer10(
+ DEFAULT_XID, DEFAULT_STATUS, DEFAULT_VPORT_NO
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnVirtualPortCreateReplyVer10(long xid, long status, long vportNo) {
+ this.xid = xid;
+ this.status = status;
+ this.vportNo = vportNo;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x10L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public long getVportNo() {
+ return vportNo;
+ }
+
+
+
+ public OFBsnVirtualPortCreateReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnVirtualPortCreateReply.Builder {
+ final OFBsnVirtualPortCreateReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+ private boolean vportNoSet;
+ private long vportNo;
+
+ BuilderWithParent(OFBsnVirtualPortCreateReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x10L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+ @Override
+ public long getVportNo() {
+ return vportNo;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateReply.Builder setVportNo(long vportNo) {
+ this.vportNo = vportNo;
+ this.vportNoSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnVirtualPortCreateReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long status = this.statusSet ? this.status : parentMessage.status;
+ long vportNo = this.vportNoSet ? this.vportNo : parentMessage.vportNo;
+
+ //
+ return new OFBsnVirtualPortCreateReplyVer10(
+ xid,
+ status,
+ vportNo
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnVirtualPortCreateReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+ private boolean vportNoSet;
+ private long vportNo;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x10L;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+ @Override
+ public long getVportNo() {
+ return vportNo;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateReply.Builder setVportNo(long vportNo) {
+ this.vportNo = vportNo;
+ this.vportNoSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnVirtualPortCreateReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+ long vportNo = this.vportNoSet ? this.vportNo : DEFAULT_VPORT_NO;
+
+
+ return new OFBsnVirtualPortCreateReplyVer10(
+ xid,
+ status,
+ vportNo
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnVirtualPortCreateReply> {
+ @Override
+ public OFBsnVirtualPortCreateReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 24)
+ throw new OFParseError("Wrong length: Expected=24(24), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x10L
+ int subtype = bb.readInt();
+ if(subtype != 0x10)
+ throw new OFParseError("Wrong subtype: Expected=0x10L(0x10L), got="+subtype);
+ long status = U32.f(bb.readInt());
+ long vportNo = U32.f(bb.readInt());
+
+ OFBsnVirtualPortCreateReplyVer10 bsnVirtualPortCreateReplyVer10 = new OFBsnVirtualPortCreateReplyVer10(
+ xid,
+ status,
+ vportNo
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnVirtualPortCreateReplyVer10);
+ return bsnVirtualPortCreateReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnVirtualPortCreateReplyVer10Funnel FUNNEL = new OFBsnVirtualPortCreateReplyVer10Funnel();
+ static class OFBsnVirtualPortCreateReplyVer10Funnel implements Funnel<OFBsnVirtualPortCreateReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnVirtualPortCreateReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 24
+ sink.putShort((short) 0x18);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x10L
+ sink.putInt(0x10);
+ sink.putLong(message.status);
+ sink.putLong(message.vportNo);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnVirtualPortCreateReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnVirtualPortCreateReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 24
+ bb.writeShort((short) 0x18);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x10L
+ bb.writeInt(0x10);
+ bb.writeInt(U32.t(message.status));
+ bb.writeInt(U32.t(message.vportNo));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnVirtualPortCreateReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(", ");
+ b.append("vportNo=").append(vportNo);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnVirtualPortCreateReplyVer10 other = (OFBsnVirtualPortCreateReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( status != other.status)
+ return false;
+ if( vportNo != other.vportNo)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (status ^ (status >>> 32));
+ result = prime * (int) (vportNo ^ (vportNo >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateRequestVer10.java
new file mode 100644
index 0000000..69741e9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortCreateRequestVer10.java
@@ -0,0 +1,369 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVirtualPortCreateRequestVer10 implements OFBsnVirtualPortCreateRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnVirtualPortCreateRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final OFBsnVport vport;
+//
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnVirtualPortCreateRequestVer10(long xid, OFBsnVport vport) {
+ this.xid = xid;
+ this.vport = vport;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xfL;
+ }
+
+ @Override
+ public OFBsnVport getVport() {
+ return vport;
+ }
+
+
+
+ public OFBsnVirtualPortCreateRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnVirtualPortCreateRequest.Builder {
+ final OFBsnVirtualPortCreateRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean vportSet;
+ private OFBsnVport vport;
+
+ BuilderWithParent(OFBsnVirtualPortCreateRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xfL;
+ }
+
+ @Override
+ public OFBsnVport getVport() {
+ return vport;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateRequest.Builder setVport(OFBsnVport vport) {
+ this.vport = vport;
+ this.vportSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnVirtualPortCreateRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ OFBsnVport vport = this.vportSet ? this.vport : parentMessage.vport;
+ if(vport == null)
+ throw new NullPointerException("Property vport must not be null");
+
+ //
+ return new OFBsnVirtualPortCreateRequestVer10(
+ xid,
+ vport
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnVirtualPortCreateRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean vportSet;
+ private OFBsnVport vport;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0xfL;
+ }
+
+ @Override
+ public OFBsnVport getVport() {
+ return vport;
+ }
+
+ @Override
+ public OFBsnVirtualPortCreateRequest.Builder setVport(OFBsnVport vport) {
+ this.vport = vport;
+ this.vportSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnVirtualPortCreateRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ if(!this.vportSet)
+ throw new IllegalStateException("Property vport doesn't have default value -- must be set");
+ if(vport == null)
+ throw new NullPointerException("Property vport must not be null");
+
+
+ return new OFBsnVirtualPortCreateRequestVer10(
+ xid,
+ vport
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnVirtualPortCreateRequest> {
+ @Override
+ public OFBsnVirtualPortCreateRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0xfL
+ int subtype = bb.readInt();
+ if(subtype != 0xf)
+ throw new OFParseError("Wrong subtype: Expected=0xfL(0xfL), got="+subtype);
+ OFBsnVport vport = OFBsnVportVer10.READER.readFrom(bb);
+
+ OFBsnVirtualPortCreateRequestVer10 bsnVirtualPortCreateRequestVer10 = new OFBsnVirtualPortCreateRequestVer10(
+ xid,
+ vport
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnVirtualPortCreateRequestVer10);
+ return bsnVirtualPortCreateRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnVirtualPortCreateRequestVer10Funnel FUNNEL = new OFBsnVirtualPortCreateRequestVer10Funnel();
+ static class OFBsnVirtualPortCreateRequestVer10Funnel implements Funnel<OFBsnVirtualPortCreateRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnVirtualPortCreateRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0xfL
+ sink.putInt(0xf);
+ message.vport.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnVirtualPortCreateRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnVirtualPortCreateRequestVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0xfL
+ bb.writeInt(0xf);
+ message.vport.writeTo(bb);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnVirtualPortCreateRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("vport=").append(vport);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnVirtualPortCreateRequestVer10 other = (OFBsnVirtualPortCreateRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (vport == null) {
+ if (other.vport != null)
+ return false;
+ } else if (!vport.equals(other.vport))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((vport == null) ? 0 : vport.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveReplyVer10.java
new file mode 100644
index 0000000..440624f
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveReplyVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVirtualPortRemoveReplyVer10 implements OFBsnVirtualPortRemoveReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnVirtualPortRemoveReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_STATUS = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long status;
+//
+ // Immutable default instance
+ final static OFBsnVirtualPortRemoveReplyVer10 DEFAULT = new OFBsnVirtualPortRemoveReplyVer10(
+ DEFAULT_XID, DEFAULT_STATUS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnVirtualPortRemoveReplyVer10(long xid, long status) {
+ this.xid = xid;
+ this.status = status;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1aL;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+
+
+ public OFBsnVirtualPortRemoveReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnVirtualPortRemoveReply.Builder {
+ final OFBsnVirtualPortRemoveReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+
+ BuilderWithParent(OFBsnVirtualPortRemoveReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnVirtualPortRemoveReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1aL;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnVirtualPortRemoveReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnVirtualPortRemoveReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long status = this.statusSet ? this.status : parentMessage.status;
+
+ //
+ return new OFBsnVirtualPortRemoveReplyVer10(
+ xid,
+ status
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnVirtualPortRemoveReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean statusSet;
+ private long status;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnVirtualPortRemoveReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x1aL;
+ }
+
+ @Override
+ public long getStatus() {
+ return status;
+ }
+
+ @Override
+ public OFBsnVirtualPortRemoveReply.Builder setStatus(long status) {
+ this.status = status;
+ this.statusSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnVirtualPortRemoveReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long status = this.statusSet ? this.status : DEFAULT_STATUS;
+
+
+ return new OFBsnVirtualPortRemoveReplyVer10(
+ xid,
+ status
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnVirtualPortRemoveReply> {
+ @Override
+ public OFBsnVirtualPortRemoveReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x1aL
+ int subtype = bb.readInt();
+ if(subtype != 0x1a)
+ throw new OFParseError("Wrong subtype: Expected=0x1aL(0x1aL), got="+subtype);
+ long status = U32.f(bb.readInt());
+
+ OFBsnVirtualPortRemoveReplyVer10 bsnVirtualPortRemoveReplyVer10 = new OFBsnVirtualPortRemoveReplyVer10(
+ xid,
+ status
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnVirtualPortRemoveReplyVer10);
+ return bsnVirtualPortRemoveReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnVirtualPortRemoveReplyVer10Funnel FUNNEL = new OFBsnVirtualPortRemoveReplyVer10Funnel();
+ static class OFBsnVirtualPortRemoveReplyVer10Funnel implements Funnel<OFBsnVirtualPortRemoveReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnVirtualPortRemoveReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x1aL
+ sink.putInt(0x1a);
+ sink.putLong(message.status);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnVirtualPortRemoveReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnVirtualPortRemoveReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x1aL
+ bb.writeInt(0x1a);
+ bb.writeInt(U32.t(message.status));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnVirtualPortRemoveReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("status=").append(status);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnVirtualPortRemoveReplyVer10 other = (OFBsnVirtualPortRemoveReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( status != other.status)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (status ^ (status >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveRequestVer10.java
new file mode 100644
index 0000000..f178056
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVirtualPortRemoveRequestVer10.java
@@ -0,0 +1,361 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVirtualPortRemoveRequestVer10 implements OFBsnVirtualPortRemoveRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnVirtualPortRemoveRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 20;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static long DEFAULT_VPORT_NO = 0x0L;
+
+ // OF message fields
+ private final long xid;
+ private final long vportNo;
+//
+ // Immutable default instance
+ final static OFBsnVirtualPortRemoveRequestVer10 DEFAULT = new OFBsnVirtualPortRemoveRequestVer10(
+ DEFAULT_XID, DEFAULT_VPORT_NO
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnVirtualPortRemoveRequestVer10(long xid, long vportNo) {
+ this.xid = xid;
+ this.vportNo = vportNo;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x11L;
+ }
+
+ @Override
+ public long getVportNo() {
+ return vportNo;
+ }
+
+
+
+ public OFBsnVirtualPortRemoveRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnVirtualPortRemoveRequest.Builder {
+ final OFBsnVirtualPortRemoveRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean vportNoSet;
+ private long vportNo;
+
+ BuilderWithParent(OFBsnVirtualPortRemoveRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnVirtualPortRemoveRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x11L;
+ }
+
+ @Override
+ public long getVportNo() {
+ return vportNo;
+ }
+
+ @Override
+ public OFBsnVirtualPortRemoveRequest.Builder setVportNo(long vportNo) {
+ this.vportNo = vportNo;
+ this.vportNoSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFBsnVirtualPortRemoveRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ long vportNo = this.vportNoSet ? this.vportNo : parentMessage.vportNo;
+
+ //
+ return new OFBsnVirtualPortRemoveRequestVer10(
+ xid,
+ vportNo
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnVirtualPortRemoveRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean vportNoSet;
+ private long vportNo;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.EXPERIMENTER;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFBsnVirtualPortRemoveRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public long getExperimenter() {
+ return 0x5c16c7L;
+ }
+
+ @Override
+ public long getSubtype() {
+ return 0x11L;
+ }
+
+ @Override
+ public long getVportNo() {
+ return vportNo;
+ }
+
+ @Override
+ public OFBsnVirtualPortRemoveRequest.Builder setVportNo(long vportNo) {
+ this.vportNo = vportNo;
+ this.vportNoSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFBsnVirtualPortRemoveRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ long vportNo = this.vportNoSet ? this.vportNo : DEFAULT_VPORT_NO;
+
+
+ return new OFBsnVirtualPortRemoveRequestVer10(
+ xid,
+ vportNo
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnVirtualPortRemoveRequest> {
+ @Override
+ public OFBsnVirtualPortRemoveRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 20)
+ throw new OFParseError("Wrong length: Expected=20(20), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property experimenter == 0x5c16c7L
+ int experimenter = bb.readInt();
+ if(experimenter != 0x5c16c7)
+ throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
+ // fixed value property subtype == 0x11L
+ int subtype = bb.readInt();
+ if(subtype != 0x11)
+ throw new OFParseError("Wrong subtype: Expected=0x11L(0x11L), got="+subtype);
+ long vportNo = U32.f(bb.readInt());
+
+ OFBsnVirtualPortRemoveRequestVer10 bsnVirtualPortRemoveRequestVer10 = new OFBsnVirtualPortRemoveRequestVer10(
+ xid,
+ vportNo
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnVirtualPortRemoveRequestVer10);
+ return bsnVirtualPortRemoveRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnVirtualPortRemoveRequestVer10Funnel FUNNEL = new OFBsnVirtualPortRemoveRequestVer10Funnel();
+ static class OFBsnVirtualPortRemoveRequestVer10Funnel implements Funnel<OFBsnVirtualPortRemoveRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnVirtualPortRemoveRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 4
+ sink.putByte((byte) 0x4);
+ // fixed value property length = 20
+ sink.putShort((short) 0x14);
+ sink.putLong(message.xid);
+ // fixed value property experimenter = 0x5c16c7L
+ sink.putInt(0x5c16c7);
+ // fixed value property subtype = 0x11L
+ sink.putInt(0x11);
+ sink.putLong(message.vportNo);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnVirtualPortRemoveRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnVirtualPortRemoveRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 4
+ bb.writeByte((byte) 0x4);
+ // fixed value property length = 20
+ bb.writeShort((short) 0x14);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property experimenter = 0x5c16c7L
+ bb.writeInt(0x5c16c7);
+ // fixed value property subtype = 0x11L
+ bb.writeInt(0x11);
+ bb.writeInt(U32.t(message.vportNo));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnVirtualPortRemoveRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("vportNo=").append(vportNo);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnVirtualPortRemoveRequestVer10 other = (OFBsnVirtualPortRemoveRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if( vportNo != other.vportNo)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * (int) (vportNo ^ (vportNo >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreFlagsSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreFlagsSerializerVer10.java
new file mode 100644
index 0000000..4c2111d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreFlagsSerializerVer10.java
@@ -0,0 +1,102 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBsnVportL2GreFlags;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFBsnVportL2GreFlagsSerializerVer10 {
+
+ public final static int BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID_VAL = 0x1;
+ public final static int BSN_VPORT_L2GRE_DSCP_ASSIGN_VAL = 0x2;
+ public final static int BSN_VPORT_L2GRE_DSCP_COPY_VAL = 0x4;
+ public final static int BSN_VPORT_L2GRE_LOOPBACK_IS_VALID_VAL = 0x8;
+ public final static int BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID_VAL = 0x10;
+
+ public static Set<OFBsnVportL2GreFlags> readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readInt());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, Set<OFBsnVportL2GreFlags> set) {
+ bb.writeInt(toWireValue(set));
+ }
+
+ public static void putTo(Set<OFBsnVportL2GreFlags> set, PrimitiveSink sink) {
+ sink.putInt(toWireValue(set));
+ }
+
+
+ public static Set<OFBsnVportL2GreFlags> ofWireValue(int val) {
+ EnumSet<OFBsnVportL2GreFlags> set = EnumSet.noneOf(OFBsnVportL2GreFlags.class);
+
+ if((val & BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID_VAL) != 0)
+ set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID);
+ if((val & BSN_VPORT_L2GRE_DSCP_ASSIGN_VAL) != 0)
+ set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_DSCP_ASSIGN);
+ if((val & BSN_VPORT_L2GRE_DSCP_COPY_VAL) != 0)
+ set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_DSCP_COPY);
+ if((val & BSN_VPORT_L2GRE_LOOPBACK_IS_VALID_VAL) != 0)
+ set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_LOOPBACK_IS_VALID);
+ if((val & BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID_VAL) != 0)
+ set.add(OFBsnVportL2GreFlags.BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID);
+ return Collections.unmodifiableSet(set);
+ }
+
+ public static int toWireValue(Set<OFBsnVportL2GreFlags> set) {
+ int wireValue = 0;
+
+ for(OFBsnVportL2GreFlags e: set) {
+ switch(e) {
+ case BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID:
+ wireValue |= BSN_VPORT_L2GRE_LOCAL_MAC_IS_VALID_VAL;
+ break;
+ case BSN_VPORT_L2GRE_DSCP_ASSIGN:
+ wireValue |= BSN_VPORT_L2GRE_DSCP_ASSIGN_VAL;
+ break;
+ case BSN_VPORT_L2GRE_DSCP_COPY:
+ wireValue |= BSN_VPORT_L2GRE_DSCP_COPY_VAL;
+ break;
+ case BSN_VPORT_L2GRE_LOOPBACK_IS_VALID:
+ wireValue |= BSN_VPORT_L2GRE_LOOPBACK_IS_VALID_VAL;
+ break;
+ case BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID:
+ wireValue |= BSN_VPORT_L2GRE_RATE_LIMIT_IS_VALID_VAL;
+ break;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFBsnVportL2GreFlags in version 1.0: " + e);
+ }
+ }
+ return wireValue;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreVer10.java
new file mode 100644
index 0000000..32af98d
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportL2GreVer10.java
@@ -0,0 +1,839 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVportL2GreVer10 implements OFBsnVportL2Gre {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnVportL2GreVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 60;
+
+ private final static Set<OFBsnVportL2GreFlags> DEFAULT_FLAGS = ImmutableSet.<OFBsnVportL2GreFlags>of();
+ private final static OFPort DEFAULT_PORT_NO = OFPort.ANY;
+ private final static OFPort DEFAULT_LOOPBACK_PORT_NO = OFPort.ANY;
+ private final static MacAddress DEFAULT_LOCAL_MAC = MacAddress.NONE;
+ private final static MacAddress DEFAULT_NH_MAC = MacAddress.NONE;
+ private final static IPv4Address DEFAULT_SRC_IP = IPv4Address.NONE;
+ private final static IPv4Address DEFAULT_DST_IP = IPv4Address.NONE;
+ private final static short DEFAULT_DSCP = (short) 0x0;
+ private final static short DEFAULT_TTL = (short) 0x0;
+ private final static long DEFAULT_VPN = 0x0L;
+ private final static long DEFAULT_RATE_LIMIT = 0x0L;
+ private final static String DEFAULT_IF_NAME = "";
+
+ // OF message fields
+ private final Set<OFBsnVportL2GreFlags> flags;
+ private final OFPort portNo;
+ private final OFPort loopbackPortNo;
+ private final MacAddress localMac;
+ private final MacAddress nhMac;
+ private final IPv4Address srcIp;
+ private final IPv4Address dstIp;
+ private final short dscp;
+ private final short ttl;
+ private final long vpn;
+ private final long rateLimit;
+ private final String ifName;
+//
+ // Immutable default instance
+ final static OFBsnVportL2GreVer10 DEFAULT = new OFBsnVportL2GreVer10(
+ DEFAULT_FLAGS, DEFAULT_PORT_NO, DEFAULT_LOOPBACK_PORT_NO, DEFAULT_LOCAL_MAC, DEFAULT_NH_MAC, DEFAULT_SRC_IP, DEFAULT_DST_IP, DEFAULT_DSCP, DEFAULT_TTL, DEFAULT_VPN, DEFAULT_RATE_LIMIT, DEFAULT_IF_NAME
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnVportL2GreVer10(Set<OFBsnVportL2GreFlags> flags, OFPort portNo, OFPort loopbackPortNo, MacAddress localMac, MacAddress nhMac, IPv4Address srcIp, IPv4Address dstIp, short dscp, short ttl, long vpn, long rateLimit, String ifName) {
+ this.flags = flags;
+ this.portNo = portNo;
+ this.loopbackPortNo = loopbackPortNo;
+ this.localMac = localMac;
+ this.nhMac = nhMac;
+ this.srcIp = srcIp;
+ this.dstIp = dstIp;
+ this.dscp = dscp;
+ this.ttl = ttl;
+ this.vpn = vpn;
+ this.rateLimit = rateLimit;
+ this.ifName = ifName;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public int getType() {
+ return 0x1;
+ }
+
+ @Override
+ public Set<OFBsnVportL2GreFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFPort getLoopbackPortNo() {
+ return loopbackPortNo;
+ }
+
+ @Override
+ public MacAddress getLocalMac() {
+ return localMac;
+ }
+
+ @Override
+ public MacAddress getNhMac() {
+ return nhMac;
+ }
+
+ @Override
+ public IPv4Address getSrcIp() {
+ return srcIp;
+ }
+
+ @Override
+ public IPv4Address getDstIp() {
+ return dstIp;
+ }
+
+ @Override
+ public short getDscp() {
+ return dscp;
+ }
+
+ @Override
+ public short getTtl() {
+ return ttl;
+ }
+
+ @Override
+ public long getVpn() {
+ return vpn;
+ }
+
+ @Override
+ public long getRateLimit() {
+ return rateLimit;
+ }
+
+ @Override
+ public String getIfName() {
+ return ifName;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFBsnVportL2Gre.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnVportL2Gre.Builder {
+ final OFBsnVportL2GreVer10 parentMessage;
+
+ // OF message fields
+ private boolean flagsSet;
+ private Set<OFBsnVportL2GreFlags> flags;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean loopbackPortNoSet;
+ private OFPort loopbackPortNo;
+ private boolean localMacSet;
+ private MacAddress localMac;
+ private boolean nhMacSet;
+ private MacAddress nhMac;
+ private boolean srcIpSet;
+ private IPv4Address srcIp;
+ private boolean dstIpSet;
+ private IPv4Address dstIp;
+ private boolean dscpSet;
+ private short dscp;
+ private boolean ttlSet;
+ private short ttl;
+ private boolean vpnSet;
+ private long vpn;
+ private boolean rateLimitSet;
+ private long rateLimit;
+ private boolean ifNameSet;
+ private String ifName;
+
+ BuilderWithParent(OFBsnVportL2GreVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public int getType() {
+ return 0x1;
+ }
+
+ @Override
+ public Set<OFBsnVportL2GreFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setFlags(Set<OFBsnVportL2GreFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getLoopbackPortNo() {
+ return loopbackPortNo;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setLoopbackPortNo(OFPort loopbackPortNo) {
+ this.loopbackPortNo = loopbackPortNo;
+ this.loopbackPortNoSet = true;
+ return this;
+ }
+ @Override
+ public MacAddress getLocalMac() {
+ return localMac;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setLocalMac(MacAddress localMac) {
+ this.localMac = localMac;
+ this.localMacSet = true;
+ return this;
+ }
+ @Override
+ public MacAddress getNhMac() {
+ return nhMac;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setNhMac(MacAddress nhMac) {
+ this.nhMac = nhMac;
+ this.nhMacSet = true;
+ return this;
+ }
+ @Override
+ public IPv4Address getSrcIp() {
+ return srcIp;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setSrcIp(IPv4Address srcIp) {
+ this.srcIp = srcIp;
+ this.srcIpSet = true;
+ return this;
+ }
+ @Override
+ public IPv4Address getDstIp() {
+ return dstIp;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setDstIp(IPv4Address dstIp) {
+ this.dstIp = dstIp;
+ this.dstIpSet = true;
+ return this;
+ }
+ @Override
+ public short getDscp() {
+ return dscp;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setDscp(short dscp) {
+ this.dscp = dscp;
+ this.dscpSet = true;
+ return this;
+ }
+ @Override
+ public short getTtl() {
+ return ttl;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setTtl(short ttl) {
+ this.ttl = ttl;
+ this.ttlSet = true;
+ return this;
+ }
+ @Override
+ public long getVpn() {
+ return vpn;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setVpn(long vpn) {
+ this.vpn = vpn;
+ this.vpnSet = true;
+ return this;
+ }
+ @Override
+ public long getRateLimit() {
+ return rateLimit;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setRateLimit(long rateLimit) {
+ this.rateLimit = rateLimit;
+ this.rateLimitSet = true;
+ return this;
+ }
+ @Override
+ public String getIfName() {
+ return ifName;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setIfName(String ifName) {
+ this.ifName = ifName;
+ this.ifNameSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFBsnVportL2Gre build() {
+ Set<OFBsnVportL2GreFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ OFPort portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ OFPort loopbackPortNo = this.loopbackPortNoSet ? this.loopbackPortNo : parentMessage.loopbackPortNo;
+ if(loopbackPortNo == null)
+ throw new NullPointerException("Property loopbackPortNo must not be null");
+ MacAddress localMac = this.localMacSet ? this.localMac : parentMessage.localMac;
+ if(localMac == null)
+ throw new NullPointerException("Property localMac must not be null");
+ MacAddress nhMac = this.nhMacSet ? this.nhMac : parentMessage.nhMac;
+ if(nhMac == null)
+ throw new NullPointerException("Property nhMac must not be null");
+ IPv4Address srcIp = this.srcIpSet ? this.srcIp : parentMessage.srcIp;
+ if(srcIp == null)
+ throw new NullPointerException("Property srcIp must not be null");
+ IPv4Address dstIp = this.dstIpSet ? this.dstIp : parentMessage.dstIp;
+ if(dstIp == null)
+ throw new NullPointerException("Property dstIp must not be null");
+ short dscp = this.dscpSet ? this.dscp : parentMessage.dscp;
+ short ttl = this.ttlSet ? this.ttl : parentMessage.ttl;
+ long vpn = this.vpnSet ? this.vpn : parentMessage.vpn;
+ long rateLimit = this.rateLimitSet ? this.rateLimit : parentMessage.rateLimit;
+ String ifName = this.ifNameSet ? this.ifName : parentMessage.ifName;
+ if(ifName == null)
+ throw new NullPointerException("Property ifName must not be null");
+
+ //
+ return new OFBsnVportL2GreVer10(
+ flags,
+ portNo,
+ loopbackPortNo,
+ localMac,
+ nhMac,
+ srcIp,
+ dstIp,
+ dscp,
+ ttl,
+ vpn,
+ rateLimit,
+ ifName
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnVportL2Gre.Builder {
+ // OF message fields
+ private boolean flagsSet;
+ private Set<OFBsnVportL2GreFlags> flags;
+ private boolean portNoSet;
+ private OFPort portNo;
+ private boolean loopbackPortNoSet;
+ private OFPort loopbackPortNo;
+ private boolean localMacSet;
+ private MacAddress localMac;
+ private boolean nhMacSet;
+ private MacAddress nhMac;
+ private boolean srcIpSet;
+ private IPv4Address srcIp;
+ private boolean dstIpSet;
+ private IPv4Address dstIp;
+ private boolean dscpSet;
+ private short dscp;
+ private boolean ttlSet;
+ private short ttl;
+ private boolean vpnSet;
+ private long vpn;
+ private boolean rateLimitSet;
+ private long rateLimit;
+ private boolean ifNameSet;
+ private String ifName;
+
+ @Override
+ public int getType() {
+ return 0x1;
+ }
+
+ @Override
+ public Set<OFBsnVportL2GreFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setFlags(Set<OFBsnVportL2GreFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setPortNo(OFPort portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getLoopbackPortNo() {
+ return loopbackPortNo;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setLoopbackPortNo(OFPort loopbackPortNo) {
+ this.loopbackPortNo = loopbackPortNo;
+ this.loopbackPortNoSet = true;
+ return this;
+ }
+ @Override
+ public MacAddress getLocalMac() {
+ return localMac;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setLocalMac(MacAddress localMac) {
+ this.localMac = localMac;
+ this.localMacSet = true;
+ return this;
+ }
+ @Override
+ public MacAddress getNhMac() {
+ return nhMac;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setNhMac(MacAddress nhMac) {
+ this.nhMac = nhMac;
+ this.nhMacSet = true;
+ return this;
+ }
+ @Override
+ public IPv4Address getSrcIp() {
+ return srcIp;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setSrcIp(IPv4Address srcIp) {
+ this.srcIp = srcIp;
+ this.srcIpSet = true;
+ return this;
+ }
+ @Override
+ public IPv4Address getDstIp() {
+ return dstIp;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setDstIp(IPv4Address dstIp) {
+ this.dstIp = dstIp;
+ this.dstIpSet = true;
+ return this;
+ }
+ @Override
+ public short getDscp() {
+ return dscp;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setDscp(short dscp) {
+ this.dscp = dscp;
+ this.dscpSet = true;
+ return this;
+ }
+ @Override
+ public short getTtl() {
+ return ttl;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setTtl(short ttl) {
+ this.ttl = ttl;
+ this.ttlSet = true;
+ return this;
+ }
+ @Override
+ public long getVpn() {
+ return vpn;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setVpn(long vpn) {
+ this.vpn = vpn;
+ this.vpnSet = true;
+ return this;
+ }
+ @Override
+ public long getRateLimit() {
+ return rateLimit;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setRateLimit(long rateLimit) {
+ this.rateLimit = rateLimit;
+ this.rateLimitSet = true;
+ return this;
+ }
+ @Override
+ public String getIfName() {
+ return ifName;
+ }
+
+ @Override
+ public OFBsnVportL2Gre.Builder setIfName(String ifName) {
+ this.ifName = ifName;
+ this.ifNameSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFBsnVportL2Gre build() {
+ Set<OFBsnVportL2GreFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ OFPort portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+ if(portNo == null)
+ throw new NullPointerException("Property portNo must not be null");
+ OFPort loopbackPortNo = this.loopbackPortNoSet ? this.loopbackPortNo : DEFAULT_LOOPBACK_PORT_NO;
+ if(loopbackPortNo == null)
+ throw new NullPointerException("Property loopbackPortNo must not be null");
+ MacAddress localMac = this.localMacSet ? this.localMac : DEFAULT_LOCAL_MAC;
+ if(localMac == null)
+ throw new NullPointerException("Property localMac must not be null");
+ MacAddress nhMac = this.nhMacSet ? this.nhMac : DEFAULT_NH_MAC;
+ if(nhMac == null)
+ throw new NullPointerException("Property nhMac must not be null");
+ IPv4Address srcIp = this.srcIpSet ? this.srcIp : DEFAULT_SRC_IP;
+ if(srcIp == null)
+ throw new NullPointerException("Property srcIp must not be null");
+ IPv4Address dstIp = this.dstIpSet ? this.dstIp : DEFAULT_DST_IP;
+ if(dstIp == null)
+ throw new NullPointerException("Property dstIp must not be null");
+ short dscp = this.dscpSet ? this.dscp : DEFAULT_DSCP;
+ short ttl = this.ttlSet ? this.ttl : DEFAULT_TTL;
+ long vpn = this.vpnSet ? this.vpn : DEFAULT_VPN;
+ long rateLimit = this.rateLimitSet ? this.rateLimit : DEFAULT_RATE_LIMIT;
+ String ifName = this.ifNameSet ? this.ifName : DEFAULT_IF_NAME;
+ if(ifName == null)
+ throw new NullPointerException("Property ifName must not be null");
+
+
+ return new OFBsnVportL2GreVer10(
+ flags,
+ portNo,
+ loopbackPortNo,
+ localMac,
+ nhMac,
+ srcIp,
+ dstIp,
+ dscp,
+ ttl,
+ vpn,
+ rateLimit,
+ ifName
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnVportL2Gre> {
+ @Override
+ public OFBsnVportL2Gre readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 0x1
+ short type = bb.readShort();
+ if(type != (short) 0x1)
+ throw new OFParseError("Wrong type: Expected=0x1(0x1), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 60)
+ throw new OFParseError("Wrong length: Expected=60(60), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ Set<OFBsnVportL2GreFlags> flags = OFBsnVportL2GreFlagsSerializerVer10.readFrom(bb);
+ OFPort portNo = OFPort.read2Bytes(bb);
+ OFPort loopbackPortNo = OFPort.read2Bytes(bb);
+ MacAddress localMac = MacAddress.read6Bytes(bb);
+ MacAddress nhMac = MacAddress.read6Bytes(bb);
+ IPv4Address srcIp = IPv4Address.read4Bytes(bb);
+ IPv4Address dstIp = IPv4Address.read4Bytes(bb);
+ short dscp = U8.f(bb.readByte());
+ short ttl = U8.f(bb.readByte());
+ // pad: 2 bytes
+ bb.skipBytes(2);
+ long vpn = U32.f(bb.readInt());
+ long rateLimit = U32.f(bb.readInt());
+ String ifName = ChannelUtils.readFixedLengthString(bb, 16);
+
+ OFBsnVportL2GreVer10 bsnVportL2GreVer10 = new OFBsnVportL2GreVer10(
+ flags,
+ portNo,
+ loopbackPortNo,
+ localMac,
+ nhMac,
+ srcIp,
+ dstIp,
+ dscp,
+ ttl,
+ vpn,
+ rateLimit,
+ ifName
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnVportL2GreVer10);
+ return bsnVportL2GreVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnVportL2GreVer10Funnel FUNNEL = new OFBsnVportL2GreVer10Funnel();
+ static class OFBsnVportL2GreVer10Funnel implements Funnel<OFBsnVportL2GreVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnVportL2GreVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 0x1
+ sink.putShort((short) 0x1);
+ // fixed value property length = 60
+ sink.putShort((short) 0x3c);
+ OFBsnVportL2GreFlagsSerializerVer10.putTo(message.flags, sink);
+ message.portNo.putTo(sink);
+ message.loopbackPortNo.putTo(sink);
+ message.localMac.putTo(sink);
+ message.nhMac.putTo(sink);
+ message.srcIp.putTo(sink);
+ message.dstIp.putTo(sink);
+ sink.putShort(message.dscp);
+ sink.putShort(message.ttl);
+ // skip pad (2 bytes)
+ sink.putLong(message.vpn);
+ sink.putLong(message.rateLimit);
+ sink.putUnencodedChars(message.ifName);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnVportL2GreVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnVportL2GreVer10 message) {
+ // fixed value property type = 0x1
+ bb.writeShort((short) 0x1);
+ // fixed value property length = 60
+ bb.writeShort((short) 0x3c);
+ OFBsnVportL2GreFlagsSerializerVer10.writeTo(bb, message.flags);
+ message.portNo.write2Bytes(bb);
+ message.loopbackPortNo.write2Bytes(bb);
+ message.localMac.write6Bytes(bb);
+ message.nhMac.write6Bytes(bb);
+ message.srcIp.write4Bytes(bb);
+ message.dstIp.write4Bytes(bb);
+ bb.writeByte(U8.t(message.dscp));
+ bb.writeByte(U8.t(message.ttl));
+ // pad: 2 bytes
+ bb.writeZero(2);
+ bb.writeInt(U32.t(message.vpn));
+ bb.writeInt(U32.t(message.rateLimit));
+ ChannelUtils.writeFixedLengthString(bb, message.ifName, 16);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnVportL2GreVer10(");
+ b.append("flags=").append(flags);
+ b.append(", ");
+ b.append("portNo=").append(portNo);
+ b.append(", ");
+ b.append("loopbackPortNo=").append(loopbackPortNo);
+ b.append(", ");
+ b.append("localMac=").append(localMac);
+ b.append(", ");
+ b.append("nhMac=").append(nhMac);
+ b.append(", ");
+ b.append("srcIp=").append(srcIp);
+ b.append(", ");
+ b.append("dstIp=").append(dstIp);
+ b.append(", ");
+ b.append("dscp=").append(dscp);
+ b.append(", ");
+ b.append("ttl=").append(ttl);
+ b.append(", ");
+ b.append("vpn=").append(vpn);
+ b.append(", ");
+ b.append("rateLimit=").append(rateLimit);
+ b.append(", ");
+ b.append("ifName=").append(ifName);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnVportL2GreVer10 other = (OFBsnVportL2GreVer10) obj;
+
+ if (flags == null) {
+ if (other.flags != null)
+ return false;
+ } else if (!flags.equals(other.flags))
+ return false;
+ if (portNo == null) {
+ if (other.portNo != null)
+ return false;
+ } else if (!portNo.equals(other.portNo))
+ return false;
+ if (loopbackPortNo == null) {
+ if (other.loopbackPortNo != null)
+ return false;
+ } else if (!loopbackPortNo.equals(other.loopbackPortNo))
+ return false;
+ if (localMac == null) {
+ if (other.localMac != null)
+ return false;
+ } else if (!localMac.equals(other.localMac))
+ return false;
+ if (nhMac == null) {
+ if (other.nhMac != null)
+ return false;
+ } else if (!nhMac.equals(other.nhMac))
+ return false;
+ if (srcIp == null) {
+ if (other.srcIp != null)
+ return false;
+ } else if (!srcIp.equals(other.srcIp))
+ return false;
+ if (dstIp == null) {
+ if (other.dstIp != null)
+ return false;
+ } else if (!dstIp.equals(other.dstIp))
+ return false;
+ if( dscp != other.dscp)
+ return false;
+ if( ttl != other.ttl)
+ return false;
+ if( vpn != other.vpn)
+ return false;
+ if( rateLimit != other.rateLimit)
+ return false;
+ if (ifName == null) {
+ if (other.ifName != null)
+ return false;
+ } else if (!ifName.equals(other.ifName))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+ result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
+ result = prime * result + ((loopbackPortNo == null) ? 0 : loopbackPortNo.hashCode());
+ result = prime * result + ((localMac == null) ? 0 : localMac.hashCode());
+ result = prime * result + ((nhMac == null) ? 0 : nhMac.hashCode());
+ result = prime * result + ((srcIp == null) ? 0 : srcIp.hashCode());
+ result = prime * result + ((dstIp == null) ? 0 : dstIp.hashCode());
+ result = prime * result + dscp;
+ result = prime * result + ttl;
+ result = prime * (int) (vpn ^ (vpn >>> 32));
+ result = prime * (int) (rateLimit ^ (rateLimit >>> 32));
+ result = prime * result + ((ifName == null) ? 0 : ifName.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQUntaggedSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQUntaggedSerializerVer10.java
new file mode 100644
index 0000000..e3f79b3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQUntaggedSerializerVer10.java
@@ -0,0 +1,69 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBsnVportQInQUntagged;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBsnVportQInQUntaggedSerializerVer10 {
+
+ public final static short BSN_VPORT_Q_IN_Q_UNTAGGED_VAL = (short) 0xffff;
+
+ public static OFBsnVportQInQUntagged readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFBsnVportQInQUntagged e) {
+ bb.writeShort(toWireValue(e));
+ }
+
+ public static void putTo(OFBsnVportQInQUntagged e, PrimitiveSink sink) {
+ sink.putShort(toWireValue(e));
+ }
+
+ public static OFBsnVportQInQUntagged ofWireValue(short val) {
+ switch(val) {
+ case BSN_VPORT_Q_IN_Q_UNTAGGED_VAL:
+ return OFBsnVportQInQUntagged.BSN_VPORT_Q_IN_Q_UNTAGGED;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFBsnVportQInQUntagged in version 1.0: " + val);
+ }
+ }
+
+
+ public static short toWireValue(OFBsnVportQInQUntagged e) {
+ switch(e) {
+ case BSN_VPORT_Q_IN_Q_UNTAGGED:
+ return BSN_VPORT_Q_IN_Q_UNTAGGED_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFBsnVportQInQUntagged in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQVer10.java
new file mode 100644
index 0000000..7f5b0a3
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportQInQVer10.java
@@ -0,0 +1,502 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFBsnVportQInQVer10 implements OFBsnVportQInQ {
+ private static final Logger logger = LoggerFactory.getLogger(OFBsnVportQInQVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 32;
+
+ private final static long DEFAULT_PORT_NO = 0x0L;
+ private final static int DEFAULT_INGRESS_TPID = 0x0;
+ private final static int DEFAULT_INGRESS_VLAN_ID = 0x0;
+ private final static int DEFAULT_EGRESS_TPID = 0x0;
+ private final static int DEFAULT_EGRESS_VLAN_ID = 0x0;
+ private final static String DEFAULT_IF_NAME = "";
+
+ // OF message fields
+ private final long portNo;
+ private final int ingressTpid;
+ private final int ingressVlanId;
+ private final int egressTpid;
+ private final int egressVlanId;
+ private final String ifName;
+//
+ // Immutable default instance
+ final static OFBsnVportQInQVer10 DEFAULT = new OFBsnVportQInQVer10(
+ DEFAULT_PORT_NO, DEFAULT_INGRESS_TPID, DEFAULT_INGRESS_VLAN_ID, DEFAULT_EGRESS_TPID, DEFAULT_EGRESS_VLAN_ID, DEFAULT_IF_NAME
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFBsnVportQInQVer10(long portNo, int ingressTpid, int ingressVlanId, int egressTpid, int egressVlanId, String ifName) {
+ this.portNo = portNo;
+ this.ingressTpid = ingressTpid;
+ this.ingressVlanId = ingressVlanId;
+ this.egressTpid = egressTpid;
+ this.egressVlanId = egressVlanId;
+ this.ifName = ifName;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public int getType() {
+ return 0x0;
+ }
+
+ @Override
+ public long getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public int getIngressTpid() {
+ return ingressTpid;
+ }
+
+ @Override
+ public int getIngressVlanId() {
+ return ingressVlanId;
+ }
+
+ @Override
+ public int getEgressTpid() {
+ return egressTpid;
+ }
+
+ @Override
+ public int getEgressVlanId() {
+ return egressVlanId;
+ }
+
+ @Override
+ public String getIfName() {
+ return ifName;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ public OFBsnVportQInQ.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFBsnVportQInQ.Builder {
+ final OFBsnVportQInQVer10 parentMessage;
+
+ // OF message fields
+ private boolean portNoSet;
+ private long portNo;
+ private boolean ingressTpidSet;
+ private int ingressTpid;
+ private boolean ingressVlanIdSet;
+ private int ingressVlanId;
+ private boolean egressTpidSet;
+ private int egressTpid;
+ private boolean egressVlanIdSet;
+ private int egressVlanId;
+ private boolean ifNameSet;
+ private String ifName;
+
+ BuilderWithParent(OFBsnVportQInQVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public int getType() {
+ return 0x0;
+ }
+
+ @Override
+ public long getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setPortNo(long portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public int getIngressTpid() {
+ return ingressTpid;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setIngressTpid(int ingressTpid) {
+ this.ingressTpid = ingressTpid;
+ this.ingressTpidSet = true;
+ return this;
+ }
+ @Override
+ public int getIngressVlanId() {
+ return ingressVlanId;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setIngressVlanId(int ingressVlanId) {
+ this.ingressVlanId = ingressVlanId;
+ this.ingressVlanIdSet = true;
+ return this;
+ }
+ @Override
+ public int getEgressTpid() {
+ return egressTpid;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setEgressTpid(int egressTpid) {
+ this.egressTpid = egressTpid;
+ this.egressTpidSet = true;
+ return this;
+ }
+ @Override
+ public int getEgressVlanId() {
+ return egressVlanId;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setEgressVlanId(int egressVlanId) {
+ this.egressVlanId = egressVlanId;
+ this.egressVlanIdSet = true;
+ return this;
+ }
+ @Override
+ public String getIfName() {
+ return ifName;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setIfName(String ifName) {
+ this.ifName = ifName;
+ this.ifNameSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+
+
+ @Override
+ public OFBsnVportQInQ build() {
+ long portNo = this.portNoSet ? this.portNo : parentMessage.portNo;
+ int ingressTpid = this.ingressTpidSet ? this.ingressTpid : parentMessage.ingressTpid;
+ int ingressVlanId = this.ingressVlanIdSet ? this.ingressVlanId : parentMessage.ingressVlanId;
+ int egressTpid = this.egressTpidSet ? this.egressTpid : parentMessage.egressTpid;
+ int egressVlanId = this.egressVlanIdSet ? this.egressVlanId : parentMessage.egressVlanId;
+ String ifName = this.ifNameSet ? this.ifName : parentMessage.ifName;
+ if(ifName == null)
+ throw new NullPointerException("Property ifName must not be null");
+
+ //
+ return new OFBsnVportQInQVer10(
+ portNo,
+ ingressTpid,
+ ingressVlanId,
+ egressTpid,
+ egressVlanId,
+ ifName
+ );
+ }
+
+ }
+
+ static class Builder implements OFBsnVportQInQ.Builder {
+ // OF message fields
+ private boolean portNoSet;
+ private long portNo;
+ private boolean ingressTpidSet;
+ private int ingressTpid;
+ private boolean ingressVlanIdSet;
+ private int ingressVlanId;
+ private boolean egressTpidSet;
+ private int egressTpid;
+ private boolean egressVlanIdSet;
+ private int egressVlanId;
+ private boolean ifNameSet;
+ private String ifName;
+
+ @Override
+ public int getType() {
+ return 0x0;
+ }
+
+ @Override
+ public long getPortNo() {
+ return portNo;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setPortNo(long portNo) {
+ this.portNo = portNo;
+ this.portNoSet = true;
+ return this;
+ }
+ @Override
+ public int getIngressTpid() {
+ return ingressTpid;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setIngressTpid(int ingressTpid) {
+ this.ingressTpid = ingressTpid;
+ this.ingressTpidSet = true;
+ return this;
+ }
+ @Override
+ public int getIngressVlanId() {
+ return ingressVlanId;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setIngressVlanId(int ingressVlanId) {
+ this.ingressVlanId = ingressVlanId;
+ this.ingressVlanIdSet = true;
+ return this;
+ }
+ @Override
+ public int getEgressTpid() {
+ return egressTpid;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setEgressTpid(int egressTpid) {
+ this.egressTpid = egressTpid;
+ this.egressTpidSet = true;
+ return this;
+ }
+ @Override
+ public int getEgressVlanId() {
+ return egressVlanId;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setEgressVlanId(int egressVlanId) {
+ this.egressVlanId = egressVlanId;
+ this.egressVlanIdSet = true;
+ return this;
+ }
+ @Override
+ public String getIfName() {
+ return ifName;
+ }
+
+ @Override
+ public OFBsnVportQInQ.Builder setIfName(String ifName) {
+ this.ifName = ifName;
+ this.ifNameSet = true;
+ return this;
+ }
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+//
+ @Override
+ public OFBsnVportQInQ build() {
+ long portNo = this.portNoSet ? this.portNo : DEFAULT_PORT_NO;
+ int ingressTpid = this.ingressTpidSet ? this.ingressTpid : DEFAULT_INGRESS_TPID;
+ int ingressVlanId = this.ingressVlanIdSet ? this.ingressVlanId : DEFAULT_INGRESS_VLAN_ID;
+ int egressTpid = this.egressTpidSet ? this.egressTpid : DEFAULT_EGRESS_TPID;
+ int egressVlanId = this.egressVlanIdSet ? this.egressVlanId : DEFAULT_EGRESS_VLAN_ID;
+ String ifName = this.ifNameSet ? this.ifName : DEFAULT_IF_NAME;
+ if(ifName == null)
+ throw new NullPointerException("Property ifName must not be null");
+
+
+ return new OFBsnVportQInQVer10(
+ portNo,
+ ingressTpid,
+ ingressVlanId,
+ egressTpid,
+ egressVlanId,
+ ifName
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFBsnVportQInQ> {
+ @Override
+ public OFBsnVportQInQ readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property type == 0x0
+ short type = bb.readShort();
+ if(type != (short) 0x0)
+ throw new OFParseError("Wrong type: Expected=0x0(0x0), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 32)
+ throw new OFParseError("Wrong length: Expected=32(32), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long portNo = U32.f(bb.readInt());
+ int ingressTpid = U16.f(bb.readShort());
+ int ingressVlanId = U16.f(bb.readShort());
+ int egressTpid = U16.f(bb.readShort());
+ int egressVlanId = U16.f(bb.readShort());
+ String ifName = ChannelUtils.readFixedLengthString(bb, 16);
+
+ OFBsnVportQInQVer10 bsnVportQInQVer10 = new OFBsnVportQInQVer10(
+ portNo,
+ ingressTpid,
+ ingressVlanId,
+ egressTpid,
+ egressVlanId,
+ ifName
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", bsnVportQInQVer10);
+ return bsnVportQInQVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFBsnVportQInQVer10Funnel FUNNEL = new OFBsnVportQInQVer10Funnel();
+ static class OFBsnVportQInQVer10Funnel implements Funnel<OFBsnVportQInQVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFBsnVportQInQVer10 message, PrimitiveSink sink) {
+ // fixed value property type = 0x0
+ sink.putShort((short) 0x0);
+ // fixed value property length = 32
+ sink.putShort((short) 0x20);
+ sink.putLong(message.portNo);
+ sink.putInt(message.ingressTpid);
+ sink.putInt(message.ingressVlanId);
+ sink.putInt(message.egressTpid);
+ sink.putInt(message.egressVlanId);
+ sink.putUnencodedChars(message.ifName);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFBsnVportQInQVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFBsnVportQInQVer10 message) {
+ // fixed value property type = 0x0
+ bb.writeShort((short) 0x0);
+ // fixed value property length = 32
+ bb.writeShort((short) 0x20);
+ bb.writeInt(U32.t(message.portNo));
+ bb.writeShort(U16.t(message.ingressTpid));
+ bb.writeShort(U16.t(message.ingressVlanId));
+ bb.writeShort(U16.t(message.egressTpid));
+ bb.writeShort(U16.t(message.egressVlanId));
+ ChannelUtils.writeFixedLengthString(bb, message.ifName, 16);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFBsnVportQInQVer10(");
+ b.append("portNo=").append(portNo);
+ b.append(", ");
+ b.append("ingressTpid=").append(ingressTpid);
+ b.append(", ");
+ b.append("ingressVlanId=").append(ingressVlanId);
+ b.append(", ");
+ b.append("egressTpid=").append(egressTpid);
+ b.append(", ");
+ b.append("egressVlanId=").append(egressVlanId);
+ b.append(", ");
+ b.append("ifName=").append(ifName);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFBsnVportQInQVer10 other = (OFBsnVportQInQVer10) obj;
+
+ if( portNo != other.portNo)
+ return false;
+ if( ingressTpid != other.ingressTpid)
+ return false;
+ if( ingressVlanId != other.ingressVlanId)
+ return false;
+ if( egressTpid != other.egressTpid)
+ return false;
+ if( egressVlanId != other.egressVlanId)
+ return false;
+ if (ifName == null) {
+ if (other.ifName != null)
+ return false;
+ } else if (!ifName.equals(other.ifName))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (portNo ^ (portNo >>> 32));
+ result = prime * result + ingressTpid;
+ result = prime * result + ingressVlanId;
+ result = prime * result + egressTpid;
+ result = prime * result + egressVlanId;
+ result = prime * result + ((ifName == null) ? 0 : ifName.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportStatusSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportStatusSerializerVer10.java
new file mode 100644
index 0000000..c4aa654
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportStatusSerializerVer10.java
@@ -0,0 +1,74 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFBsnVportStatus;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFBsnVportStatusSerializerVer10 {
+
+ public final static short BSN_VPORT_STATUS_OK_VAL = (short) 0x0;
+ public final static short BSN_VPORT_STATUS_FAILED_VAL = (short) 0x1;
+
+ public static OFBsnVportStatus readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(U8.f(bb.readByte()));
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFBsnVportStatus e) {
+ bb.writeByte(U8.t(toWireValue(e)));
+ }
+
+ public static void putTo(OFBsnVportStatus e, PrimitiveSink sink) {
+ sink.putShort(toWireValue(e));
+ }
+
+ public static OFBsnVportStatus ofWireValue(short val) {
+ switch(val) {
+ case BSN_VPORT_STATUS_OK_VAL:
+ return OFBsnVportStatus.BSN_VPORT_STATUS_OK;
+ case BSN_VPORT_STATUS_FAILED_VAL:
+ return OFBsnVportStatus.BSN_VPORT_STATUS_FAILED;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFBsnVportStatus in version 1.0: " + val);
+ }
+ }
+
+
+ public static short toWireValue(OFBsnVportStatus e) {
+ switch(e) {
+ case BSN_VPORT_STATUS_OK:
+ return BSN_VPORT_STATUS_OK_VAL;
+ case BSN_VPORT_STATUS_FAILED:
+ return BSN_VPORT_STATUS_FAILED_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFBsnVportStatus in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportVer10.java
new file mode 100644
index 0000000..95e9682
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFBsnVportVer10.java
@@ -0,0 +1,56 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFBsnVportVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 4;
+
+
+ public final static OFBsnVportVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFBsnVport> {
+ @Override
+ public OFBsnVport readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ short type = bb.readShort();
+ bb.readerIndex(start);
+ switch(type) {
+ case (short) 0x1:
+ // discriminator value 0x1=0x1 for class OFBsnVportL2GreVer10
+ return OFBsnVportL2GreVer10.READER.readFrom(bb);
+ case (short) 0x0:
+ // discriminator value 0x0=0x0 for class OFBsnVportQInQVer10
+ return OFBsnVportQInQVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator type of class OFBsnVportVer10: " + type);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFCapabilitiesSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFCapabilitiesSerializerVer10.java
new file mode 100644
index 0000000..6bac973
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFCapabilitiesSerializerVer10.java
@@ -0,0 +1,120 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFCapabilities;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFCapabilitiesSerializerVer10 {
+
+ public final static int FLOW_STATS_VAL = 0x1;
+ public final static int TABLE_STATS_VAL = 0x2;
+ public final static int PORT_STATS_VAL = 0x4;
+ public final static int STP_VAL = 0x8;
+ public final static int RESERVED_VAL = 0x10;
+ public final static int IP_REASM_VAL = 0x20;
+ public final static int QUEUE_STATS_VAL = 0x40;
+ public final static int ARP_MATCH_IP_VAL = 0x80;
+
+ public static Set<OFCapabilities> readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readInt());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, Set<OFCapabilities> set) {
+ bb.writeInt(toWireValue(set));
+ }
+
+ public static void putTo(Set<OFCapabilities> set, PrimitiveSink sink) {
+ sink.putInt(toWireValue(set));
+ }
+
+
+ public static Set<OFCapabilities> ofWireValue(int val) {
+ EnumSet<OFCapabilities> set = EnumSet.noneOf(OFCapabilities.class);
+
+ if((val & FLOW_STATS_VAL) != 0)
+ set.add(OFCapabilities.FLOW_STATS);
+ if((val & TABLE_STATS_VAL) != 0)
+ set.add(OFCapabilities.TABLE_STATS);
+ if((val & PORT_STATS_VAL) != 0)
+ set.add(OFCapabilities.PORT_STATS);
+ if((val & STP_VAL) != 0)
+ set.add(OFCapabilities.STP);
+ if((val & RESERVED_VAL) != 0)
+ set.add(OFCapabilities.RESERVED);
+ if((val & IP_REASM_VAL) != 0)
+ set.add(OFCapabilities.IP_REASM);
+ if((val & QUEUE_STATS_VAL) != 0)
+ set.add(OFCapabilities.QUEUE_STATS);
+ if((val & ARP_MATCH_IP_VAL) != 0)
+ set.add(OFCapabilities.ARP_MATCH_IP);
+ return Collections.unmodifiableSet(set);
+ }
+
+ public static int toWireValue(Set<OFCapabilities> set) {
+ int wireValue = 0;
+
+ for(OFCapabilities e: set) {
+ switch(e) {
+ case FLOW_STATS:
+ wireValue |= FLOW_STATS_VAL;
+ break;
+ case TABLE_STATS:
+ wireValue |= TABLE_STATS_VAL;
+ break;
+ case PORT_STATS:
+ wireValue |= PORT_STATS_VAL;
+ break;
+ case STP:
+ wireValue |= STP_VAL;
+ break;
+ case RESERVED:
+ wireValue |= RESERVED_VAL;
+ break;
+ case IP_REASM:
+ wireValue |= IP_REASM_VAL;
+ break;
+ case QUEUE_STATS:
+ wireValue |= QUEUE_STATS_VAL;
+ break;
+ case ARP_MATCH_IP:
+ wireValue |= ARP_MATCH_IP_VAL;
+ break;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFCapabilities in version 1.0: " + e);
+ }
+ }
+ return wireValue;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFConfigFlagsSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFConfigFlagsSerializerVer10.java
new file mode 100644
index 0000000..bd45beb
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFConfigFlagsSerializerVer10.java
@@ -0,0 +1,91 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFConfigFlags;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFConfigFlagsSerializerVer10 {
+
+ public final static short FRAG_NORMAL_VAL = (short) 0x0;
+ public final static short FRAG_DROP_VAL = (short) 0x1;
+ public final static short FRAG_REASM_VAL = (short) 0x2;
+ public final static short FRAG_MASK_VAL = (short) 0x3;
+
+ public static Set<OFConfigFlags> readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, Set<OFConfigFlags> set) {
+ bb.writeShort(toWireValue(set));
+ }
+
+ public static void putTo(Set<OFConfigFlags> set, PrimitiveSink sink) {
+ sink.putShort(toWireValue(set));
+ }
+
+
+ public static Set<OFConfigFlags> ofWireValue(short val) {
+ EnumSet<OFConfigFlags> set = EnumSet.noneOf(OFConfigFlags.class);
+
+ if((val & FRAG_MASK_VAL) == FRAG_NORMAL_VAL)
+ set.add(OFConfigFlags.FRAG_NORMAL);
+ else if((val & FRAG_MASK_VAL) == FRAG_DROP_VAL)
+ set.add(OFConfigFlags.FRAG_DROP);
+ else if((val & FRAG_MASK_VAL) == FRAG_REASM_VAL)
+ set.add(OFConfigFlags.FRAG_REASM);
+ return Collections.unmodifiableSet(set);
+ }
+
+ public static short toWireValue(Set<OFConfigFlags> set) {
+ short wireValue = 0;
+
+ for(OFConfigFlags e: set) {
+ switch(e) {
+ case FRAG_NORMAL:
+ wireValue |= FRAG_NORMAL_VAL;
+ break;
+ case FRAG_DROP:
+ wireValue |= FRAG_DROP_VAL;
+ break;
+ case FRAG_REASM:
+ wireValue |= FRAG_REASM_VAL;
+ break;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFConfigFlags in version 1.0: " + e);
+ }
+ }
+ return wireValue;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsReplyVer10.java
new file mode 100644
index 0000000..ed1bf76
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsReplyVer10.java
@@ -0,0 +1,616 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFDescStatsReplyVer10 implements OFDescStatsReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFDescStatsReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 1068;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static Set<OFStatsReplyFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsReplyFlags>of();
+ private final static String DEFAULT_MFR_DESC = "";
+ private final static String DEFAULT_HW_DESC = "";
+ private final static String DEFAULT_SW_DESC = "";
+ private final static String DEFAULT_SERIAL_NUM = "";
+ private final static String DEFAULT_DP_DESC = "";
+
+ // OF message fields
+ private final long xid;
+ private final Set<OFStatsReplyFlags> flags;
+ private final String mfrDesc;
+ private final String hwDesc;
+ private final String swDesc;
+ private final String serialNum;
+ private final String dpDesc;
+//
+ // Immutable default instance
+ final static OFDescStatsReplyVer10 DEFAULT = new OFDescStatsReplyVer10(
+ DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_MFR_DESC, DEFAULT_HW_DESC, DEFAULT_SW_DESC, DEFAULT_SERIAL_NUM, DEFAULT_DP_DESC
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFDescStatsReplyVer10(long xid, Set<OFStatsReplyFlags> flags, String mfrDesc, String hwDesc, String swDesc, String serialNum, String dpDesc) {
+ this.xid = xid;
+ this.flags = flags;
+ this.mfrDesc = mfrDesc;
+ this.hwDesc = hwDesc;
+ this.swDesc = swDesc;
+ this.serialNum = serialNum;
+ this.dpDesc = dpDesc;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.DESC;
+ }
+
+ @Override
+ public Set<OFStatsReplyFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public String getMfrDesc() {
+ return mfrDesc;
+ }
+
+ @Override
+ public String getHwDesc() {
+ return hwDesc;
+ }
+
+ @Override
+ public String getSwDesc() {
+ return swDesc;
+ }
+
+ @Override
+ public String getSerialNum() {
+ return serialNum;
+ }
+
+ @Override
+ public String getDpDesc() {
+ return dpDesc;
+ }
+
+
+
+ public OFDescStatsReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFDescStatsReply.Builder {
+ final OFDescStatsReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean flagsSet;
+ private Set<OFStatsReplyFlags> flags;
+ private boolean mfrDescSet;
+ private String mfrDesc;
+ private boolean hwDescSet;
+ private String hwDesc;
+ private boolean swDescSet;
+ private String swDesc;
+ private boolean serialNumSet;
+ private String serialNum;
+ private boolean dpDescSet;
+ private String dpDesc;
+
+ BuilderWithParent(OFDescStatsReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.DESC;
+ }
+
+ @Override
+ public Set<OFStatsReplyFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public String getMfrDesc() {
+ return mfrDesc;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setMfrDesc(String mfrDesc) {
+ this.mfrDesc = mfrDesc;
+ this.mfrDescSet = true;
+ return this;
+ }
+ @Override
+ public String getHwDesc() {
+ return hwDesc;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setHwDesc(String hwDesc) {
+ this.hwDesc = hwDesc;
+ this.hwDescSet = true;
+ return this;
+ }
+ @Override
+ public String getSwDesc() {
+ return swDesc;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setSwDesc(String swDesc) {
+ this.swDesc = swDesc;
+ this.swDescSet = true;
+ return this;
+ }
+ @Override
+ public String getSerialNum() {
+ return serialNum;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setSerialNum(String serialNum) {
+ this.serialNum = serialNum;
+ this.serialNumSet = true;
+ return this;
+ }
+ @Override
+ public String getDpDesc() {
+ return dpDesc;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setDpDesc(String dpDesc) {
+ this.dpDesc = dpDesc;
+ this.dpDescSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFDescStatsReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ String mfrDesc = this.mfrDescSet ? this.mfrDesc : parentMessage.mfrDesc;
+ if(mfrDesc == null)
+ throw new NullPointerException("Property mfrDesc must not be null");
+ String hwDesc = this.hwDescSet ? this.hwDesc : parentMessage.hwDesc;
+ if(hwDesc == null)
+ throw new NullPointerException("Property hwDesc must not be null");
+ String swDesc = this.swDescSet ? this.swDesc : parentMessage.swDesc;
+ if(swDesc == null)
+ throw new NullPointerException("Property swDesc must not be null");
+ String serialNum = this.serialNumSet ? this.serialNum : parentMessage.serialNum;
+ if(serialNum == null)
+ throw new NullPointerException("Property serialNum must not be null");
+ String dpDesc = this.dpDescSet ? this.dpDesc : parentMessage.dpDesc;
+ if(dpDesc == null)
+ throw new NullPointerException("Property dpDesc must not be null");
+
+ //
+ return new OFDescStatsReplyVer10(
+ xid,
+ flags,
+ mfrDesc,
+ hwDesc,
+ swDesc,
+ serialNum,
+ dpDesc
+ );
+ }
+
+ }
+
+ static class Builder implements OFDescStatsReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean flagsSet;
+ private Set<OFStatsReplyFlags> flags;
+ private boolean mfrDescSet;
+ private String mfrDesc;
+ private boolean hwDescSet;
+ private String hwDesc;
+ private boolean swDescSet;
+ private String swDesc;
+ private boolean serialNumSet;
+ private String serialNum;
+ private boolean dpDescSet;
+ private String dpDesc;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.DESC;
+ }
+
+ @Override
+ public Set<OFStatsReplyFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public String getMfrDesc() {
+ return mfrDesc;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setMfrDesc(String mfrDesc) {
+ this.mfrDesc = mfrDesc;
+ this.mfrDescSet = true;
+ return this;
+ }
+ @Override
+ public String getHwDesc() {
+ return hwDesc;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setHwDesc(String hwDesc) {
+ this.hwDesc = hwDesc;
+ this.hwDescSet = true;
+ return this;
+ }
+ @Override
+ public String getSwDesc() {
+ return swDesc;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setSwDesc(String swDesc) {
+ this.swDesc = swDesc;
+ this.swDescSet = true;
+ return this;
+ }
+ @Override
+ public String getSerialNum() {
+ return serialNum;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setSerialNum(String serialNum) {
+ this.serialNum = serialNum;
+ this.serialNumSet = true;
+ return this;
+ }
+ @Override
+ public String getDpDesc() {
+ return dpDesc;
+ }
+
+ @Override
+ public OFDescStatsReply.Builder setDpDesc(String dpDesc) {
+ this.dpDesc = dpDesc;
+ this.dpDescSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFDescStatsReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ String mfrDesc = this.mfrDescSet ? this.mfrDesc : DEFAULT_MFR_DESC;
+ if(mfrDesc == null)
+ throw new NullPointerException("Property mfrDesc must not be null");
+ String hwDesc = this.hwDescSet ? this.hwDesc : DEFAULT_HW_DESC;
+ if(hwDesc == null)
+ throw new NullPointerException("Property hwDesc must not be null");
+ String swDesc = this.swDescSet ? this.swDesc : DEFAULT_SW_DESC;
+ if(swDesc == null)
+ throw new NullPointerException("Property swDesc must not be null");
+ String serialNum = this.serialNumSet ? this.serialNum : DEFAULT_SERIAL_NUM;
+ if(serialNum == null)
+ throw new NullPointerException("Property serialNum must not be null");
+ String dpDesc = this.dpDescSet ? this.dpDesc : DEFAULT_DP_DESC;
+ if(dpDesc == null)
+ throw new NullPointerException("Property dpDesc must not be null");
+
+
+ return new OFDescStatsReplyVer10(
+ xid,
+ flags,
+ mfrDesc,
+ hwDesc,
+ swDesc,
+ serialNum,
+ dpDesc
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFDescStatsReply> {
+ @Override
+ public OFDescStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 17
+ byte type = bb.readByte();
+ if(type != (byte) 0x11)
+ throw new OFParseError("Wrong type: Expected=OFType.STATS_REPLY(17), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 1068)
+ throw new OFParseError("Wrong length: Expected=1068(1068), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property statsType == 0
+ short statsType = bb.readShort();
+ if(statsType != (short) 0x0)
+ throw new OFParseError("Wrong statsType: Expected=OFStatsType.DESC(0), got="+statsType);
+ Set<OFStatsReplyFlags> flags = OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+ String mfrDesc = ChannelUtils.readFixedLengthString(bb, 256);
+ String hwDesc = ChannelUtils.readFixedLengthString(bb, 256);
+ String swDesc = ChannelUtils.readFixedLengthString(bb, 256);
+ String serialNum = ChannelUtils.readFixedLengthString(bb, 32);
+ String dpDesc = ChannelUtils.readFixedLengthString(bb, 256);
+
+ OFDescStatsReplyVer10 descStatsReplyVer10 = new OFDescStatsReplyVer10(
+ xid,
+ flags,
+ mfrDesc,
+ hwDesc,
+ swDesc,
+ serialNum,
+ dpDesc
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", descStatsReplyVer10);
+ return descStatsReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFDescStatsReplyVer10Funnel FUNNEL = new OFDescStatsReplyVer10Funnel();
+ static class OFDescStatsReplyVer10Funnel implements Funnel<OFDescStatsReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFDescStatsReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 17
+ sink.putByte((byte) 0x11);
+ // fixed value property length = 1068
+ sink.putShort((short) 0x42c);
+ sink.putLong(message.xid);
+ // fixed value property statsType = 0
+ sink.putShort((short) 0x0);
+ OFStatsReplyFlagsSerializerVer10.putTo(message.flags, sink);
+ sink.putUnencodedChars(message.mfrDesc);
+ sink.putUnencodedChars(message.hwDesc);
+ sink.putUnencodedChars(message.swDesc);
+ sink.putUnencodedChars(message.serialNum);
+ sink.putUnencodedChars(message.dpDesc);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFDescStatsReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFDescStatsReplyVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 17
+ bb.writeByte((byte) 0x11);
+ // fixed value property length = 1068
+ bb.writeShort((short) 0x42c);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property statsType = 0
+ bb.writeShort((short) 0x0);
+ OFStatsReplyFlagsSerializerVer10.writeTo(bb, message.flags);
+ ChannelUtils.writeFixedLengthString(bb, message.mfrDesc, 256);
+ ChannelUtils.writeFixedLengthString(bb, message.hwDesc, 256);
+ ChannelUtils.writeFixedLengthString(bb, message.swDesc, 256);
+ ChannelUtils.writeFixedLengthString(bb, message.serialNum, 32);
+ ChannelUtils.writeFixedLengthString(bb, message.dpDesc, 256);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFDescStatsReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("flags=").append(flags);
+ b.append(", ");
+ b.append("mfrDesc=").append(mfrDesc);
+ b.append(", ");
+ b.append("hwDesc=").append(hwDesc);
+ b.append(", ");
+ b.append("swDesc=").append(swDesc);
+ b.append(", ");
+ b.append("serialNum=").append(serialNum);
+ b.append(", ");
+ b.append("dpDesc=").append(dpDesc);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFDescStatsReplyVer10 other = (OFDescStatsReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (flags == null) {
+ if (other.flags != null)
+ return false;
+ } else if (!flags.equals(other.flags))
+ return false;
+ if (mfrDesc == null) {
+ if (other.mfrDesc != null)
+ return false;
+ } else if (!mfrDesc.equals(other.mfrDesc))
+ return false;
+ if (hwDesc == null) {
+ if (other.hwDesc != null)
+ return false;
+ } else if (!hwDesc.equals(other.hwDesc))
+ return false;
+ if (swDesc == null) {
+ if (other.swDesc != null)
+ return false;
+ } else if (!swDesc.equals(other.swDesc))
+ return false;
+ if (serialNum == null) {
+ if (other.serialNum != null)
+ return false;
+ } else if (!serialNum.equals(other.serialNum))
+ return false;
+ if (dpDesc == null) {
+ if (other.dpDesc != null)
+ return false;
+ } else if (!dpDesc.equals(other.dpDesc))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+ result = prime * result + ((mfrDesc == null) ? 0 : mfrDesc.hashCode());
+ result = prime * result + ((hwDesc == null) ? 0 : hwDesc.hashCode());
+ result = prime * result + ((swDesc == null) ? 0 : swDesc.hashCode());
+ result = prime * result + ((serialNum == null) ? 0 : serialNum.hashCode());
+ result = prime * result + ((dpDesc == null) ? 0 : dpDesc.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsRequestVer10.java
new file mode 100644
index 0000000..71ac331
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFDescStatsRequestVer10.java
@@ -0,0 +1,346 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFDescStatsRequestVer10 implements OFDescStatsRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFDescStatsRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 12;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static Set<OFStatsRequestFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsRequestFlags>of();
+
+ // OF message fields
+ private final long xid;
+ private final Set<OFStatsRequestFlags> flags;
+//
+ // Immutable default instance
+ final static OFDescStatsRequestVer10 DEFAULT = new OFDescStatsRequestVer10(
+ DEFAULT_XID, DEFAULT_FLAGS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFDescStatsRequestVer10(long xid, Set<OFStatsRequestFlags> flags) {
+ this.xid = xid;
+ this.flags = flags;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.DESC;
+ }
+
+ @Override
+ public Set<OFStatsRequestFlags> getFlags() {
+ return flags;
+ }
+
+
+
+ public OFDescStatsRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFDescStatsRequest.Builder {
+ final OFDescStatsRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean flagsSet;
+ private Set<OFStatsRequestFlags> flags;
+
+ BuilderWithParent(OFDescStatsRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFDescStatsRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.DESC;
+ }
+
+ @Override
+ public Set<OFStatsRequestFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFDescStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFDescStatsRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+
+ //
+ return new OFDescStatsRequestVer10(
+ xid,
+ flags
+ );
+ }
+
+ }
+
+ static class Builder implements OFDescStatsRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean flagsSet;
+ private Set<OFStatsRequestFlags> flags;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.STATS_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFDescStatsRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFStatsType getStatsType() {
+ return OFStatsType.DESC;
+ }
+
+ @Override
+ public Set<OFStatsRequestFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFDescStatsRequest.Builder setFlags(Set<OFStatsRequestFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFDescStatsRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ Set<OFStatsRequestFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+
+
+ return new OFDescStatsRequestVer10(
+ xid,
+ flags
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFDescStatsRequest> {
+ @Override
+ public OFDescStatsRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 16
+ byte type = bb.readByte();
+ if(type != (byte) 0x10)
+ throw new OFParseError("Wrong type: Expected=OFType.STATS_REQUEST(16), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 12)
+ throw new OFParseError("Wrong length: Expected=12(12), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property statsType == 0
+ short statsType = bb.readShort();
+ if(statsType != (short) 0x0)
+ throw new OFParseError("Wrong statsType: Expected=OFStatsType.DESC(0), got="+statsType);
+ Set<OFStatsRequestFlags> flags = OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+
+ OFDescStatsRequestVer10 descStatsRequestVer10 = new OFDescStatsRequestVer10(
+ xid,
+ flags
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", descStatsRequestVer10);
+ return descStatsRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFDescStatsRequestVer10Funnel FUNNEL = new OFDescStatsRequestVer10Funnel();
+ static class OFDescStatsRequestVer10Funnel implements Funnel<OFDescStatsRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFDescStatsRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 16
+ sink.putByte((byte) 0x10);
+ // fixed value property length = 12
+ sink.putShort((short) 0xc);
+ sink.putLong(message.xid);
+ // fixed value property statsType = 0
+ sink.putShort((short) 0x0);
+ OFStatsRequestFlagsSerializerVer10.putTo(message.flags, sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFDescStatsRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFDescStatsRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 16
+ bb.writeByte((byte) 0x10);
+ // fixed value property length = 12
+ bb.writeShort((short) 0xc);
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property statsType = 0
+ bb.writeShort((short) 0x0);
+ OFStatsRequestFlagsSerializerVer10.writeTo(bb, message.flags);
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFDescStatsRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("flags=").append(flags);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFDescStatsRequestVer10 other = (OFDescStatsRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (flags == null) {
+ if (other.flags != null)
+ return false;
+ } else if (!flags.equals(other.flags))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoReplyVer10.java
new file mode 100644
index 0000000..260030c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoReplyVer10.java
@@ -0,0 +1,325 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFEchoReplyVer10 implements OFEchoReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFEchoReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 8;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static byte[] DEFAULT_DATA = new byte[0];
+
+ // OF message fields
+ private final long xid;
+ private final byte[] data;
+//
+ // Immutable default instance
+ final static OFEchoReplyVer10 DEFAULT = new OFEchoReplyVer10(
+ DEFAULT_XID, DEFAULT_DATA
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFEchoReplyVer10(long xid, byte[] data) {
+ this.xid = xid;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ECHO_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+
+
+ public OFEchoReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFEchoReply.Builder {
+ final OFEchoReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean dataSet;
+ private byte[] data;
+
+ BuilderWithParent(OFEchoReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ECHO_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFEchoReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFEchoReply.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFEchoReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ byte[] data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFEchoReplyVer10(
+ xid,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFEchoReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean dataSet;
+ private byte[] data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ECHO_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFEchoReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFEchoReply.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFEchoReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFEchoReplyVer10(
+ xid,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFEchoReply> {
+ @Override
+ public OFEchoReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 3
+ byte type = bb.readByte();
+ if(type != (byte) 0x3)
+ throw new OFParseError("Wrong type: Expected=OFType.ECHO_REPLY(3), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+ OFEchoReplyVer10 echoReplyVer10 = new OFEchoReplyVer10(
+ xid,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", echoReplyVer10);
+ return echoReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFEchoReplyVer10Funnel FUNNEL = new OFEchoReplyVer10Funnel();
+ static class OFEchoReplyVer10Funnel implements Funnel<OFEchoReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFEchoReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 3
+ sink.putByte((byte) 0x3);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ sink.putBytes(message.data);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFEchoReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFEchoReplyVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 3
+ bb.writeByte((byte) 0x3);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ bb.writeBytes(message.data);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFEchoReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("data=").append(Arrays.toString(data));
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFEchoReplyVer10 other = (OFEchoReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (!Arrays.equals(data, other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + Arrays.hashCode(data);
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoRequestVer10.java
new file mode 100644
index 0000000..ee34d40
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFEchoRequestVer10.java
@@ -0,0 +1,325 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+import java.util.Arrays;
+
+class OFEchoRequestVer10 implements OFEchoRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFEchoRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 8;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static byte[] DEFAULT_DATA = new byte[0];
+
+ // OF message fields
+ private final long xid;
+ private final byte[] data;
+//
+ // Immutable default instance
+ final static OFEchoRequestVer10 DEFAULT = new OFEchoRequestVer10(
+ DEFAULT_XID, DEFAULT_DATA
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFEchoRequestVer10(long xid, byte[] data) {
+ this.xid = xid;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ECHO_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+
+
+ public OFEchoRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFEchoRequest.Builder {
+ final OFEchoRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean dataSet;
+ private byte[] data;
+
+ BuilderWithParent(OFEchoRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ECHO_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFEchoRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFEchoRequest.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFEchoRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ byte[] data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFEchoRequestVer10(
+ xid,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFEchoRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean dataSet;
+ private byte[] data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ECHO_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFEchoRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public byte[] getData() {
+ return data;
+ }
+
+ @Override
+ public OFEchoRequest.Builder setData(byte[] data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFEchoRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ byte[] data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFEchoRequestVer10(
+ xid,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFEchoRequest> {
+ @Override
+ public OFEchoRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 2
+ byte type = bb.readByte();
+ if(type != (byte) 0x2)
+ throw new OFParseError("Wrong type: Expected=OFType.ECHO_REQUEST(2), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ byte[] data = ChannelUtils.readBytes(bb, length - (bb.readerIndex() - start));
+
+ OFEchoRequestVer10 echoRequestVer10 = new OFEchoRequestVer10(
+ xid,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", echoRequestVer10);
+ return echoRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFEchoRequestVer10Funnel FUNNEL = new OFEchoRequestVer10Funnel();
+ static class OFEchoRequestVer10Funnel implements Funnel<OFEchoRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFEchoRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 2
+ sink.putByte((byte) 0x2);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ sink.putBytes(message.data);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFEchoRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFEchoRequestVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 2
+ bb.writeByte((byte) 0x2);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ bb.writeBytes(message.data);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFEchoRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("data=").append(Arrays.toString(data));
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFEchoRequestVer10 other = (OFEchoRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (!Arrays.equals(data, other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + Arrays.hashCode(data);
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgVer10.java
new file mode 100644
index 0000000..03ecc4b
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgVer10.java
@@ -0,0 +1,80 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFErrorMsgVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 10;
+
+
+ public final static OFErrorMsgVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFErrorMsg> {
+ @Override
+ public OFErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 1
+ byte type = bb.readByte();
+ if(type != (byte) 0x1)
+ throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ U32.f(bb.readInt());
+ short errType = bb.readShort();
+ bb.readerIndex(start);
+ switch(errType) {
+ case (short) 0x2:
+ // discriminator value OFErrorType.BAD_ACTION=2 for class OFBadActionErrorMsgVer10
+ return OFBadActionErrorMsgVer10.READER.readFrom(bb);
+ case (short) 0x1:
+ // discriminator value OFErrorType.BAD_REQUEST=1 for class OFBadRequestErrorMsgVer10
+ return OFBadRequestErrorMsgVer10.READER.readFrom(bb);
+ case (short) 0x3:
+ // discriminator value OFErrorType.FLOW_MOD_FAILED=3 for class OFFlowModFailedErrorMsgVer10
+ return OFFlowModFailedErrorMsgVer10.READER.readFrom(bb);
+ case (short) 0x0:
+ // discriminator value OFErrorType.HELLO_FAILED=0 for class OFHelloFailedErrorMsgVer10
+ return OFHelloFailedErrorMsgVer10.READER.readFrom(bb);
+ case (short) 0x4:
+ // discriminator value OFErrorType.PORT_MOD_FAILED=4 for class OFPortModFailedErrorMsgVer10
+ return OFPortModFailedErrorMsgVer10.READER.readFrom(bb);
+ case (short) 0x5:
+ // discriminator value OFErrorType.QUEUE_OP_FAILED=5 for class OFQueueOpFailedErrorMsgVer10
+ return OFQueueOpFailedErrorMsgVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator errType of class OFErrorMsgVer10: " + errType);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgsVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgsVer10.java
new file mode 100644
index 0000000..bd921e9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorMsgsVer10.java
@@ -0,0 +1,106 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+
+
+public class OFErrorMsgsVer10 implements OFErrorMsgs {
+ public final static OFErrorMsgsVer10 INSTANCE = new OFErrorMsgsVer10();
+
+ private final XidGenerator xidGenerator = XidGenerators.global();
+
+
+
+ public OFBadActionErrorMsg.Builder buildBadActionErrorMsg() {
+ return new OFBadActionErrorMsgVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBadRequestErrorMsg.Builder buildBadRequestErrorMsg() {
+ return new OFBadRequestErrorMsgVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFlowModFailedErrorMsg.Builder buildFlowModFailedErrorMsg() {
+ return new OFFlowModFailedErrorMsgVer10.Builder().setXid(nextXid());
+ }
+
+ public OFHelloFailedErrorMsg.Builder buildHelloFailedErrorMsg() {
+ return new OFHelloFailedErrorMsgVer10.Builder().setXid(nextXid());
+ }
+
+ public OFPortModFailedErrorMsg.Builder buildPortModFailedErrorMsg() {
+ return new OFPortModFailedErrorMsgVer10.Builder().setXid(nextXid());
+ }
+
+ public OFQueueOpFailedErrorMsg.Builder buildQueueOpFailedErrorMsg() {
+ return new OFQueueOpFailedErrorMsgVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBadInstructionErrorMsg.Builder buildBadInstructionErrorMsg() {
+ throw new UnsupportedOperationException("OFBadInstructionErrorMsg not supported in version 1.0");
+ }
+
+ public OFBadMatchErrorMsg.Builder buildBadMatchErrorMsg() {
+ throw new UnsupportedOperationException("OFBadMatchErrorMsg not supported in version 1.0");
+ }
+
+ public OFGroupModFailedErrorMsg.Builder buildGroupModFailedErrorMsg() {
+ throw new UnsupportedOperationException("OFGroupModFailedErrorMsg not supported in version 1.0");
+ }
+
+ public OFSwitchConfigFailedErrorMsg.Builder buildSwitchConfigFailedErrorMsg() {
+ throw new UnsupportedOperationException("OFSwitchConfigFailedErrorMsg not supported in version 1.0");
+ }
+
+ public OFTableModFailedErrorMsg.Builder buildTableModFailedErrorMsg() {
+ throw new UnsupportedOperationException("OFTableModFailedErrorMsg not supported in version 1.0");
+ }
+
+ public OFExperimenterErrorMsg.Builder buildExperimenterErrorMsg() {
+ throw new UnsupportedOperationException("OFExperimenterErrorMsg not supported in version 1.0");
+ }
+
+ public OFRoleRequestFailedErrorMsg.Builder buildRoleRequestFailedErrorMsg() {
+ throw new UnsupportedOperationException("OFRoleRequestFailedErrorMsg not supported in version 1.0");
+ }
+
+ public OFMeterModFailedErrorMsg.Builder buildMeterModFailedErrorMsg() {
+ throw new UnsupportedOperationException("OFMeterModFailedErrorMsg not supported in version 1.0");
+ }
+
+ public OFTableFeaturesFailedErrorMsg.Builder buildTableFeaturesFailedErrorMsg() {
+ throw new UnsupportedOperationException("OFTableFeaturesFailedErrorMsg not supported in version 1.0");
+ }
+
+ public OFMessageReader<OFErrorMsg> getReader() {
+ return OFErrorMsgVer10.READER;
+ }
+
+ public long nextXid() {
+ return xidGenerator.nextXid();
+ }
+
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorTypeSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorTypeSerializerVer10.java
new file mode 100644
index 0000000..14e4696
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFErrorTypeSerializerVer10.java
@@ -0,0 +1,94 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFErrorType;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFErrorTypeSerializerVer10 {
+
+ public final static short HELLO_FAILED_VAL = (short) 0x0;
+ public final static short BAD_REQUEST_VAL = (short) 0x1;
+ public final static short BAD_ACTION_VAL = (short) 0x2;
+ public final static short FLOW_MOD_FAILED_VAL = (short) 0x3;
+ public final static short PORT_MOD_FAILED_VAL = (short) 0x4;
+ public final static short QUEUE_OP_FAILED_VAL = (short) 0x5;
+
+ public static OFErrorType readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFErrorType e) {
+ bb.writeShort(toWireValue(e));
+ }
+
+ public static void putTo(OFErrorType e, PrimitiveSink sink) {
+ sink.putShort(toWireValue(e));
+ }
+
+ public static OFErrorType ofWireValue(short val) {
+ switch(val) {
+ case HELLO_FAILED_VAL:
+ return OFErrorType.HELLO_FAILED;
+ case BAD_REQUEST_VAL:
+ return OFErrorType.BAD_REQUEST;
+ case BAD_ACTION_VAL:
+ return OFErrorType.BAD_ACTION;
+ case FLOW_MOD_FAILED_VAL:
+ return OFErrorType.FLOW_MOD_FAILED;
+ case PORT_MOD_FAILED_VAL:
+ return OFErrorType.PORT_MOD_FAILED;
+ case QUEUE_OP_FAILED_VAL:
+ return OFErrorType.QUEUE_OP_FAILED;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFErrorType in version 1.0: " + val);
+ }
+ }
+
+
+ public static short toWireValue(OFErrorType e) {
+ switch(e) {
+ case HELLO_FAILED:
+ return HELLO_FAILED_VAL;
+ case BAD_REQUEST:
+ return BAD_REQUEST_VAL;
+ case BAD_ACTION:
+ return BAD_ACTION_VAL;
+ case FLOW_MOD_FAILED:
+ return FLOW_MOD_FAILED_VAL;
+ case PORT_MOD_FAILED:
+ return PORT_MOD_FAILED_VAL;
+ case QUEUE_OP_FAILED:
+ return QUEUE_OP_FAILED_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFErrorType in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsReplyVer10.java
new file mode 100644
index 0000000..f97c13c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsReplyVer10.java
@@ -0,0 +1,70 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFExperimenterStatsReplyVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 16;
+
+
+ public final static OFExperimenterStatsReplyVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFExperimenterStatsReply> {
+ @Override
+ public OFExperimenterStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 17
+ byte type = bb.readByte();
+ if(type != (byte) 0x11)
+ throw new OFParseError("Wrong type: Expected=OFType.STATS_REPLY(17), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ U32.f(bb.readInt());
+ // fixed value property statsType == 65535
+ short statsType = bb.readShort();
+ if(statsType != (short) 0xffff)
+ throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
+ OFStatsReplyFlagsSerializerVer10.readFrom(bb);
+ int experimenter = bb.readInt();
+ bb.readerIndex(start);
+ switch(experimenter) {
+ case 0x5c16c7:
+ // discriminator value 0x5c16c7L=0x5c16c7L for class OFBsnStatsReplyVer10
+ return OFBsnStatsReplyVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator experimenter of class OFExperimenterStatsReplyVer10: " + experimenter);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsRequestVer10.java
new file mode 100644
index 0000000..fbe9855
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterStatsRequestVer10.java
@@ -0,0 +1,70 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFExperimenterStatsRequestVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 16;
+
+
+ public final static OFExperimenterStatsRequestVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFExperimenterStatsRequest<?>> {
+ @Override
+ public OFExperimenterStatsRequest<?> readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 16
+ byte type = bb.readByte();
+ if(type != (byte) 0x10)
+ throw new OFParseError("Wrong type: Expected=OFType.STATS_REQUEST(16), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ U32.f(bb.readInt());
+ // fixed value property statsType == 65535
+ short statsType = bb.readShort();
+ if(statsType != (short) 0xffff)
+ throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
+ OFStatsRequestFlagsSerializerVer10.readFrom(bb);
+ int experimenter = bb.readInt();
+ bb.readerIndex(start);
+ switch(experimenter) {
+ case 0x5c16c7:
+ // discriminator value 0x5c16c7L=0x5c16c7L for class OFBsnStatsRequestVer10
+ return OFBsnStatsRequestVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator experimenter of class OFExperimenterStatsRequestVer10: " + experimenter);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterVer10.java
new file mode 100644
index 0000000..37b7c26
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFExperimenterVer10.java
@@ -0,0 +1,68 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFExperimenterVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 12;
+
+
+ public final static OFExperimenterVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFExperimenter> {
+ @Override
+ public OFExperimenter readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 4
+ byte type = bb.readByte();
+ if(type != (byte) 0x4)
+ throw new OFParseError("Wrong type: Expected=OFType.EXPERIMENTER(4), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ U32.f(bb.readInt());
+ int experimenter = bb.readInt();
+ bb.readerIndex(start);
+ switch(experimenter) {
+ case 0x5c16c7:
+ // discriminator value 0x5c16c7L=0x5c16c7L for class OFBsnHeaderVer10
+ return OFBsnHeaderVer10.READER.readFrom(bb);
+ case 0x2320:
+ // discriminator value 0x2320L=0x2320L for class OFNiciraHeaderVer10
+ return OFNiciraHeaderVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator experimenter of class OFExperimenterVer10: " + experimenter);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFactoryVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFactoryVer10.java
new file mode 100644
index 0000000..7ef1b32
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFactoryVer10.java
@@ -0,0 +1,1245 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_factory_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import java.util.Set;
+import java.util.List;
+import org.projectfloodlight.openflow.protocol.OFOxmList;
+
+
+public class OFFactoryVer10 implements OFFactory {
+ public final static OFFactoryVer10 INSTANCE = new OFFactoryVer10();
+
+ private final XidGenerator xidGenerator = XidGenerators.global();
+
+ public OFActions actions() {
+ return OFActionsVer10.INSTANCE;
+ }
+ public OFInstructions instructions() {
+ return OFInstructionsVer10.INSTANCE;
+ }
+ public OFMeterBands meterBands() {
+ return OFMeterBandsVer10.INSTANCE;
+ }
+ public OFOxms oxms() {
+ return OFOxmsVer10.INSTANCE;
+ }
+ public OFQueueProps queueProps() {
+ return OFQueuePropsVer10.INSTANCE;
+ }
+ public OFErrorMsgs errorMsgs() {
+ return OFErrorMsgsVer10.INSTANCE;
+ }
+ public OFActionIds actionIds() {
+ return OFActionIdsVer10.INSTANCE;
+ }
+ public OFInstructionIds instructionIds() {
+ return OFInstructionIdsVer10.INSTANCE;
+ }
+ public OFBsnTlvs bsnTlvs() {
+ return OFBsnTlvsVer10.INSTANCE;
+ }
+
+
+ public OFAggregateStatsReply.Builder buildAggregateStatsReply() {
+ return new OFAggregateStatsReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFAggregateStatsRequest.Builder buildAggregateStatsRequest() {
+ return new OFAggregateStatsRequestVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBarrierReply.Builder buildBarrierReply() {
+ return new OFBarrierReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFBarrierReply barrierReply() {
+ return new OFBarrierReplyVer10(
+ nextXid()
+ );
+ }
+
+ public OFBarrierRequest.Builder buildBarrierRequest() {
+ return new OFBarrierRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBarrierRequest barrierRequest() {
+ return new OFBarrierRequestVer10(
+ nextXid()
+ );
+ }
+
+ public OFBsnBwClearDataReply.Builder buildBsnBwClearDataReply() {
+ return new OFBsnBwClearDataReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnBwClearDataReply bsnBwClearDataReply(long status) {
+ return new OFBsnBwClearDataReplyVer10(
+ nextXid(),
+ status
+ );
+ }
+
+ public OFBsnBwClearDataRequest.Builder buildBsnBwClearDataRequest() {
+ return new OFBsnBwClearDataRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnBwClearDataRequest bsnBwClearDataRequest() {
+ return new OFBsnBwClearDataRequestVer10(
+ nextXid()
+ );
+ }
+
+ public OFBsnBwEnableGetReply.Builder buildBsnBwEnableGetReply() {
+ return new OFBsnBwEnableGetReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnBwEnableGetReply bsnBwEnableGetReply(long enabled) {
+ return new OFBsnBwEnableGetReplyVer10(
+ nextXid(),
+ enabled
+ );
+ }
+
+ public OFBsnBwEnableGetRequest.Builder buildBsnBwEnableGetRequest() {
+ return new OFBsnBwEnableGetRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnBwEnableGetRequest bsnBwEnableGetRequest() {
+ return new OFBsnBwEnableGetRequestVer10(
+ nextXid()
+ );
+ }
+
+ public OFBsnBwEnableSetReply.Builder buildBsnBwEnableSetReply() {
+ return new OFBsnBwEnableSetReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnBwEnableSetRequest.Builder buildBsnBwEnableSetRequest() {
+ return new OFBsnBwEnableSetRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnBwEnableSetRequest bsnBwEnableSetRequest(long enable) {
+ return new OFBsnBwEnableSetRequestVer10(
+ nextXid(),
+ enable
+ );
+ }
+
+ public OFBsnGetInterfacesReply.Builder buildBsnGetInterfacesReply() {
+ return new OFBsnGetInterfacesReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnGetInterfacesReply bsnGetInterfacesReply(List<OFBsnInterface> interfaces) {
+ return new OFBsnGetInterfacesReplyVer10(
+ nextXid(),
+ interfaces
+ );
+ }
+
+ public OFBsnGetInterfacesRequest.Builder buildBsnGetInterfacesRequest() {
+ return new OFBsnGetInterfacesRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnGetInterfacesRequest bsnGetInterfacesRequest() {
+ return new OFBsnGetInterfacesRequestVer10(
+ nextXid()
+ );
+ }
+
+ public OFBsnGetIpMaskReply.Builder buildBsnGetIpMaskReply() {
+ return new OFBsnGetIpMaskReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnGetIpMaskRequest.Builder buildBsnGetIpMaskRequest() {
+ return new OFBsnGetIpMaskRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnGetIpMaskRequest bsnGetIpMaskRequest(short index) {
+ return new OFBsnGetIpMaskRequestVer10(
+ nextXid(),
+ index
+ );
+ }
+
+ public OFBsnGetL2TableReply.Builder buildBsnGetL2TableReply() {
+ return new OFBsnGetL2TableReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnGetL2TableRequest.Builder buildBsnGetL2TableRequest() {
+ return new OFBsnGetL2TableRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnGetL2TableRequest bsnGetL2TableRequest() {
+ return new OFBsnGetL2TableRequestVer10(
+ nextXid()
+ );
+ }
+
+ public OFBsnGetMirroringReply.Builder buildBsnGetMirroringReply() {
+ return new OFBsnGetMirroringReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnGetMirroringReply bsnGetMirroringReply(short reportMirrorPorts) {
+ return new OFBsnGetMirroringReplyVer10(
+ nextXid(),
+ reportMirrorPorts
+ );
+ }
+
+ public OFBsnGetMirroringRequest.Builder buildBsnGetMirroringRequest() {
+ return new OFBsnGetMirroringRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnGetMirroringRequest bsnGetMirroringRequest(short reportMirrorPorts) {
+ return new OFBsnGetMirroringRequestVer10(
+ nextXid(),
+ reportMirrorPorts
+ );
+ }
+
+ public OFBsnHybridGetReply.Builder buildBsnHybridGetReply() {
+ return new OFBsnHybridGetReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnHybridGetRequest.Builder buildBsnHybridGetRequest() {
+ return new OFBsnHybridGetRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnHybridGetRequest bsnHybridGetRequest() {
+ return new OFBsnHybridGetRequestVer10(
+ nextXid()
+ );
+ }
+
+ public OFBsnInterface.Builder buildBsnInterface() {
+ return new OFBsnInterfaceVer10.Builder();
+ }
+
+ public OFBsnPduRxReply.Builder buildBsnPduRxReply() {
+ return new OFBsnPduRxReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnPduRxRequest.Builder buildBsnPduRxRequest() {
+ return new OFBsnPduRxRequestVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnPduRxTimeout.Builder buildBsnPduRxTimeout() {
+ return new OFBsnPduRxTimeoutVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnPduTxReply.Builder buildBsnPduTxReply() {
+ return new OFBsnPduTxReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnPduTxRequest.Builder buildBsnPduTxRequest() {
+ return new OFBsnPduTxRequestVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnSetIpMask.Builder buildBsnSetIpMask() {
+ return new OFBsnSetIpMaskVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnSetL2TableReply.Builder buildBsnSetL2TableReply() {
+ return new OFBsnSetL2TableReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnSetL2TableRequest.Builder buildBsnSetL2TableRequest() {
+ return new OFBsnSetL2TableRequestVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnSetMirroring.Builder buildBsnSetMirroring() {
+ return new OFBsnSetMirroringVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnSetMirroring bsnSetMirroring(short reportMirrorPorts) {
+ return new OFBsnSetMirroringVer10(
+ nextXid(),
+ reportMirrorPorts
+ );
+ }
+
+ public OFBsnSetPktinSuppressionReply.Builder buildBsnSetPktinSuppressionReply() {
+ return new OFBsnSetPktinSuppressionReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnSetPktinSuppressionReply bsnSetPktinSuppressionReply(long status) {
+ return new OFBsnSetPktinSuppressionReplyVer10(
+ nextXid(),
+ status
+ );
+ }
+
+ public OFBsnSetPktinSuppressionRequest.Builder buildBsnSetPktinSuppressionRequest() {
+ return new OFBsnSetPktinSuppressionRequestVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnShellCommand.Builder buildBsnShellCommand() {
+ return new OFBsnShellCommandVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnShellOutput.Builder buildBsnShellOutput() {
+ return new OFBsnShellOutputVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnShellOutput bsnShellOutput(byte[] data) {
+ return new OFBsnShellOutputVer10(
+ nextXid(),
+ data
+ );
+ }
+
+ public OFBsnShellStatus.Builder buildBsnShellStatus() {
+ return new OFBsnShellStatusVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnShellStatus bsnShellStatus(long status) {
+ return new OFBsnShellStatusVer10(
+ nextXid(),
+ status
+ );
+ }
+
+ public OFBsnVirtualPortCreateReply.Builder buildBsnVirtualPortCreateReply() {
+ return new OFBsnVirtualPortCreateReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFBsnVirtualPortCreateRequest.Builder buildBsnVirtualPortCreateRequest() {
+ return new OFBsnVirtualPortCreateRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnVirtualPortCreateRequest bsnVirtualPortCreateRequest(OFBsnVport vport) {
+ return new OFBsnVirtualPortCreateRequestVer10(
+ nextXid(),
+ vport
+ );
+ }
+
+ public OFBsnVirtualPortRemoveReply.Builder buildBsnVirtualPortRemoveReply() {
+ return new OFBsnVirtualPortRemoveReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnVirtualPortRemoveReply bsnVirtualPortRemoveReply(long status) {
+ return new OFBsnVirtualPortRemoveReplyVer10(
+ nextXid(),
+ status
+ );
+ }
+
+ public OFBsnVirtualPortRemoveRequest.Builder buildBsnVirtualPortRemoveRequest() {
+ return new OFBsnVirtualPortRemoveRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFBsnVirtualPortRemoveRequest bsnVirtualPortRemoveRequest(long vportNo) {
+ return new OFBsnVirtualPortRemoveRequestVer10(
+ nextXid(),
+ vportNo
+ );
+ }
+
+ public OFBsnVportL2Gre.Builder buildBsnVportL2Gre() {
+ return new OFBsnVportL2GreVer10.Builder();
+ }
+
+ public OFBsnVportQInQ.Builder buildBsnVportQInQ() {
+ return new OFBsnVportQInQVer10.Builder();
+ }
+
+ public OFDescStatsReply.Builder buildDescStatsReply() {
+ return new OFDescStatsReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFDescStatsRequest.Builder buildDescStatsRequest() {
+ return new OFDescStatsRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFDescStatsRequest descStatsRequest(Set<OFStatsRequestFlags> flags) {
+ return new OFDescStatsRequestVer10(
+ nextXid(),
+ flags
+ );
+ }
+
+ public OFEchoReply.Builder buildEchoReply() {
+ return new OFEchoReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFEchoReply echoReply(byte[] data) {
+ return new OFEchoReplyVer10(
+ nextXid(),
+ data
+ );
+ }
+
+ public OFEchoRequest.Builder buildEchoRequest() {
+ return new OFEchoRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFEchoRequest echoRequest(byte[] data) {
+ return new OFEchoRequestVer10(
+ nextXid(),
+ data
+ );
+ }
+
+ public OFFeaturesReply.Builder buildFeaturesReply() {
+ return new OFFeaturesReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFeaturesRequest.Builder buildFeaturesRequest() {
+ return new OFFeaturesRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFFeaturesRequest featuresRequest() {
+ return new OFFeaturesRequestVer10(
+ nextXid()
+ );
+ }
+
+ public OFFlowAdd.Builder buildFlowAdd() {
+ return new OFFlowAddVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFlowDelete.Builder buildFlowDelete() {
+ return new OFFlowDeleteVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFlowDeleteStrict.Builder buildFlowDeleteStrict() {
+ return new OFFlowDeleteStrictVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFlowModify.Builder buildFlowModify() {
+ return new OFFlowModifyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFlowModifyStrict.Builder buildFlowModifyStrict() {
+ return new OFFlowModifyStrictVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFlowRemoved.Builder buildFlowRemoved() {
+ return new OFFlowRemovedVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFlowStatsEntry.Builder buildFlowStatsEntry() {
+ return new OFFlowStatsEntryVer10.Builder();
+ }
+
+ public OFFlowStatsReply.Builder buildFlowStatsReply() {
+ return new OFFlowStatsReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFFlowStatsRequest.Builder buildFlowStatsRequest() {
+ return new OFFlowStatsRequestVer10.Builder().setXid(nextXid());
+ }
+
+ public OFGetConfigReply.Builder buildGetConfigReply() {
+ return new OFGetConfigReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFGetConfigRequest.Builder buildGetConfigRequest() {
+ return new OFGetConfigRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFGetConfigRequest getConfigRequest() {
+ return new OFGetConfigRequestVer10(
+ nextXid()
+ );
+ }
+
+ public OFHello.Builder buildHello() {
+ return new OFHelloVer10.Builder().setXid(nextXid());
+ }
+ public OFHello hello(List<OFHelloElem> elements) {
+ return new OFHelloVer10(
+ nextXid()
+ );
+ }
+
+ public OFMatchV1.Builder buildMatchV1() {
+ return new OFMatchV1Ver10.Builder();
+ }
+ public Match.Builder buildMatch() {
+ return new OFMatchV1Ver10.Builder();
+ }
+
+ final static Match MATCH_WILDCARD_ALL = OFMatchV1Ver10.DEFAULT;
+
+ public Match matchWildcardAll() {
+ return MATCH_WILDCARD_ALL;
+ }
+
+ public OFNiciraControllerRoleReply.Builder buildNiciraControllerRoleReply() {
+ return new OFNiciraControllerRoleReplyVer10.Builder().setXid(nextXid());
+ }
+ public OFNiciraControllerRoleReply niciraControllerRoleReply(OFNiciraControllerRole role) {
+ return new OFNiciraControllerRoleReplyVer10(
+ nextXid(),
+ role
+ );
+ }
+
+ public OFNiciraControllerRoleRequest.Builder buildNiciraControllerRoleRequest() {
+ return new OFNiciraControllerRoleRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFNiciraControllerRoleRequest niciraControllerRoleRequest(OFNiciraControllerRole role) {
+ return new OFNiciraControllerRoleRequestVer10(
+ nextXid(),
+ role
+ );
+ }
+
+ public OFPacketIn.Builder buildPacketIn() {
+ return new OFPacketInVer10.Builder().setXid(nextXid());
+ }
+
+ public OFPacketOut.Builder buildPacketOut() {
+ return new OFPacketOutVer10.Builder().setXid(nextXid());
+ }
+
+ public OFPacketQueue.Builder buildPacketQueue() {
+ return new OFPacketQueueVer10.Builder();
+ }
+
+ public OFPortDesc.Builder buildPortDesc() {
+ return new OFPortDescVer10.Builder();
+ }
+
+ public OFPortMod.Builder buildPortMod() {
+ return new OFPortModVer10.Builder().setXid(nextXid());
+ }
+
+ public OFPortStatsEntry.Builder buildPortStatsEntry() {
+ return new OFPortStatsEntryVer10.Builder();
+ }
+
+ public OFPortStatsReply.Builder buildPortStatsReply() {
+ return new OFPortStatsReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFPortStatsRequest.Builder buildPortStatsRequest() {
+ return new OFPortStatsRequestVer10.Builder().setXid(nextXid());
+ }
+
+ public OFPortStatus.Builder buildPortStatus() {
+ return new OFPortStatusVer10.Builder().setXid(nextXid());
+ }
+
+ public OFQueueGetConfigReply.Builder buildQueueGetConfigReply() {
+ return new OFQueueGetConfigReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFQueueGetConfigRequest.Builder buildQueueGetConfigRequest() {
+ return new OFQueueGetConfigRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFQueueGetConfigRequest queueGetConfigRequest(OFPort port) {
+ return new OFQueueGetConfigRequestVer10(
+ nextXid(),
+ port
+ );
+ }
+
+ public OFQueueStatsEntry.Builder buildQueueStatsEntry() {
+ return new OFQueueStatsEntryVer10.Builder();
+ }
+
+ public OFQueueStatsReply.Builder buildQueueStatsReply() {
+ return new OFQueueStatsReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFQueueStatsRequest.Builder buildQueueStatsRequest() {
+ return new OFQueueStatsRequestVer10.Builder().setXid(nextXid());
+ }
+
+ public OFSetConfig.Builder buildSetConfig() {
+ return new OFSetConfigVer10.Builder().setXid(nextXid());
+ }
+
+ public OFTableMod.Builder buildTableMod() {
+ throw new UnsupportedOperationException("OFTableMod not supported in version 1.0");
+ }
+
+ public OFTableStatsEntry.Builder buildTableStatsEntry() {
+ return new OFTableStatsEntryVer10.Builder();
+ }
+
+ public OFTableStatsReply.Builder buildTableStatsReply() {
+ return new OFTableStatsReplyVer10.Builder().setXid(nextXid());
+ }
+
+ public OFTableStatsRequest.Builder buildTableStatsRequest() {
+ return new OFTableStatsRequestVer10.Builder().setXid(nextXid());
+ }
+ public OFTableStatsRequest tableStatsRequest(Set<OFStatsRequestFlags> flags) {
+ return new OFTableStatsRequestVer10(
+ nextXid(),
+ flags
+ );
+ }
+
+ public OFBucket.Builder buildBucket() {
+ throw new UnsupportedOperationException("OFBucket not supported in version 1.0");
+ }
+
+ public OFBucketCounter.Builder buildBucketCounter() {
+ throw new UnsupportedOperationException("OFBucketCounter not supported in version 1.0");
+ }
+ public OFBucketCounter bucketCounter(U64 packetCount, U64 byteCount) {
+ throw new UnsupportedOperationException("OFBucketCounter not supported in version 1.0");
+ }
+
+ public OFGroupAdd.Builder buildGroupAdd() {
+ throw new UnsupportedOperationException("OFGroupAdd not supported in version 1.0");
+ }
+
+ public OFGroupDelete.Builder buildGroupDelete() {
+ throw new UnsupportedOperationException("OFGroupDelete not supported in version 1.0");
+ }
+
+ public OFGroupDescStatsEntry.Builder buildGroupDescStatsEntry() {
+ throw new UnsupportedOperationException("OFGroupDescStatsEntry not supported in version 1.0");
+ }
+
+ public OFGroupDescStatsReply.Builder buildGroupDescStatsReply() {
+ throw new UnsupportedOperationException("OFGroupDescStatsReply not supported in version 1.0");
+ }
+
+ public OFGroupDescStatsRequest.Builder buildGroupDescStatsRequest() {
+ throw new UnsupportedOperationException("OFGroupDescStatsRequest not supported in version 1.0");
+ }
+ public OFGroupDescStatsRequest groupDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFGroupDescStatsRequest not supported in version 1.0");
+ }
+
+ public OFGroupModify.Builder buildGroupModify() {
+ throw new UnsupportedOperationException("OFGroupModify not supported in version 1.0");
+ }
+
+ public OFGroupStatsEntry.Builder buildGroupStatsEntry() {
+ throw new UnsupportedOperationException("OFGroupStatsEntry not supported in version 1.0");
+ }
+
+ public OFGroupStatsReply.Builder buildGroupStatsReply() {
+ throw new UnsupportedOperationException("OFGroupStatsReply not supported in version 1.0");
+ }
+
+ public OFGroupStatsRequest.Builder buildGroupStatsRequest() {
+ throw new UnsupportedOperationException("OFGroupStatsRequest not supported in version 1.0");
+ }
+
+ public OFMatchV2.Builder buildMatchV2() {
+ throw new UnsupportedOperationException("OFMatchV2 not supported in version 1.0");
+ }
+
+ public OFGroupFeaturesStatsReply.Builder buildGroupFeaturesStatsReply() {
+ throw new UnsupportedOperationException("OFGroupFeaturesStatsReply not supported in version 1.0");
+ }
+
+ public OFGroupFeaturesStatsRequest.Builder buildGroupFeaturesStatsRequest() {
+ throw new UnsupportedOperationException("OFGroupFeaturesStatsRequest not supported in version 1.0");
+ }
+ public OFGroupFeaturesStatsRequest groupFeaturesStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFGroupFeaturesStatsRequest not supported in version 1.0");
+ }
+
+ public OFMatchV3.Builder buildMatchV3() {
+ throw new UnsupportedOperationException("OFMatchV3 not supported in version 1.0");
+ }
+ public OFMatchV3 matchV3(OFOxmList oxmList) {
+ throw new UnsupportedOperationException("OFMatchV3 not supported in version 1.0");
+ }
+
+ public OFRoleReply.Builder buildRoleReply() {
+ throw new UnsupportedOperationException("OFRoleReply not supported in version 1.0");
+ }
+
+ public OFRoleRequest.Builder buildRoleRequest() {
+ throw new UnsupportedOperationException("OFRoleRequest not supported in version 1.0");
+ }
+
+ public OFAsyncGetReply.Builder buildAsyncGetReply() {
+ throw new UnsupportedOperationException("OFAsyncGetReply not supported in version 1.0");
+ }
+
+ public OFAsyncGetRequest.Builder buildAsyncGetRequest() {
+ throw new UnsupportedOperationException("OFAsyncGetRequest not supported in version 1.0");
+ }
+
+ public OFAsyncSet.Builder buildAsyncSet() {
+ throw new UnsupportedOperationException("OFAsyncSet not supported in version 1.0");
+ }
+
+ public OFBsnArpIdle.Builder buildBsnArpIdle() {
+ throw new UnsupportedOperationException("OFBsnArpIdle not supported in version 1.0");
+ }
+
+ public OFBsnControllerConnection.Builder buildBsnControllerConnection() {
+ throw new UnsupportedOperationException("OFBsnControllerConnection not supported in version 1.0");
+ }
+
+ public OFBsnControllerConnectionsReply.Builder buildBsnControllerConnectionsReply() {
+ throw new UnsupportedOperationException("OFBsnControllerConnectionsReply not supported in version 1.0");
+ }
+ public OFBsnControllerConnectionsReply bsnControllerConnectionsReply(List<OFBsnControllerConnection> connections) {
+ throw new UnsupportedOperationException("OFBsnControllerConnectionsReply not supported in version 1.0");
+ }
+
+ public OFBsnControllerConnectionsRequest.Builder buildBsnControllerConnectionsRequest() {
+ throw new UnsupportedOperationException("OFBsnControllerConnectionsRequest not supported in version 1.0");
+ }
+ public OFBsnControllerConnectionsRequest bsnControllerConnectionsRequest() {
+ throw new UnsupportedOperationException("OFBsnControllerConnectionsRequest not supported in version 1.0");
+ }
+
+ public OFBsnDebugCounterDescStatsEntry.Builder buildBsnDebugCounterDescStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnDebugCounterDescStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnDebugCounterDescStatsReply.Builder buildBsnDebugCounterDescStatsReply() {
+ throw new UnsupportedOperationException("OFBsnDebugCounterDescStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnDebugCounterDescStatsRequest.Builder buildBsnDebugCounterDescStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnDebugCounterDescStatsRequest not supported in version 1.0");
+ }
+ public OFBsnDebugCounterDescStatsRequest bsnDebugCounterDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFBsnDebugCounterDescStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnDebugCounterStatsEntry.Builder buildBsnDebugCounterStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnDebugCounterStatsEntry not supported in version 1.0");
+ }
+ public OFBsnDebugCounterStatsEntry bsnDebugCounterStatsEntry(U64 counterId, U64 value) {
+ throw new UnsupportedOperationException("OFBsnDebugCounterStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnDebugCounterStatsReply.Builder buildBsnDebugCounterStatsReply() {
+ throw new UnsupportedOperationException("OFBsnDebugCounterStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnDebugCounterStatsRequest.Builder buildBsnDebugCounterStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnDebugCounterStatsRequest not supported in version 1.0");
+ }
+ public OFBsnDebugCounterStatsRequest bsnDebugCounterStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFBsnDebugCounterStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnFlowChecksumBucketStatsEntry.Builder buildBsnFlowChecksumBucketStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnFlowChecksumBucketStatsEntry not supported in version 1.0");
+ }
+ public OFBsnFlowChecksumBucketStatsEntry bsnFlowChecksumBucketStatsEntry(U64 checksum) {
+ throw new UnsupportedOperationException("OFBsnFlowChecksumBucketStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnFlowChecksumBucketStatsReply.Builder buildBsnFlowChecksumBucketStatsReply() {
+ throw new UnsupportedOperationException("OFBsnFlowChecksumBucketStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnFlowChecksumBucketStatsRequest.Builder buildBsnFlowChecksumBucketStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnFlowChecksumBucketStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnFlowIdle.Builder buildBsnFlowIdle() {
+ throw new UnsupportedOperationException("OFBsnFlowIdle not supported in version 1.0");
+ }
+
+ public OFBsnFlowIdleEnableGetReply.Builder buildBsnFlowIdleEnableGetReply() {
+ throw new UnsupportedOperationException("OFBsnFlowIdleEnableGetReply not supported in version 1.0");
+ }
+ public OFBsnFlowIdleEnableGetReply bsnFlowIdleEnableGetReply(long enabled) {
+ throw new UnsupportedOperationException("OFBsnFlowIdleEnableGetReply not supported in version 1.0");
+ }
+
+ public OFBsnFlowIdleEnableGetRequest.Builder buildBsnFlowIdleEnableGetRequest() {
+ throw new UnsupportedOperationException("OFBsnFlowIdleEnableGetRequest not supported in version 1.0");
+ }
+ public OFBsnFlowIdleEnableGetRequest bsnFlowIdleEnableGetRequest() {
+ throw new UnsupportedOperationException("OFBsnFlowIdleEnableGetRequest not supported in version 1.0");
+ }
+
+ public OFBsnFlowIdleEnableSetReply.Builder buildBsnFlowIdleEnableSetReply() {
+ throw new UnsupportedOperationException("OFBsnFlowIdleEnableSetReply not supported in version 1.0");
+ }
+
+ public OFBsnFlowIdleEnableSetRequest.Builder buildBsnFlowIdleEnableSetRequest() {
+ throw new UnsupportedOperationException("OFBsnFlowIdleEnableSetRequest not supported in version 1.0");
+ }
+ public OFBsnFlowIdleEnableSetRequest bsnFlowIdleEnableSetRequest(long enable) {
+ throw new UnsupportedOperationException("OFBsnFlowIdleEnableSetRequest not supported in version 1.0");
+ }
+
+ public OFBsnGentableBucketStatsEntry.Builder buildBsnGentableBucketStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnGentableBucketStatsEntry not supported in version 1.0");
+ }
+ public OFBsnGentableBucketStatsEntry bsnGentableBucketStatsEntry(U128 checksum) {
+ throw new UnsupportedOperationException("OFBsnGentableBucketStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnGentableBucketStatsReply.Builder buildBsnGentableBucketStatsReply() {
+ throw new UnsupportedOperationException("OFBsnGentableBucketStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnGentableBucketStatsRequest.Builder buildBsnGentableBucketStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnGentableBucketStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnGentableClearReply.Builder buildBsnGentableClearReply() {
+ throw new UnsupportedOperationException("OFBsnGentableClearReply not supported in version 1.0");
+ }
+
+ public OFBsnGentableClearRequest.Builder buildBsnGentableClearRequest() {
+ throw new UnsupportedOperationException("OFBsnGentableClearRequest not supported in version 1.0");
+ }
+
+ public OFBsnGentableDescStatsEntry.Builder buildBsnGentableDescStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnGentableDescStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnGentableDescStatsReply.Builder buildBsnGentableDescStatsReply() {
+ throw new UnsupportedOperationException("OFBsnGentableDescStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnGentableDescStatsRequest.Builder buildBsnGentableDescStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnGentableDescStatsRequest not supported in version 1.0");
+ }
+ public OFBsnGentableDescStatsRequest bsnGentableDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFBsnGentableDescStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnGentableEntryAdd.Builder buildBsnGentableEntryAdd() {
+ throw new UnsupportedOperationException("OFBsnGentableEntryAdd not supported in version 1.0");
+ }
+
+ public OFBsnGentableEntryDelete.Builder buildBsnGentableEntryDelete() {
+ throw new UnsupportedOperationException("OFBsnGentableEntryDelete not supported in version 1.0");
+ }
+
+ public OFBsnGentableEntryDescStatsEntry.Builder buildBsnGentableEntryDescStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnGentableEntryDescStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnGentableEntryDescStatsReply.Builder buildBsnGentableEntryDescStatsReply() {
+ throw new UnsupportedOperationException("OFBsnGentableEntryDescStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnGentableEntryDescStatsRequest.Builder buildBsnGentableEntryDescStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnGentableEntryDescStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnGentableEntryStatsEntry.Builder buildBsnGentableEntryStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnGentableEntryStatsEntry not supported in version 1.0");
+ }
+ public OFBsnGentableEntryStatsEntry bsnGentableEntryStatsEntry(List<OFBsnTlv> key, List<OFBsnTlv> stats) {
+ throw new UnsupportedOperationException("OFBsnGentableEntryStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnGentableEntryStatsReply.Builder buildBsnGentableEntryStatsReply() {
+ throw new UnsupportedOperationException("OFBsnGentableEntryStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnGentableEntryStatsRequest.Builder buildBsnGentableEntryStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnGentableEntryStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnGentableSetBucketsSize.Builder buildBsnGentableSetBucketsSize() {
+ throw new UnsupportedOperationException("OFBsnGentableSetBucketsSize not supported in version 1.0");
+ }
+
+ public OFBsnGentableStatsEntry.Builder buildBsnGentableStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnGentableStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnGentableStatsReply.Builder buildBsnGentableStatsReply() {
+ throw new UnsupportedOperationException("OFBsnGentableStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnGentableStatsRequest.Builder buildBsnGentableStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnGentableStatsRequest not supported in version 1.0");
+ }
+ public OFBsnGentableStatsRequest bsnGentableStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFBsnGentableStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnGetSwitchPipelineReply.Builder buildBsnGetSwitchPipelineReply() {
+ throw new UnsupportedOperationException("OFBsnGetSwitchPipelineReply not supported in version 1.0");
+ }
+ public OFBsnGetSwitchPipelineReply bsnGetSwitchPipelineReply(String pipeline) {
+ throw new UnsupportedOperationException("OFBsnGetSwitchPipelineReply not supported in version 1.0");
+ }
+
+ public OFBsnGetSwitchPipelineRequest.Builder buildBsnGetSwitchPipelineRequest() {
+ throw new UnsupportedOperationException("OFBsnGetSwitchPipelineRequest not supported in version 1.0");
+ }
+ public OFBsnGetSwitchPipelineRequest bsnGetSwitchPipelineRequest() {
+ throw new UnsupportedOperationException("OFBsnGetSwitchPipelineRequest not supported in version 1.0");
+ }
+
+ public OFBsnImageDescStatsReply.Builder buildBsnImageDescStatsReply() {
+ throw new UnsupportedOperationException("OFBsnImageDescStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnImageDescStatsRequest.Builder buildBsnImageDescStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnImageDescStatsRequest not supported in version 1.0");
+ }
+ public OFBsnImageDescStatsRequest bsnImageDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFBsnImageDescStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnLacpConvergenceNotif.Builder buildBsnLacpConvergenceNotif() {
+ throw new UnsupportedOperationException("OFBsnLacpConvergenceNotif not supported in version 1.0");
+ }
+
+ public OFBsnLacpStatsEntry.Builder buildBsnLacpStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnLacpStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnLacpStatsReply.Builder buildBsnLacpStatsReply() {
+ throw new UnsupportedOperationException("OFBsnLacpStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnLacpStatsRequest.Builder buildBsnLacpStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnLacpStatsRequest not supported in version 1.0");
+ }
+ public OFBsnLacpStatsRequest bsnLacpStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFBsnLacpStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnLog.Builder buildBsnLog() {
+ throw new UnsupportedOperationException("OFBsnLog not supported in version 1.0");
+ }
+
+ public OFBsnPortCounterStatsEntry.Builder buildBsnPortCounterStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnPortCounterStatsEntry not supported in version 1.0");
+ }
+ public OFBsnPortCounterStatsEntry bsnPortCounterStatsEntry(OFPort portNo, List<U64> values) {
+ throw new UnsupportedOperationException("OFBsnPortCounterStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnPortCounterStatsReply.Builder buildBsnPortCounterStatsReply() {
+ throw new UnsupportedOperationException("OFBsnPortCounterStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnPortCounterStatsRequest.Builder buildBsnPortCounterStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnPortCounterStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnRoleStatus.Builder buildBsnRoleStatus() {
+ throw new UnsupportedOperationException("OFBsnRoleStatus not supported in version 1.0");
+ }
+
+ public OFBsnSetAuxCxnsReply.Builder buildBsnSetAuxCxnsReply() {
+ throw new UnsupportedOperationException("OFBsnSetAuxCxnsReply not supported in version 1.0");
+ }
+
+ public OFBsnSetAuxCxnsRequest.Builder buildBsnSetAuxCxnsRequest() {
+ throw new UnsupportedOperationException("OFBsnSetAuxCxnsRequest not supported in version 1.0");
+ }
+ public OFBsnSetAuxCxnsRequest bsnSetAuxCxnsRequest(long numAux) {
+ throw new UnsupportedOperationException("OFBsnSetAuxCxnsRequest not supported in version 1.0");
+ }
+
+ public OFBsnSetLacpReply.Builder buildBsnSetLacpReply() {
+ throw new UnsupportedOperationException("OFBsnSetLacpReply not supported in version 1.0");
+ }
+
+ public OFBsnSetLacpRequest.Builder buildBsnSetLacpRequest() {
+ throw new UnsupportedOperationException("OFBsnSetLacpRequest not supported in version 1.0");
+ }
+
+ public OFBsnSetSwitchPipelineReply.Builder buildBsnSetSwitchPipelineReply() {
+ throw new UnsupportedOperationException("OFBsnSetSwitchPipelineReply not supported in version 1.0");
+ }
+ public OFBsnSetSwitchPipelineReply bsnSetSwitchPipelineReply(long status) {
+ throw new UnsupportedOperationException("OFBsnSetSwitchPipelineReply not supported in version 1.0");
+ }
+
+ public OFBsnSetSwitchPipelineRequest.Builder buildBsnSetSwitchPipelineRequest() {
+ throw new UnsupportedOperationException("OFBsnSetSwitchPipelineRequest not supported in version 1.0");
+ }
+ public OFBsnSetSwitchPipelineRequest bsnSetSwitchPipelineRequest(String pipeline) {
+ throw new UnsupportedOperationException("OFBsnSetSwitchPipelineRequest not supported in version 1.0");
+ }
+
+ public OFBsnSwitchPipelineStatsEntry.Builder buildBsnSwitchPipelineStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsEntry not supported in version 1.0");
+ }
+ public OFBsnSwitchPipelineStatsEntry bsnSwitchPipelineStatsEntry(String pipeline) {
+ throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnSwitchPipelineStatsReply.Builder buildBsnSwitchPipelineStatsReply() {
+ throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnSwitchPipelineStatsRequest.Builder buildBsnSwitchPipelineStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsRequest not supported in version 1.0");
+ }
+ public OFBsnSwitchPipelineStatsRequest bsnSwitchPipelineStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFBsnSwitchPipelineStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnTableChecksumStatsEntry.Builder buildBsnTableChecksumStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnTableChecksumStatsEntry not supported in version 1.0");
+ }
+ public OFBsnTableChecksumStatsEntry bsnTableChecksumStatsEntry(TableId tableId, U64 checksum) {
+ throw new UnsupportedOperationException("OFBsnTableChecksumStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnTableChecksumStatsReply.Builder buildBsnTableChecksumStatsReply() {
+ throw new UnsupportedOperationException("OFBsnTableChecksumStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnTableChecksumStatsRequest.Builder buildBsnTableChecksumStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnTableChecksumStatsRequest not supported in version 1.0");
+ }
+ public OFBsnTableChecksumStatsRequest bsnTableChecksumStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFBsnTableChecksumStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnTableSetBucketsSize.Builder buildBsnTableSetBucketsSize() {
+ throw new UnsupportedOperationException("OFBsnTableSetBucketsSize not supported in version 1.0");
+ }
+
+ public OFBsnTimeReply.Builder buildBsnTimeReply() {
+ throw new UnsupportedOperationException("OFBsnTimeReply not supported in version 1.0");
+ }
+ public OFBsnTimeReply bsnTimeReply(U64 timeMs) {
+ throw new UnsupportedOperationException("OFBsnTimeReply not supported in version 1.0");
+ }
+
+ public OFBsnTimeRequest.Builder buildBsnTimeRequest() {
+ throw new UnsupportedOperationException("OFBsnTimeRequest not supported in version 1.0");
+ }
+ public OFBsnTimeRequest bsnTimeRequest() {
+ throw new UnsupportedOperationException("OFBsnTimeRequest not supported in version 1.0");
+ }
+
+ public OFBsnVlanCounterStatsEntry.Builder buildBsnVlanCounterStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnVlanCounterStatsEntry not supported in version 1.0");
+ }
+ public OFBsnVlanCounterStatsEntry bsnVlanCounterStatsEntry(int vlanVid, List<U64> values) {
+ throw new UnsupportedOperationException("OFBsnVlanCounterStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnVlanCounterStatsReply.Builder buildBsnVlanCounterStatsReply() {
+ throw new UnsupportedOperationException("OFBsnVlanCounterStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnVlanCounterStatsRequest.Builder buildBsnVlanCounterStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnVlanCounterStatsRequest not supported in version 1.0");
+ }
+
+ public OFBsnVrfCounterStatsEntry.Builder buildBsnVrfCounterStatsEntry() {
+ throw new UnsupportedOperationException("OFBsnVrfCounterStatsEntry not supported in version 1.0");
+ }
+ public OFBsnVrfCounterStatsEntry bsnVrfCounterStatsEntry(long vrf, List<U64> values) {
+ throw new UnsupportedOperationException("OFBsnVrfCounterStatsEntry not supported in version 1.0");
+ }
+
+ public OFBsnVrfCounterStatsReply.Builder buildBsnVrfCounterStatsReply() {
+ throw new UnsupportedOperationException("OFBsnVrfCounterStatsReply not supported in version 1.0");
+ }
+
+ public OFBsnVrfCounterStatsRequest.Builder buildBsnVrfCounterStatsRequest() {
+ throw new UnsupportedOperationException("OFBsnVrfCounterStatsRequest not supported in version 1.0");
+ }
+
+ public OFHelloElemVersionbitmap.Builder buildHelloElemVersionbitmap() {
+ throw new UnsupportedOperationException("OFHelloElemVersionbitmap not supported in version 1.0");
+ }
+ public OFHelloElemVersionbitmap helloElemVersionbitmap(List<U32> bitmaps) {
+ throw new UnsupportedOperationException("OFHelloElemVersionbitmap not supported in version 1.0");
+ }
+
+ public OFMeterBandStats.Builder buildMeterBandStats() {
+ throw new UnsupportedOperationException("OFMeterBandStats not supported in version 1.0");
+ }
+ public OFMeterBandStats meterBandStats(U64 packetBandCount, U64 byteBandCount) {
+ throw new UnsupportedOperationException("OFMeterBandStats not supported in version 1.0");
+ }
+
+ public OFMeterConfig.Builder buildMeterConfig() {
+ throw new UnsupportedOperationException("OFMeterConfig not supported in version 1.0");
+ }
+
+ public OFMeterConfigStatsReply.Builder buildMeterConfigStatsReply() {
+ throw new UnsupportedOperationException("OFMeterConfigStatsReply not supported in version 1.0");
+ }
+
+ public OFMeterConfigStatsRequest.Builder buildMeterConfigStatsRequest() {
+ throw new UnsupportedOperationException("OFMeterConfigStatsRequest not supported in version 1.0");
+ }
+
+ public OFMeterFeatures.Builder buildMeterFeatures() {
+ throw new UnsupportedOperationException("OFMeterFeatures not supported in version 1.0");
+ }
+
+ public OFMeterFeaturesStatsReply.Builder buildMeterFeaturesStatsReply() {
+ throw new UnsupportedOperationException("OFMeterFeaturesStatsReply not supported in version 1.0");
+ }
+
+ public OFMeterFeaturesStatsRequest.Builder buildMeterFeaturesStatsRequest() {
+ throw new UnsupportedOperationException("OFMeterFeaturesStatsRequest not supported in version 1.0");
+ }
+ public OFMeterFeaturesStatsRequest meterFeaturesStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFMeterFeaturesStatsRequest not supported in version 1.0");
+ }
+
+ public OFMeterMod.Builder buildMeterMod() {
+ throw new UnsupportedOperationException("OFMeterMod not supported in version 1.0");
+ }
+
+ public OFMeterStats.Builder buildMeterStats() {
+ throw new UnsupportedOperationException("OFMeterStats not supported in version 1.0");
+ }
+
+ public OFMeterStatsReply.Builder buildMeterStatsReply() {
+ throw new UnsupportedOperationException("OFMeterStatsReply not supported in version 1.0");
+ }
+
+ public OFMeterStatsRequest.Builder buildMeterStatsRequest() {
+ throw new UnsupportedOperationException("OFMeterStatsRequest not supported in version 1.0");
+ }
+
+ public OFPortDescStatsReply.Builder buildPortDescStatsReply() {
+ throw new UnsupportedOperationException("OFPortDescStatsReply not supported in version 1.0");
+ }
+
+ public OFPortDescStatsRequest.Builder buildPortDescStatsRequest() {
+ throw new UnsupportedOperationException("OFPortDescStatsRequest not supported in version 1.0");
+ }
+ public OFPortDescStatsRequest portDescStatsRequest(Set<OFStatsRequestFlags> flags) {
+ throw new UnsupportedOperationException("OFPortDescStatsRequest not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropApplyActions.Builder buildTableFeaturePropApplyActions() {
+ throw new UnsupportedOperationException("OFTableFeaturePropApplyActions not supported in version 1.0");
+ }
+ public OFTableFeaturePropApplyActions tableFeaturePropApplyActions(List<OFActionId> actionIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropApplyActions not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropApplyActionsMiss.Builder buildTableFeaturePropApplyActionsMiss() {
+ throw new UnsupportedOperationException("OFTableFeaturePropApplyActionsMiss not supported in version 1.0");
+ }
+ public OFTableFeaturePropApplyActionsMiss tableFeaturePropApplyActionsMiss(List<OFActionId> actionIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropApplyActionsMiss not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropApplySetfield.Builder buildTableFeaturePropApplySetfield() {
+ throw new UnsupportedOperationException("OFTableFeaturePropApplySetfield not supported in version 1.0");
+ }
+ public OFTableFeaturePropApplySetfield tableFeaturePropApplySetfield(List<U32> oxmIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropApplySetfield not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropApplySetfieldMiss.Builder buildTableFeaturePropApplySetfieldMiss() {
+ throw new UnsupportedOperationException("OFTableFeaturePropApplySetfieldMiss not supported in version 1.0");
+ }
+ public OFTableFeaturePropApplySetfieldMiss tableFeaturePropApplySetfieldMiss(List<U32> oxmIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropApplySetfieldMiss not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropExperimenter.Builder buildTableFeaturePropExperimenter() {
+ throw new UnsupportedOperationException("OFTableFeaturePropExperimenter not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropExperimenterMiss.Builder buildTableFeaturePropExperimenterMiss() {
+ throw new UnsupportedOperationException("OFTableFeaturePropExperimenterMiss not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropInstructions.Builder buildTableFeaturePropInstructions() {
+ throw new UnsupportedOperationException("OFTableFeaturePropInstructions not supported in version 1.0");
+ }
+ public OFTableFeaturePropInstructions tableFeaturePropInstructions(List<OFInstructionId> instructionIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropInstructions not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropInstructionsMiss.Builder buildTableFeaturePropInstructionsMiss() {
+ throw new UnsupportedOperationException("OFTableFeaturePropInstructionsMiss not supported in version 1.0");
+ }
+ public OFTableFeaturePropInstructionsMiss tableFeaturePropInstructionsMiss(List<OFInstructionId> instructionIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropInstructionsMiss not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropMatch.Builder buildTableFeaturePropMatch() {
+ throw new UnsupportedOperationException("OFTableFeaturePropMatch not supported in version 1.0");
+ }
+ public OFTableFeaturePropMatch tableFeaturePropMatch(List<U32> oxmIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropMatch not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropNextTables.Builder buildTableFeaturePropNextTables() {
+ throw new UnsupportedOperationException("OFTableFeaturePropNextTables not supported in version 1.0");
+ }
+ public OFTableFeaturePropNextTables tableFeaturePropNextTables(List<U8> nextTableIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropNextTables not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropNextTablesMiss.Builder buildTableFeaturePropNextTablesMiss() {
+ throw new UnsupportedOperationException("OFTableFeaturePropNextTablesMiss not supported in version 1.0");
+ }
+ public OFTableFeaturePropNextTablesMiss tableFeaturePropNextTablesMiss(List<U8> nextTableIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropNextTablesMiss not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropWildcards.Builder buildTableFeaturePropWildcards() {
+ throw new UnsupportedOperationException("OFTableFeaturePropWildcards not supported in version 1.0");
+ }
+ public OFTableFeaturePropWildcards tableFeaturePropWildcards(List<U32> oxmIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropWildcards not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropWriteActions.Builder buildTableFeaturePropWriteActions() {
+ throw new UnsupportedOperationException("OFTableFeaturePropWriteActions not supported in version 1.0");
+ }
+ public OFTableFeaturePropWriteActions tableFeaturePropWriteActions(List<OFActionId> actionIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropWriteActions not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropWriteActionsMiss.Builder buildTableFeaturePropWriteActionsMiss() {
+ throw new UnsupportedOperationException("OFTableFeaturePropWriteActionsMiss not supported in version 1.0");
+ }
+ public OFTableFeaturePropWriteActionsMiss tableFeaturePropWriteActionsMiss(List<OFActionId> actionIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropWriteActionsMiss not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropWriteSetfield.Builder buildTableFeaturePropWriteSetfield() {
+ throw new UnsupportedOperationException("OFTableFeaturePropWriteSetfield not supported in version 1.0");
+ }
+ public OFTableFeaturePropWriteSetfield tableFeaturePropWriteSetfield(List<U32> oxmIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropWriteSetfield not supported in version 1.0");
+ }
+
+ public OFTableFeaturePropWriteSetfieldMiss.Builder buildTableFeaturePropWriteSetfieldMiss() {
+ throw new UnsupportedOperationException("OFTableFeaturePropWriteSetfieldMiss not supported in version 1.0");
+ }
+ public OFTableFeaturePropWriteSetfieldMiss tableFeaturePropWriteSetfieldMiss(List<U32> oxmIds) {
+ throw new UnsupportedOperationException("OFTableFeaturePropWriteSetfieldMiss not supported in version 1.0");
+ }
+
+ public OFTableFeatures.Builder buildTableFeatures() {
+ throw new UnsupportedOperationException("OFTableFeatures not supported in version 1.0");
+ }
+
+ public OFTableFeaturesStatsReply.Builder buildTableFeaturesStatsReply() {
+ throw new UnsupportedOperationException("OFTableFeaturesStatsReply not supported in version 1.0");
+ }
+
+ public OFTableFeaturesStatsRequest.Builder buildTableFeaturesStatsRequest() {
+ throw new UnsupportedOperationException("OFTableFeaturesStatsRequest not supported in version 1.0");
+ }
+
+ public OFUint64.Builder buildUint64() {
+ throw new UnsupportedOperationException("OFUint64 not supported in version 1.0");
+ }
+ public OFUint64 uint64(U64 value) {
+ throw new UnsupportedOperationException("OFUint64 not supported in version 1.0");
+ }
+
+ public OFMessageReader<OFMessage> getReader() {
+ return OFMessageVer10.READER;
+ }
+
+ public long nextXid() {
+ return xidGenerator.nextXid();
+ }
+
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesReplyVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesReplyVer10.java
new file mode 100644
index 0000000..2c0d797
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesReplyVer10.java
@@ -0,0 +1,637 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFeaturesReplyVer10 implements OFFeaturesReply {
+ private static final Logger logger = LoggerFactory.getLogger(OFFeaturesReplyVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 32;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static DatapathId DEFAULT_DATAPATH_ID = DatapathId.NONE;
+ private final static long DEFAULT_N_BUFFERS = 0x0L;
+ private final static short DEFAULT_N_TABLES = (short) 0x0;
+ private final static Set<OFCapabilities> DEFAULT_CAPABILITIES = ImmutableSet.<OFCapabilities>of();
+ private final static Set<OFActionType> DEFAULT_ACTIONS = ImmutableSet.<OFActionType>of();
+ private final static List<OFPortDesc> DEFAULT_PORTS = ImmutableList.<OFPortDesc>of();
+
+ // OF message fields
+ private final long xid;
+ private final DatapathId datapathId;
+ private final long nBuffers;
+ private final short nTables;
+ private final Set<OFCapabilities> capabilities;
+ private final Set<OFActionType> actions;
+ private final List<OFPortDesc> ports;
+//
+ // Immutable default instance
+ final static OFFeaturesReplyVer10 DEFAULT = new OFFeaturesReplyVer10(
+ DEFAULT_XID, DEFAULT_DATAPATH_ID, DEFAULT_N_BUFFERS, DEFAULT_N_TABLES, DEFAULT_CAPABILITIES, DEFAULT_ACTIONS, DEFAULT_PORTS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFFeaturesReplyVer10(long xid, DatapathId datapathId, long nBuffers, short nTables, Set<OFCapabilities> capabilities, Set<OFActionType> actions, List<OFPortDesc> ports) {
+ this.xid = xid;
+ this.datapathId = datapathId;
+ this.nBuffers = nBuffers;
+ this.nTables = nTables;
+ this.capabilities = capabilities;
+ this.actions = actions;
+ this.ports = ports;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FEATURES_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public DatapathId getDatapathId() {
+ return datapathId;
+ }
+
+ @Override
+ public long getNBuffers() {
+ return nBuffers;
+ }
+
+ @Override
+ public short getNTables() {
+ return nTables;
+ }
+
+ @Override
+ public Set<OFCapabilities> getCapabilities() {
+ return capabilities;
+ }
+
+ @Override
+ public long getReserved()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+ }
+
+ @Override
+ public List<OFPortDesc> getPorts() {
+ return ports;
+ }
+
+ @Override
+ public Set<OFActionType> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFAuxId getAuxiliaryId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+ }
+
+
+
+ public OFFeaturesReply.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFFeaturesReply.Builder {
+ final OFFeaturesReplyVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean datapathIdSet;
+ private DatapathId datapathId;
+ private boolean nBuffersSet;
+ private long nBuffers;
+ private boolean nTablesSet;
+ private short nTables;
+ private boolean capabilitiesSet;
+ private Set<OFCapabilities> capabilities;
+ private boolean actionsSet;
+ private Set<OFActionType> actions;
+ private boolean portsSet;
+ private List<OFPortDesc> ports;
+
+ BuilderWithParent(OFFeaturesReplyVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FEATURES_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public DatapathId getDatapathId() {
+ return datapathId;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setDatapathId(DatapathId datapathId) {
+ this.datapathId = datapathId;
+ this.datapathIdSet = true;
+ return this;
+ }
+ @Override
+ public long getNBuffers() {
+ return nBuffers;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setNBuffers(long nBuffers) {
+ this.nBuffers = nBuffers;
+ this.nBuffersSet = true;
+ return this;
+ }
+ @Override
+ public short getNTables() {
+ return nTables;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setNTables(short nTables) {
+ this.nTables = nTables;
+ this.nTablesSet = true;
+ return this;
+ }
+ @Override
+ public Set<OFCapabilities> getCapabilities() {
+ return capabilities;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setCapabilities(Set<OFCapabilities> capabilities) {
+ this.capabilities = capabilities;
+ this.capabilitiesSet = true;
+ return this;
+ }
+ @Override
+ public long getReserved()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setReserved(long reserved) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+ }
+ @Override
+ public List<OFPortDesc> getPorts() {
+ return ports;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setPorts(List<OFPortDesc> ports) {
+ this.ports = ports;
+ this.portsSet = true;
+ return this;
+ }
+ @Override
+ public Set<OFActionType> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setActions(Set<OFActionType> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+ @Override
+ public OFAuxId getAuxiliaryId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setAuxiliaryId(OFAuxId auxiliaryId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+ }
+
+
+ @Override
+ public OFFeaturesReply build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ DatapathId datapathId = this.datapathIdSet ? this.datapathId : parentMessage.datapathId;
+ if(datapathId == null)
+ throw new NullPointerException("Property datapathId must not be null");
+ long nBuffers = this.nBuffersSet ? this.nBuffers : parentMessage.nBuffers;
+ short nTables = this.nTablesSet ? this.nTables : parentMessage.nTables;
+ Set<OFCapabilities> capabilities = this.capabilitiesSet ? this.capabilities : parentMessage.capabilities;
+ if(capabilities == null)
+ throw new NullPointerException("Property capabilities must not be null");
+ Set<OFActionType> actions = this.actionsSet ? this.actions : parentMessage.actions;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+ List<OFPortDesc> ports = this.portsSet ? this.ports : parentMessage.ports;
+ if(ports == null)
+ throw new NullPointerException("Property ports must not be null");
+
+ //
+ return new OFFeaturesReplyVer10(
+ xid,
+ datapathId,
+ nBuffers,
+ nTables,
+ capabilities,
+ actions,
+ ports
+ );
+ }
+
+ }
+
+ static class Builder implements OFFeaturesReply.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean datapathIdSet;
+ private DatapathId datapathId;
+ private boolean nBuffersSet;
+ private long nBuffers;
+ private boolean nTablesSet;
+ private short nTables;
+ private boolean capabilitiesSet;
+ private Set<OFCapabilities> capabilities;
+ private boolean actionsSet;
+ private Set<OFActionType> actions;
+ private boolean portsSet;
+ private List<OFPortDesc> ports;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FEATURES_REPLY;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public DatapathId getDatapathId() {
+ return datapathId;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setDatapathId(DatapathId datapathId) {
+ this.datapathId = datapathId;
+ this.datapathIdSet = true;
+ return this;
+ }
+ @Override
+ public long getNBuffers() {
+ return nBuffers;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setNBuffers(long nBuffers) {
+ this.nBuffers = nBuffers;
+ this.nBuffersSet = true;
+ return this;
+ }
+ @Override
+ public short getNTables() {
+ return nTables;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setNTables(short nTables) {
+ this.nTables = nTables;
+ this.nTablesSet = true;
+ return this;
+ }
+ @Override
+ public Set<OFCapabilities> getCapabilities() {
+ return capabilities;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setCapabilities(Set<OFCapabilities> capabilities) {
+ this.capabilities = capabilities;
+ this.capabilitiesSet = true;
+ return this;
+ }
+ @Override
+ public long getReserved()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setReserved(long reserved) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property reserved not supported in version 1.0");
+ }
+ @Override
+ public List<OFPortDesc> getPorts() {
+ return ports;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setPorts(List<OFPortDesc> ports) {
+ this.ports = ports;
+ this.portsSet = true;
+ return this;
+ }
+ @Override
+ public Set<OFActionType> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setActions(Set<OFActionType> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+ @Override
+ public OFAuxId getAuxiliaryId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFeaturesReply.Builder setAuxiliaryId(OFAuxId auxiliaryId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property auxiliaryId not supported in version 1.0");
+ }
+//
+ @Override
+ public OFFeaturesReply build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ DatapathId datapathId = this.datapathIdSet ? this.datapathId : DEFAULT_DATAPATH_ID;
+ if(datapathId == null)
+ throw new NullPointerException("Property datapathId must not be null");
+ long nBuffers = this.nBuffersSet ? this.nBuffers : DEFAULT_N_BUFFERS;
+ short nTables = this.nTablesSet ? this.nTables : DEFAULT_N_TABLES;
+ Set<OFCapabilities> capabilities = this.capabilitiesSet ? this.capabilities : DEFAULT_CAPABILITIES;
+ if(capabilities == null)
+ throw new NullPointerException("Property capabilities must not be null");
+ Set<OFActionType> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+ List<OFPortDesc> ports = this.portsSet ? this.ports : DEFAULT_PORTS;
+ if(ports == null)
+ throw new NullPointerException("Property ports must not be null");
+
+
+ return new OFFeaturesReplyVer10(
+ xid,
+ datapathId,
+ nBuffers,
+ nTables,
+ capabilities,
+ actions,
+ ports
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFFeaturesReply> {
+ @Override
+ public OFFeaturesReply readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 6
+ byte type = bb.readByte();
+ if(type != (byte) 0x6)
+ throw new OFParseError("Wrong type: Expected=OFType.FEATURES_REPLY(6), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ DatapathId datapathId = DatapathId.of(bb.readLong());
+ long nBuffers = U32.f(bb.readInt());
+ short nTables = U8.f(bb.readByte());
+ // pad: 3 bytes
+ bb.skipBytes(3);
+ Set<OFCapabilities> capabilities = OFCapabilitiesSerializerVer10.readFrom(bb);
+ Set<OFActionType> actions = ChannelUtilsVer10.readSupportedActions(bb);
+ List<OFPortDesc> ports = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFPortDescVer10.READER);
+
+ OFFeaturesReplyVer10 featuresReplyVer10 = new OFFeaturesReplyVer10(
+ xid,
+ datapathId,
+ nBuffers,
+ nTables,
+ capabilities,
+ actions,
+ ports
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", featuresReplyVer10);
+ return featuresReplyVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFFeaturesReplyVer10Funnel FUNNEL = new OFFeaturesReplyVer10Funnel();
+ static class OFFeaturesReplyVer10Funnel implements Funnel<OFFeaturesReplyVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFFeaturesReplyVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 6
+ sink.putByte((byte) 0x6);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ message.datapathId.putTo(sink);
+ sink.putLong(message.nBuffers);
+ sink.putShort(message.nTables);
+ // skip pad (3 bytes)
+ OFCapabilitiesSerializerVer10.putTo(message.capabilities, sink);
+ ChannelUtilsVer10.putSupportedActionsTo(message.actions, sink);
+ FunnelUtils.putList(message.ports, sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFFeaturesReplyVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFFeaturesReplyVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 6
+ bb.writeByte((byte) 0x6);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ bb.writeLong(message.datapathId.getLong());
+ bb.writeInt(U32.t(message.nBuffers));
+ bb.writeByte(U8.t(message.nTables));
+ // pad: 3 bytes
+ bb.writeZero(3);
+ OFCapabilitiesSerializerVer10.writeTo(bb, message.capabilities);
+ ChannelUtilsVer10.writeSupportedActions(bb, message.actions);
+ ChannelUtils.writeList(bb, message.ports);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFFeaturesReplyVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("datapathId=").append(datapathId);
+ b.append(", ");
+ b.append("nBuffers=").append(nBuffers);
+ b.append(", ");
+ b.append("nTables=").append(nTables);
+ b.append(", ");
+ b.append("capabilities=").append(capabilities);
+ b.append(", ");
+ b.append("actions=").append(actions);
+ b.append(", ");
+ b.append("ports=").append(ports);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFFeaturesReplyVer10 other = (OFFeaturesReplyVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (datapathId == null) {
+ if (other.datapathId != null)
+ return false;
+ } else if (!datapathId.equals(other.datapathId))
+ return false;
+ if( nBuffers != other.nBuffers)
+ return false;
+ if( nTables != other.nTables)
+ return false;
+ if (capabilities == null) {
+ if (other.capabilities != null)
+ return false;
+ } else if (!capabilities.equals(other.capabilities))
+ return false;
+ if (actions == null) {
+ if (other.actions != null)
+ return false;
+ } else if (!actions.equals(other.actions))
+ return false;
+ if (ports == null) {
+ if (other.ports != null)
+ return false;
+ } else if (!ports.equals(other.ports))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((datapathId == null) ? 0 : datapathId.hashCode());
+ result = prime * (int) (nBuffers ^ (nBuffers >>> 32));
+ result = prime * result + nTables;
+ result = prime * result + ((capabilities == null) ? 0 : capabilities.hashCode());
+ result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+ result = prime * result + ((ports == null) ? 0 : ports.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesRequestVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesRequestVer10.java
new file mode 100644
index 0000000..284e1e9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFeaturesRequestVer10.java
@@ -0,0 +1,268 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFeaturesRequestVer10 implements OFFeaturesRequest {
+ private static final Logger logger = LoggerFactory.getLogger(OFFeaturesRequestVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int LENGTH = 8;
+
+ private final static long DEFAULT_XID = 0x0L;
+
+ // OF message fields
+ private final long xid;
+//
+ // Immutable default instance
+ final static OFFeaturesRequestVer10 DEFAULT = new OFFeaturesRequestVer10(
+ DEFAULT_XID
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFFeaturesRequestVer10(long xid) {
+ this.xid = xid;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FEATURES_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+
+
+ public OFFeaturesRequest.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFFeaturesRequest.Builder {
+ final OFFeaturesRequestVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ BuilderWithParent(OFFeaturesRequestVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FEATURES_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFeaturesRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFFeaturesRequest build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+
+ //
+ return new OFFeaturesRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+ static class Builder implements OFFeaturesRequest.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FEATURES_REQUEST;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFeaturesRequest.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFFeaturesRequest build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+
+
+ return new OFFeaturesRequestVer10(
+ xid
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFFeaturesRequest> {
+ @Override
+ public OFFeaturesRequest readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 5
+ byte type = bb.readByte();
+ if(type != (byte) 0x5)
+ throw new OFParseError("Wrong type: Expected=OFType.FEATURES_REQUEST(5), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length != 8)
+ throw new OFParseError("Wrong length: Expected=8(8), got="+length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+
+ OFFeaturesRequestVer10 featuresRequestVer10 = new OFFeaturesRequestVer10(
+ xid
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", featuresRequestVer10);
+ return featuresRequestVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFFeaturesRequestVer10Funnel FUNNEL = new OFFeaturesRequestVer10Funnel();
+ static class OFFeaturesRequestVer10Funnel implements Funnel<OFFeaturesRequestVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFFeaturesRequestVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 5
+ sink.putByte((byte) 0x5);
+ // fixed value property length = 8
+ sink.putShort((short) 0x8);
+ sink.putLong(message.xid);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFFeaturesRequestVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFFeaturesRequestVer10 message) {
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 5
+ bb.writeByte((byte) 0x5);
+ // fixed value property length = 8
+ bb.writeShort((short) 0x8);
+ bb.writeInt(U32.t(message.xid));
+
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFFeaturesRequestVer10(");
+ b.append("xid=").append(xid);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFFeaturesRequestVer10 other = (OFFeaturesRequestVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowAddVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowAddVer10.java
new file mode 100644
index 0000000..e7ef2c9
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowAddVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowAddVer10 implements OFFlowAdd {
+ private static final Logger logger = LoggerFactory.getLogger(OFFlowAddVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 72;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+ private final static U64 DEFAULT_COOKIE = U64.ZERO;
+ private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+ private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+ private final static int DEFAULT_PRIORITY = 0x0;
+ private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+ private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+ private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+ private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+ // OF message fields
+ private final long xid;
+ private final Match match;
+ private final U64 cookie;
+ private final int idleTimeout;
+ private final int hardTimeout;
+ private final int priority;
+ private final OFBufferId bufferId;
+ private final OFPort outPort;
+ private final Set<OFFlowModFlags> flags;
+ private final List<OFAction> actions;
+//
+ // Immutable default instance
+ final static OFFlowAddVer10 DEFAULT = new OFFlowAddVer10(
+ DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFFlowAddVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+ this.xid = xid;
+ this.match = match;
+ this.cookie = cookie;
+ this.idleTimeout = idleTimeout;
+ this.hardTimeout = hardTimeout;
+ this.priority = priority;
+ this.bufferId = bufferId;
+ this.outPort = outPort;
+ this.flags = flags;
+ this.actions = actions;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.ADD;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+
+
+ public OFFlowAdd.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFFlowAdd.Builder {
+ final OFFlowAddVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean matchSet;
+ private Match match;
+ private boolean cookieSet;
+ private U64 cookie;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean bufferIdSet;
+ private OFBufferId bufferId;
+ private boolean outPortSet;
+ private OFPort outPort;
+ private boolean flagsSet;
+ private Set<OFFlowModFlags> flags;
+ private boolean actionsSet;
+ private List<OFAction> actions;
+
+ BuilderWithParent(OFFlowAddVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowAdd.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowAdd.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.ADD;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setBufferId(OFBufferId bufferId) {
+ this.bufferId = bufferId;
+ this.bufferIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowAdd.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setFlags(Set<OFFlowModFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowAdd.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setActions(List<OFAction> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFFlowAdd build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ Match match = this.matchSet ? this.match : parentMessage.match;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+ int priority = this.prioritySet ? this.priority : parentMessage.priority;
+ OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+ if(bufferId == null)
+ throw new NullPointerException("Property bufferId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+ Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+
+ //
+ return new OFFlowAddVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ }
+
+ }
+
+ static class Builder implements OFFlowAdd.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean matchSet;
+ private Match match;
+ private boolean cookieSet;
+ private U64 cookie;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean bufferIdSet;
+ private OFBufferId bufferId;
+ private boolean outPortSet;
+ private OFPort outPort;
+ private boolean flagsSet;
+ private Set<OFFlowModFlags> flags;
+ private boolean actionsSet;
+ private List<OFAction> actions;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowAdd.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowAdd.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.ADD;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setBufferId(OFBufferId bufferId) {
+ this.bufferId = bufferId;
+ this.bufferIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowAdd.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setFlags(Set<OFFlowModFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowAdd.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFlowAdd.Builder setActions(List<OFAction> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFFlowAdd build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+ int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+ OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+ if(bufferId == null)
+ throw new NullPointerException("Property bufferId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+ Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+
+
+ return new OFFlowAddVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFFlowAdd> {
+ @Override
+ public OFFlowAdd readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 14
+ byte type = bb.readByte();
+ if(type != (byte) 0xe)
+ throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ Match match = ChannelUtilsVer10.readOFMatch(bb);
+ U64 cookie = U64.ofRaw(bb.readLong());
+ // fixed value property command == 0
+ short command = bb.readShort();
+ if(command != (short) 0x0)
+ throw new OFParseError("Wrong command: Expected=OFFlowModCommand.ADD(0), got="+command);
+ int idleTimeout = U16.f(bb.readShort());
+ int hardTimeout = U16.f(bb.readShort());
+ int priority = U16.f(bb.readShort());
+ OFBufferId bufferId = OFBufferId.of(bb.readInt());
+ OFPort outPort = OFPort.read2Bytes(bb);
+ Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+ List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+ OFFlowAddVer10 flowAddVer10 = new OFFlowAddVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", flowAddVer10);
+ return flowAddVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFFlowAddVer10Funnel FUNNEL = new OFFlowAddVer10Funnel();
+ static class OFFlowAddVer10Funnel implements Funnel<OFFlowAddVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFFlowAddVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 14
+ sink.putByte((byte) 0xe);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ message.match.putTo(sink);
+ message.cookie.putTo(sink);
+ // fixed value property command = 0
+ sink.putShort((short) 0x0);
+ sink.putInt(message.idleTimeout);
+ sink.putInt(message.hardTimeout);
+ sink.putInt(message.priority);
+ message.bufferId.putTo(sink);
+ message.outPort.putTo(sink);
+ OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+ FunnelUtils.putList(message.actions, sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFFlowAddVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFFlowAddVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 14
+ bb.writeByte((byte) 0xe);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ message.match.writeTo(bb);
+ bb.writeLong(message.cookie.getValue());
+ // fixed value property command = 0
+ bb.writeShort((short) 0x0);
+ bb.writeShort(U16.t(message.idleTimeout));
+ bb.writeShort(U16.t(message.hardTimeout));
+ bb.writeShort(U16.t(message.priority));
+ bb.writeInt(message.bufferId.getInt());
+ message.outPort.write2Bytes(bb);
+ OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+ ChannelUtils.writeList(bb, message.actions);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFFlowAddVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("match=").append(match);
+ b.append(", ");
+ b.append("cookie=").append(cookie);
+ b.append(", ");
+ b.append("idleTimeout=").append(idleTimeout);
+ b.append(", ");
+ b.append("hardTimeout=").append(hardTimeout);
+ b.append(", ");
+ b.append("priority=").append(priority);
+ b.append(", ");
+ b.append("bufferId=").append(bufferId);
+ b.append(", ");
+ b.append("outPort=").append(outPort);
+ b.append(", ");
+ b.append("flags=").append(flags);
+ b.append(", ");
+ b.append("actions=").append(actions);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFFlowAddVer10 other = (OFFlowAddVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (match == null) {
+ if (other.match != null)
+ return false;
+ } else if (!match.equals(other.match))
+ return false;
+ if (cookie == null) {
+ if (other.cookie != null)
+ return false;
+ } else if (!cookie.equals(other.cookie))
+ return false;
+ if( idleTimeout != other.idleTimeout)
+ return false;
+ if( hardTimeout != other.hardTimeout)
+ return false;
+ if( priority != other.priority)
+ return false;
+ if (bufferId == null) {
+ if (other.bufferId != null)
+ return false;
+ } else if (!bufferId.equals(other.bufferId))
+ return false;
+ if (outPort == null) {
+ if (other.outPort != null)
+ return false;
+ } else if (!outPort.equals(other.outPort))
+ return false;
+ if (flags == null) {
+ if (other.flags != null)
+ return false;
+ } else if (!flags.equals(other.flags))
+ return false;
+ if (actions == null) {
+ if (other.actions != null)
+ return false;
+ } else if (!actions.equals(other.actions))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((match == null) ? 0 : match.hashCode());
+ result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+ result = prime * result + idleTimeout;
+ result = prime * result + hardTimeout;
+ result = prime * result + priority;
+ result = prime * result + ((bufferId == null) ? 0 : bufferId.hashCode());
+ result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+ result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+ result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteStrictVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteStrictVer10.java
new file mode 100644
index 0000000..95a76c5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteStrictVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowDeleteStrictVer10 implements OFFlowDeleteStrict {
+ private static final Logger logger = LoggerFactory.getLogger(OFFlowDeleteStrictVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 72;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+ private final static U64 DEFAULT_COOKIE = U64.ZERO;
+ private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+ private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+ private final static int DEFAULT_PRIORITY = 0x0;
+ private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+ private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+ private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+ private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+ // OF message fields
+ private final long xid;
+ private final Match match;
+ private final U64 cookie;
+ private final int idleTimeout;
+ private final int hardTimeout;
+ private final int priority;
+ private final OFBufferId bufferId;
+ private final OFPort outPort;
+ private final Set<OFFlowModFlags> flags;
+ private final List<OFAction> actions;
+//
+ // Immutable default instance
+ final static OFFlowDeleteStrictVer10 DEFAULT = new OFFlowDeleteStrictVer10(
+ DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFFlowDeleteStrictVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+ this.xid = xid;
+ this.match = match;
+ this.cookie = cookie;
+ this.idleTimeout = idleTimeout;
+ this.hardTimeout = hardTimeout;
+ this.priority = priority;
+ this.bufferId = bufferId;
+ this.outPort = outPort;
+ this.flags = flags;
+ this.actions = actions;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.DELETE_STRICT;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+
+
+ public OFFlowDeleteStrict.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFFlowDeleteStrict.Builder {
+ final OFFlowDeleteStrictVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean matchSet;
+ private Match match;
+ private boolean cookieSet;
+ private U64 cookie;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean bufferIdSet;
+ private OFBufferId bufferId;
+ private boolean outPortSet;
+ private OFPort outPort;
+ private boolean flagsSet;
+ private Set<OFFlowModFlags> flags;
+ private boolean actionsSet;
+ private List<OFAction> actions;
+
+ BuilderWithParent(OFFlowDeleteStrictVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.DELETE_STRICT;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setBufferId(OFBufferId bufferId) {
+ this.bufferId = bufferId;
+ this.bufferIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setFlags(Set<OFFlowModFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setActions(List<OFAction> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFFlowDeleteStrict build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ Match match = this.matchSet ? this.match : parentMessage.match;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+ int priority = this.prioritySet ? this.priority : parentMessage.priority;
+ OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+ if(bufferId == null)
+ throw new NullPointerException("Property bufferId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+ Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+
+ //
+ return new OFFlowDeleteStrictVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ }
+
+ }
+
+ static class Builder implements OFFlowDeleteStrict.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean matchSet;
+ private Match match;
+ private boolean cookieSet;
+ private U64 cookie;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean bufferIdSet;
+ private OFBufferId bufferId;
+ private boolean outPortSet;
+ private OFPort outPort;
+ private boolean flagsSet;
+ private Set<OFFlowModFlags> flags;
+ private boolean actionsSet;
+ private List<OFAction> actions;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.DELETE_STRICT;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setBufferId(OFBufferId bufferId) {
+ this.bufferId = bufferId;
+ this.bufferIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setFlags(Set<OFFlowModFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFlowDeleteStrict.Builder setActions(List<OFAction> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFFlowDeleteStrict build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+ int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+ OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+ if(bufferId == null)
+ throw new NullPointerException("Property bufferId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+ Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+
+
+ return new OFFlowDeleteStrictVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFFlowDeleteStrict> {
+ @Override
+ public OFFlowDeleteStrict readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 14
+ byte type = bb.readByte();
+ if(type != (byte) 0xe)
+ throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ Match match = ChannelUtilsVer10.readOFMatch(bb);
+ U64 cookie = U64.ofRaw(bb.readLong());
+ // fixed value property command == 4
+ short command = bb.readShort();
+ if(command != (short) 0x4)
+ throw new OFParseError("Wrong command: Expected=OFFlowModCommand.DELETE_STRICT(4), got="+command);
+ int idleTimeout = U16.f(bb.readShort());
+ int hardTimeout = U16.f(bb.readShort());
+ int priority = U16.f(bb.readShort());
+ OFBufferId bufferId = OFBufferId.of(bb.readInt());
+ OFPort outPort = OFPort.read2Bytes(bb);
+ Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+ List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+ OFFlowDeleteStrictVer10 flowDeleteStrictVer10 = new OFFlowDeleteStrictVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", flowDeleteStrictVer10);
+ return flowDeleteStrictVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFFlowDeleteStrictVer10Funnel FUNNEL = new OFFlowDeleteStrictVer10Funnel();
+ static class OFFlowDeleteStrictVer10Funnel implements Funnel<OFFlowDeleteStrictVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFFlowDeleteStrictVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 14
+ sink.putByte((byte) 0xe);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ message.match.putTo(sink);
+ message.cookie.putTo(sink);
+ // fixed value property command = 4
+ sink.putShort((short) 0x4);
+ sink.putInt(message.idleTimeout);
+ sink.putInt(message.hardTimeout);
+ sink.putInt(message.priority);
+ message.bufferId.putTo(sink);
+ message.outPort.putTo(sink);
+ OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+ FunnelUtils.putList(message.actions, sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFFlowDeleteStrictVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFFlowDeleteStrictVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 14
+ bb.writeByte((byte) 0xe);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ message.match.writeTo(bb);
+ bb.writeLong(message.cookie.getValue());
+ // fixed value property command = 4
+ bb.writeShort((short) 0x4);
+ bb.writeShort(U16.t(message.idleTimeout));
+ bb.writeShort(U16.t(message.hardTimeout));
+ bb.writeShort(U16.t(message.priority));
+ bb.writeInt(message.bufferId.getInt());
+ message.outPort.write2Bytes(bb);
+ OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+ ChannelUtils.writeList(bb, message.actions);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFFlowDeleteStrictVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("match=").append(match);
+ b.append(", ");
+ b.append("cookie=").append(cookie);
+ b.append(", ");
+ b.append("idleTimeout=").append(idleTimeout);
+ b.append(", ");
+ b.append("hardTimeout=").append(hardTimeout);
+ b.append(", ");
+ b.append("priority=").append(priority);
+ b.append(", ");
+ b.append("bufferId=").append(bufferId);
+ b.append(", ");
+ b.append("outPort=").append(outPort);
+ b.append(", ");
+ b.append("flags=").append(flags);
+ b.append(", ");
+ b.append("actions=").append(actions);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFFlowDeleteStrictVer10 other = (OFFlowDeleteStrictVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (match == null) {
+ if (other.match != null)
+ return false;
+ } else if (!match.equals(other.match))
+ return false;
+ if (cookie == null) {
+ if (other.cookie != null)
+ return false;
+ } else if (!cookie.equals(other.cookie))
+ return false;
+ if( idleTimeout != other.idleTimeout)
+ return false;
+ if( hardTimeout != other.hardTimeout)
+ return false;
+ if( priority != other.priority)
+ return false;
+ if (bufferId == null) {
+ if (other.bufferId != null)
+ return false;
+ } else if (!bufferId.equals(other.bufferId))
+ return false;
+ if (outPort == null) {
+ if (other.outPort != null)
+ return false;
+ } else if (!outPort.equals(other.outPort))
+ return false;
+ if (flags == null) {
+ if (other.flags != null)
+ return false;
+ } else if (!flags.equals(other.flags))
+ return false;
+ if (actions == null) {
+ if (other.actions != null)
+ return false;
+ } else if (!actions.equals(other.actions))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((match == null) ? 0 : match.hashCode());
+ result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+ result = prime * result + idleTimeout;
+ result = prime * result + hardTimeout;
+ result = prime * result + priority;
+ result = prime * result + ((bufferId == null) ? 0 : bufferId.hashCode());
+ result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+ result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+ result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteVer10.java
new file mode 100644
index 0000000..0be8dd8
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowDeleteVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowDeleteVer10 implements OFFlowDelete {
+ private static final Logger logger = LoggerFactory.getLogger(OFFlowDeleteVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 72;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+ private final static U64 DEFAULT_COOKIE = U64.ZERO;
+ private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+ private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+ private final static int DEFAULT_PRIORITY = 0x0;
+ private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+ private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+ private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+ private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+ // OF message fields
+ private final long xid;
+ private final Match match;
+ private final U64 cookie;
+ private final int idleTimeout;
+ private final int hardTimeout;
+ private final int priority;
+ private final OFBufferId bufferId;
+ private final OFPort outPort;
+ private final Set<OFFlowModFlags> flags;
+ private final List<OFAction> actions;
+//
+ // Immutable default instance
+ final static OFFlowDeleteVer10 DEFAULT = new OFFlowDeleteVer10(
+ DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFFlowDeleteVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+ this.xid = xid;
+ this.match = match;
+ this.cookie = cookie;
+ this.idleTimeout = idleTimeout;
+ this.hardTimeout = hardTimeout;
+ this.priority = priority;
+ this.bufferId = bufferId;
+ this.outPort = outPort;
+ this.flags = flags;
+ this.actions = actions;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.DELETE;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+
+
+ public OFFlowDelete.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFFlowDelete.Builder {
+ final OFFlowDeleteVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean matchSet;
+ private Match match;
+ private boolean cookieSet;
+ private U64 cookie;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean bufferIdSet;
+ private OFBufferId bufferId;
+ private boolean outPortSet;
+ private OFPort outPort;
+ private boolean flagsSet;
+ private Set<OFFlowModFlags> flags;
+ private boolean actionsSet;
+ private List<OFAction> actions;
+
+ BuilderWithParent(OFFlowDeleteVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDelete.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDelete.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.DELETE;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setBufferId(OFBufferId bufferId) {
+ this.bufferId = bufferId;
+ this.bufferIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDelete.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setFlags(Set<OFFlowModFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDelete.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setActions(List<OFAction> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFFlowDelete build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ Match match = this.matchSet ? this.match : parentMessage.match;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+ int priority = this.prioritySet ? this.priority : parentMessage.priority;
+ OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+ if(bufferId == null)
+ throw new NullPointerException("Property bufferId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+ Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+
+ //
+ return new OFFlowDeleteVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ }
+
+ }
+
+ static class Builder implements OFFlowDelete.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean matchSet;
+ private Match match;
+ private boolean cookieSet;
+ private U64 cookie;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean bufferIdSet;
+ private OFBufferId bufferId;
+ private boolean outPortSet;
+ private OFPort outPort;
+ private boolean flagsSet;
+ private Set<OFFlowModFlags> flags;
+ private boolean actionsSet;
+ private List<OFAction> actions;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDelete.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDelete.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.DELETE;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setBufferId(OFBufferId bufferId) {
+ this.bufferId = bufferId;
+ this.bufferIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDelete.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setFlags(Set<OFFlowModFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowDelete.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFlowDelete.Builder setActions(List<OFAction> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFFlowDelete build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+ int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+ OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+ if(bufferId == null)
+ throw new NullPointerException("Property bufferId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+ Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+
+
+ return new OFFlowDeleteVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFFlowDelete> {
+ @Override
+ public OFFlowDelete readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 14
+ byte type = bb.readByte();
+ if(type != (byte) 0xe)
+ throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ Match match = ChannelUtilsVer10.readOFMatch(bb);
+ U64 cookie = U64.ofRaw(bb.readLong());
+ // fixed value property command == 3
+ short command = bb.readShort();
+ if(command != (short) 0x3)
+ throw new OFParseError("Wrong command: Expected=OFFlowModCommand.DELETE(3), got="+command);
+ int idleTimeout = U16.f(bb.readShort());
+ int hardTimeout = U16.f(bb.readShort());
+ int priority = U16.f(bb.readShort());
+ OFBufferId bufferId = OFBufferId.of(bb.readInt());
+ OFPort outPort = OFPort.read2Bytes(bb);
+ Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+ List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+ OFFlowDeleteVer10 flowDeleteVer10 = new OFFlowDeleteVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", flowDeleteVer10);
+ return flowDeleteVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFFlowDeleteVer10Funnel FUNNEL = new OFFlowDeleteVer10Funnel();
+ static class OFFlowDeleteVer10Funnel implements Funnel<OFFlowDeleteVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFFlowDeleteVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 14
+ sink.putByte((byte) 0xe);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ message.match.putTo(sink);
+ message.cookie.putTo(sink);
+ // fixed value property command = 3
+ sink.putShort((short) 0x3);
+ sink.putInt(message.idleTimeout);
+ sink.putInt(message.hardTimeout);
+ sink.putInt(message.priority);
+ message.bufferId.putTo(sink);
+ message.outPort.putTo(sink);
+ OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+ FunnelUtils.putList(message.actions, sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFFlowDeleteVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFFlowDeleteVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 14
+ bb.writeByte((byte) 0xe);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ message.match.writeTo(bb);
+ bb.writeLong(message.cookie.getValue());
+ // fixed value property command = 3
+ bb.writeShort((short) 0x3);
+ bb.writeShort(U16.t(message.idleTimeout));
+ bb.writeShort(U16.t(message.hardTimeout));
+ bb.writeShort(U16.t(message.priority));
+ bb.writeInt(message.bufferId.getInt());
+ message.outPort.write2Bytes(bb);
+ OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+ ChannelUtils.writeList(bb, message.actions);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFFlowDeleteVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("match=").append(match);
+ b.append(", ");
+ b.append("cookie=").append(cookie);
+ b.append(", ");
+ b.append("idleTimeout=").append(idleTimeout);
+ b.append(", ");
+ b.append("hardTimeout=").append(hardTimeout);
+ b.append(", ");
+ b.append("priority=").append(priority);
+ b.append(", ");
+ b.append("bufferId=").append(bufferId);
+ b.append(", ");
+ b.append("outPort=").append(outPort);
+ b.append(", ");
+ b.append("flags=").append(flags);
+ b.append(", ");
+ b.append("actions=").append(actions);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFFlowDeleteVer10 other = (OFFlowDeleteVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (match == null) {
+ if (other.match != null)
+ return false;
+ } else if (!match.equals(other.match))
+ return false;
+ if (cookie == null) {
+ if (other.cookie != null)
+ return false;
+ } else if (!cookie.equals(other.cookie))
+ return false;
+ if( idleTimeout != other.idleTimeout)
+ return false;
+ if( hardTimeout != other.hardTimeout)
+ return false;
+ if( priority != other.priority)
+ return false;
+ if (bufferId == null) {
+ if (other.bufferId != null)
+ return false;
+ } else if (!bufferId.equals(other.bufferId))
+ return false;
+ if (outPort == null) {
+ if (other.outPort != null)
+ return false;
+ } else if (!outPort.equals(other.outPort))
+ return false;
+ if (flags == null) {
+ if (other.flags != null)
+ return false;
+ } else if (!flags.equals(other.flags))
+ return false;
+ if (actions == null) {
+ if (other.actions != null)
+ return false;
+ } else if (!actions.equals(other.actions))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((match == null) ? 0 : match.hashCode());
+ result = prime * result + ((cookie == null) ? 0 : cookie.hashCode());
+ result = prime * result + idleTimeout;
+ result = prime * result + hardTimeout;
+ result = prime * result + priority;
+ result = prime * result + ((bufferId == null) ? 0 : bufferId.hashCode());
+ result = prime * result + ((outPort == null) ? 0 : outPort.hashCode());
+ result = prime * result + ((flags == null) ? 0 : flags.hashCode());
+ result = prime * result + ((actions == null) ? 0 : actions.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModCommandSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModCommandSerializerVer10.java
new file mode 100644
index 0000000..304389c
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModCommandSerializerVer10.java
@@ -0,0 +1,89 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFFlowModCommand;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFFlowModCommandSerializerVer10 {
+
+ public final static short ADD_VAL = (short) 0x0;
+ public final static short MODIFY_VAL = (short) 0x1;
+ public final static short MODIFY_STRICT_VAL = (short) 0x2;
+ public final static short DELETE_VAL = (short) 0x3;
+ public final static short DELETE_STRICT_VAL = (short) 0x4;
+
+ public static OFFlowModCommand readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFFlowModCommand e) {
+ bb.writeShort(toWireValue(e));
+ }
+
+ public static void putTo(OFFlowModCommand e, PrimitiveSink sink) {
+ sink.putShort(toWireValue(e));
+ }
+
+ public static OFFlowModCommand ofWireValue(short val) {
+ switch(val) {
+ case ADD_VAL:
+ return OFFlowModCommand.ADD;
+ case MODIFY_VAL:
+ return OFFlowModCommand.MODIFY;
+ case MODIFY_STRICT_VAL:
+ return OFFlowModCommand.MODIFY_STRICT;
+ case DELETE_VAL:
+ return OFFlowModCommand.DELETE;
+ case DELETE_STRICT_VAL:
+ return OFFlowModCommand.DELETE_STRICT;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFFlowModCommand in version 1.0: " + val);
+ }
+ }
+
+
+ public static short toWireValue(OFFlowModCommand e) {
+ switch(e) {
+ case ADD:
+ return ADD_VAL;
+ case MODIFY:
+ return MODIFY_VAL;
+ case MODIFY_STRICT:
+ return MODIFY_STRICT_VAL;
+ case DELETE:
+ return DELETE_VAL;
+ case DELETE_STRICT:
+ return DELETE_STRICT_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFFlowModCommand in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedCodeSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedCodeSerializerVer10.java
new file mode 100644
index 0000000..cebce13
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedCodeSerializerVer10.java
@@ -0,0 +1,94 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFFlowModFailedCode;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+
+public class OFFlowModFailedCodeSerializerVer10 {
+
+ public final static short ALL_TABLES_FULL_VAL = (short) 0x0;
+ public final static short OVERLAP_VAL = (short) 0x1;
+ public final static short EPERM_VAL = (short) 0x2;
+ public final static short BAD_EMERG_TIMEOUT_VAL = (short) 0x3;
+ public final static short BAD_COMMAND_VAL = (short) 0x4;
+ public final static short UNSUPPORTED_VAL = (short) 0x5;
+
+ public static OFFlowModFailedCode readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, OFFlowModFailedCode e) {
+ bb.writeShort(toWireValue(e));
+ }
+
+ public static void putTo(OFFlowModFailedCode e, PrimitiveSink sink) {
+ sink.putShort(toWireValue(e));
+ }
+
+ public static OFFlowModFailedCode ofWireValue(short val) {
+ switch(val) {
+ case ALL_TABLES_FULL_VAL:
+ return OFFlowModFailedCode.ALL_TABLES_FULL;
+ case OVERLAP_VAL:
+ return OFFlowModFailedCode.OVERLAP;
+ case EPERM_VAL:
+ return OFFlowModFailedCode.EPERM;
+ case BAD_EMERG_TIMEOUT_VAL:
+ return OFFlowModFailedCode.BAD_EMERG_TIMEOUT;
+ case BAD_COMMAND_VAL:
+ return OFFlowModFailedCode.BAD_COMMAND;
+ case UNSUPPORTED_VAL:
+ return OFFlowModFailedCode.UNSUPPORTED;
+ default:
+ throw new IllegalArgumentException("Illegal wire value for type OFFlowModFailedCode in version 1.0: " + val);
+ }
+ }
+
+
+ public static short toWireValue(OFFlowModFailedCode e) {
+ switch(e) {
+ case ALL_TABLES_FULL:
+ return ALL_TABLES_FULL_VAL;
+ case OVERLAP:
+ return OVERLAP_VAL;
+ case EPERM:
+ return EPERM_VAL;
+ case BAD_EMERG_TIMEOUT:
+ return BAD_EMERG_TIMEOUT_VAL;
+ case BAD_COMMAND:
+ return BAD_COMMAND_VAL;
+ case UNSUPPORTED:
+ return UNSUPPORTED_VAL;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFFlowModFailedCode in version 1.0: " + e);
+ }
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedErrorMsgVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedErrorMsgVer10.java
new file mode 100644
index 0000000..d9a8fe5
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFailedErrorMsgVer10.java
@@ -0,0 +1,400 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowModFailedErrorMsgVer10 implements OFFlowModFailedErrorMsg {
+ private static final Logger logger = LoggerFactory.getLogger(OFFlowModFailedErrorMsgVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 12;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static OFErrorCauseData DEFAULT_DATA = OFErrorCauseData.NONE;
+
+ // OF message fields
+ private final long xid;
+ private final OFFlowModFailedCode code;
+ private final OFErrorCauseData data;
+//
+
+ // package private constructor - used by readers, builders, and factory
+ OFFlowModFailedErrorMsgVer10(long xid, OFFlowModFailedCode code, OFErrorCauseData data) {
+ this.xid = xid;
+ this.code = code;
+ this.data = data;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.FLOW_MOD_FAILED;
+ }
+
+ @Override
+ public OFFlowModFailedCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+
+
+ public OFFlowModFailedErrorMsg.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFFlowModFailedErrorMsg.Builder {
+ final OFFlowModFailedErrorMsgVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean codeSet;
+ private OFFlowModFailedCode code;
+ private boolean dataSet;
+ private OFErrorCauseData data;
+
+ BuilderWithParent(OFFlowModFailedErrorMsgVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowModFailedErrorMsg.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.FLOW_MOD_FAILED;
+ }
+
+ @Override
+ public OFFlowModFailedCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFFlowModFailedErrorMsg.Builder setCode(OFFlowModFailedCode code) {
+ this.code = code;
+ this.codeSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+ @Override
+ public OFFlowModFailedErrorMsg.Builder setData(OFErrorCauseData data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFFlowModFailedErrorMsg build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ OFFlowModFailedCode code = this.codeSet ? this.code : parentMessage.code;
+ if(code == null)
+ throw new NullPointerException("Property code must not be null");
+ OFErrorCauseData data = this.dataSet ? this.data : parentMessage.data;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+ //
+ return new OFFlowModFailedErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ }
+
+ }
+
+ static class Builder implements OFFlowModFailedErrorMsg.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean codeSet;
+ private OFFlowModFailedCode code;
+ private boolean dataSet;
+ private OFErrorCauseData data;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.ERROR;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowModFailedErrorMsg.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorType getErrType() {
+ return OFErrorType.FLOW_MOD_FAILED;
+ }
+
+ @Override
+ public OFFlowModFailedCode getCode() {
+ return code;
+ }
+
+ @Override
+ public OFFlowModFailedErrorMsg.Builder setCode(OFFlowModFailedCode code) {
+ this.code = code;
+ this.codeSet = true;
+ return this;
+ }
+ @Override
+ public OFErrorCauseData getData() {
+ return data;
+ }
+
+ @Override
+ public OFFlowModFailedErrorMsg.Builder setData(OFErrorCauseData data) {
+ this.data = data;
+ this.dataSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFFlowModFailedErrorMsg build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ if(!this.codeSet)
+ throw new IllegalStateException("Property code doesn't have default value -- must be set");
+ if(code == null)
+ throw new NullPointerException("Property code must not be null");
+ OFErrorCauseData data = this.dataSet ? this.data : DEFAULT_DATA;
+ if(data == null)
+ throw new NullPointerException("Property data must not be null");
+
+
+ return new OFFlowModFailedErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFFlowModFailedErrorMsg> {
+ @Override
+ public OFFlowModFailedErrorMsg readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 1
+ byte type = bb.readByte();
+ if(type != (byte) 0x1)
+ throw new OFParseError("Wrong type: Expected=OFType.ERROR(1), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ // fixed value property errType == 3
+ short errType = bb.readShort();
+ if(errType != (short) 0x3)
+ throw new OFParseError("Wrong errType: Expected=OFErrorType.FLOW_MOD_FAILED(3), got="+errType);
+ OFFlowModFailedCode code = OFFlowModFailedCodeSerializerVer10.readFrom(bb);
+ OFErrorCauseData data = OFErrorCauseData.read(bb, length - (bb.readerIndex() - start), OFVersion.OF_10);
+
+ OFFlowModFailedErrorMsgVer10 flowModFailedErrorMsgVer10 = new OFFlowModFailedErrorMsgVer10(
+ xid,
+ code,
+ data
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", flowModFailedErrorMsgVer10);
+ return flowModFailedErrorMsgVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFFlowModFailedErrorMsgVer10Funnel FUNNEL = new OFFlowModFailedErrorMsgVer10Funnel();
+ static class OFFlowModFailedErrorMsgVer10Funnel implements Funnel<OFFlowModFailedErrorMsgVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFFlowModFailedErrorMsgVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 1
+ sink.putByte((byte) 0x1);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ // fixed value property errType = 3
+ sink.putShort((short) 0x3);
+ OFFlowModFailedCodeSerializerVer10.putTo(message.code, sink);
+ message.data.putTo(sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFFlowModFailedErrorMsgVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFFlowModFailedErrorMsgVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 1
+ bb.writeByte((byte) 0x1);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ // fixed value property errType = 3
+ bb.writeShort((short) 0x3);
+ OFFlowModFailedCodeSerializerVer10.writeTo(bb, message.code);
+ message.data.writeTo(bb);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFFlowModFailedErrorMsgVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("code=").append(code);
+ b.append(", ");
+ b.append("data=").append(data);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFFlowModFailedErrorMsgVer10 other = (OFFlowModFailedErrorMsgVer10) obj;
+
+ if( xid != other.xid)
+ return false;
+ if (code == null) {
+ if (other.code != null)
+ return false;
+ } else if (!code.equals(other.code))
+ return false;
+ if (data == null) {
+ if (other.data != null)
+ return false;
+ } else if (!data.equals(other.data))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+
+ result = prime * (int) (xid ^ (xid >>> 32));
+ result = prime * result + ((code == null) ? 0 : code.hashCode());
+ result = prime * result + ((data == null) ? 0 : data.hashCode());
+ return result;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFlagsSerializerVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFlagsSerializerVer10.java
new file mode 100644
index 0000000..a3bab3e
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModFlagsSerializerVer10.java
@@ -0,0 +1,90 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template const_set_serializer.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.projectfloodlight.openflow.protocol.OFFlowModFlags;
+import java.util.Set;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import java.util.EnumSet;
+import java.util.Collections;
+
+
+public class OFFlowModFlagsSerializerVer10 {
+
+ public final static short SEND_FLOW_REM_VAL = (short) 0x1;
+ public final static short CHECK_OVERLAP_VAL = (short) 0x2;
+ public final static short EMERG_VAL = (short) 0x4;
+
+ public static Set<OFFlowModFlags> readFrom(ChannelBuffer bb) throws OFParseError {
+ try {
+ return ofWireValue(bb.readShort());
+ } catch (IllegalArgumentException e) {
+ throw new OFParseError(e);
+ }
+ }
+
+ public static void writeTo(ChannelBuffer bb, Set<OFFlowModFlags> set) {
+ bb.writeShort(toWireValue(set));
+ }
+
+ public static void putTo(Set<OFFlowModFlags> set, PrimitiveSink sink) {
+ sink.putShort(toWireValue(set));
+ }
+
+
+ public static Set<OFFlowModFlags> ofWireValue(short val) {
+ EnumSet<OFFlowModFlags> set = EnumSet.noneOf(OFFlowModFlags.class);
+
+ if((val & SEND_FLOW_REM_VAL) != 0)
+ set.add(OFFlowModFlags.SEND_FLOW_REM);
+ if((val & CHECK_OVERLAP_VAL) != 0)
+ set.add(OFFlowModFlags.CHECK_OVERLAP);
+ if((val & EMERG_VAL) != 0)
+ set.add(OFFlowModFlags.EMERG);
+ return Collections.unmodifiableSet(set);
+ }
+
+ public static short toWireValue(Set<OFFlowModFlags> set) {
+ short wireValue = 0;
+
+ for(OFFlowModFlags e: set) {
+ switch(e) {
+ case SEND_FLOW_REM:
+ wireValue |= SEND_FLOW_REM_VAL;
+ break;
+ case CHECK_OVERLAP:
+ wireValue |= CHECK_OVERLAP_VAL;
+ break;
+ case EMERG:
+ wireValue |= EMERG_VAL;
+ break;
+ default:
+ throw new IllegalArgumentException("Illegal enum value for type OFFlowModFlags in version 1.0: " + e);
+ }
+ }
+ return wireValue;
+ }
+
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModVer10.java
new file mode 100644
index 0000000..b434dec
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModVer10.java
@@ -0,0 +1,79 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_virtual_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.jboss.netty.buffer.ChannelBuffer;
+
+abstract class OFFlowModVer10 {
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 72;
+
+
+ public final static OFFlowModVer10.Reader READER = new Reader();
+
+ static class Reader implements OFMessageReader<OFFlowMod> {
+ @Override
+ public OFFlowMod readFrom(ChannelBuffer bb) throws OFParseError {
+ if(bb.readableBytes() < MINIMUM_LENGTH)
+ return null;
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 14
+ byte type = bb.readByte();
+ if(type != (byte) 0xe)
+ throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ U32.f(bb.readInt());
+ ChannelUtilsVer10.readOFMatch(bb);
+ U64.ofRaw(bb.readLong());
+ short command = bb.readShort();
+ bb.readerIndex(start);
+ switch(command) {
+ case (short) 0x0:
+ // discriminator value OFFlowModCommand.ADD=0 for class OFFlowAddVer10
+ return OFFlowAddVer10.READER.readFrom(bb);
+ case (short) 0x3:
+ // discriminator value OFFlowModCommand.DELETE=3 for class OFFlowDeleteVer10
+ return OFFlowDeleteVer10.READER.readFrom(bb);
+ case (short) 0x4:
+ // discriminator value OFFlowModCommand.DELETE_STRICT=4 for class OFFlowDeleteStrictVer10
+ return OFFlowDeleteStrictVer10.READER.readFrom(bb);
+ case (short) 0x1:
+ // discriminator value OFFlowModCommand.MODIFY=1 for class OFFlowModifyVer10
+ return OFFlowModifyVer10.READER.readFrom(bb);
+ case (short) 0x2:
+ // discriminator value OFFlowModCommand.MODIFY_STRICT=2 for class OFFlowModifyStrictVer10
+ return OFFlowModifyStrictVer10.READER.readFrom(bb);
+ default:
+ throw new OFParseError("Unknown value for discriminator command of class OFFlowModVer10: " + command);
+ }
+ }
+ }
+}
diff --git a/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyStrictVer10.java b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyStrictVer10.java
new file mode 100644
index 0000000..2b72508
--- /dev/null
+++ b/openflow/openflowj/gen-src/main/java/org/projectfloodlight/openflow/protocol/ver10/OFFlowModifyStrictVer10.java
@@ -0,0 +1,856 @@
+// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
+// Copyright (c) 2011, 2012 Open Networking Foundation
+// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
+// This library was generated by the LoxiGen Compiler.
+// See the file LICENSE.txt which should have been included in the source distribution
+
+// Automatically generated by LOXI from template of_class.java
+// Do not modify
+
+package org.projectfloodlight.openflow.protocol.ver10;
+
+import org.projectfloodlight.openflow.protocol.*;
+import org.projectfloodlight.openflow.protocol.action.*;
+import org.projectfloodlight.openflow.protocol.actionid.*;
+import org.projectfloodlight.openflow.protocol.bsntlv.*;
+import org.projectfloodlight.openflow.protocol.errormsg.*;
+import org.projectfloodlight.openflow.protocol.meterband.*;
+import org.projectfloodlight.openflow.protocol.instruction.*;
+import org.projectfloodlight.openflow.protocol.instructionid.*;
+import org.projectfloodlight.openflow.protocol.match.*;
+import org.projectfloodlight.openflow.protocol.oxm.*;
+import org.projectfloodlight.openflow.protocol.queueprop.*;
+import org.projectfloodlight.openflow.types.*;
+import org.projectfloodlight.openflow.util.*;
+import org.projectfloodlight.openflow.exceptions.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.util.Set;
+import com.google.common.collect.ImmutableSet;
+import java.util.List;
+import com.google.common.collect.ImmutableList;
+import org.jboss.netty.buffer.ChannelBuffer;
+import com.google.common.hash.PrimitiveSink;
+import com.google.common.hash.Funnel;
+
+class OFFlowModifyStrictVer10 implements OFFlowModifyStrict {
+ private static final Logger logger = LoggerFactory.getLogger(OFFlowModifyStrictVer10.class);
+ // version: 1.0
+ final static byte WIRE_VERSION = 1;
+ final static int MINIMUM_LENGTH = 72;
+
+ private final static long DEFAULT_XID = 0x0L;
+ private final static Match DEFAULT_MATCH = OFFactoryVer10.MATCH_WILDCARD_ALL;
+ private final static U64 DEFAULT_COOKIE = U64.ZERO;
+ private final static int DEFAULT_IDLE_TIMEOUT = 0x0;
+ private final static int DEFAULT_HARD_TIMEOUT = 0x0;
+ private final static int DEFAULT_PRIORITY = 0x0;
+ private final static OFBufferId DEFAULT_BUFFER_ID = OFBufferId.NO_BUFFER;
+ private final static OFPort DEFAULT_OUT_PORT = OFPort.ANY;
+ private final static Set<OFFlowModFlags> DEFAULT_FLAGS = ImmutableSet.<OFFlowModFlags>of();
+ private final static List<OFAction> DEFAULT_ACTIONS = ImmutableList.<OFAction>of();
+
+ // OF message fields
+ private final long xid;
+ private final Match match;
+ private final U64 cookie;
+ private final int idleTimeout;
+ private final int hardTimeout;
+ private final int priority;
+ private final OFBufferId bufferId;
+ private final OFPort outPort;
+ private final Set<OFFlowModFlags> flags;
+ private final List<OFAction> actions;
+//
+ // Immutable default instance
+ final static OFFlowModifyStrictVer10 DEFAULT = new OFFlowModifyStrictVer10(
+ DEFAULT_XID, DEFAULT_MATCH, DEFAULT_COOKIE, DEFAULT_IDLE_TIMEOUT, DEFAULT_HARD_TIMEOUT, DEFAULT_PRIORITY, DEFAULT_BUFFER_ID, DEFAULT_OUT_PORT, DEFAULT_FLAGS, DEFAULT_ACTIONS
+ );
+
+ // package private constructor - used by readers, builders, and factory
+ OFFlowModifyStrictVer10(long xid, Match match, U64 cookie, int idleTimeout, int hardTimeout, int priority, OFBufferId bufferId, OFPort outPort, Set<OFFlowModFlags> flags, List<OFAction> actions) {
+ this.xid = xid;
+ this.match = match;
+ this.cookie = cookie;
+ this.idleTimeout = idleTimeout;
+ this.hardTimeout = hardTimeout;
+ this.priority = priority;
+ this.bufferId = bufferId;
+ this.outPort = outPort;
+ this.flags = flags;
+ this.actions = actions;
+ }
+
+ // Accessors for OF message fields
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.MODIFY_STRICT;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+
+
+ public OFFlowModifyStrict.Builder createBuilder() {
+ return new BuilderWithParent(this);
+ }
+
+ static class BuilderWithParent implements OFFlowModifyStrict.Builder {
+ final OFFlowModifyStrictVer10 parentMessage;
+
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean matchSet;
+ private Match match;
+ private boolean cookieSet;
+ private U64 cookie;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean bufferIdSet;
+ private OFBufferId bufferId;
+ private boolean outPortSet;
+ private OFPort outPort;
+ private boolean flagsSet;
+ private Set<OFFlowModFlags> flags;
+ private boolean actionsSet;
+ private List<OFAction> actions;
+
+ BuilderWithParent(OFFlowModifyStrictVer10 parentMessage) {
+ this.parentMessage = parentMessage;
+ }
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.MODIFY_STRICT;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setBufferId(OFBufferId bufferId) {
+ this.bufferId = bufferId;
+ this.bufferIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setFlags(Set<OFFlowModFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setActions(List<OFAction> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+
+
+ @Override
+ public OFFlowModifyStrict build() {
+ long xid = this.xidSet ? this.xid : parentMessage.xid;
+ Match match = this.matchSet ? this.match : parentMessage.match;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ U64 cookie = this.cookieSet ? this.cookie : parentMessage.cookie;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : parentMessage.idleTimeout;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : parentMessage.hardTimeout;
+ int priority = this.prioritySet ? this.priority : parentMessage.priority;
+ OFBufferId bufferId = this.bufferIdSet ? this.bufferId : parentMessage.bufferId;
+ if(bufferId == null)
+ throw new NullPointerException("Property bufferId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : parentMessage.outPort;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+ Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ List<OFAction> actions = this.actionsSet ? this.actions : parentMessage.actions;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+
+ //
+ return new OFFlowModifyStrictVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ }
+
+ }
+
+ static class Builder implements OFFlowModifyStrict.Builder {
+ // OF message fields
+ private boolean xidSet;
+ private long xid;
+ private boolean matchSet;
+ private Match match;
+ private boolean cookieSet;
+ private U64 cookie;
+ private boolean idleTimeoutSet;
+ private int idleTimeout;
+ private boolean hardTimeoutSet;
+ private int hardTimeout;
+ private boolean prioritySet;
+ private int priority;
+ private boolean bufferIdSet;
+ private OFBufferId bufferId;
+ private boolean outPortSet;
+ private OFPort outPort;
+ private boolean flagsSet;
+ private Set<OFFlowModFlags> flags;
+ private boolean actionsSet;
+ private List<OFAction> actions;
+
+ @Override
+ public OFVersion getVersion() {
+ return OFVersion.OF_10;
+ }
+
+ @Override
+ public OFType getType() {
+ return OFType.FLOW_MOD;
+ }
+
+ @Override
+ public long getXid() {
+ return xid;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setXid(long xid) {
+ this.xid = xid;
+ this.xidSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookie() {
+ return cookie;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setCookie(U64 cookie) {
+ this.cookie = cookie;
+ this.cookieSet = true;
+ return this;
+ }
+ @Override
+ public U64 getCookieMask()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setCookieMask(U64 cookieMask) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property cookieMask not supported in version 1.0");
+ }
+ @Override
+ public TableId getTableId()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setTableId(TableId tableId) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property tableId not supported in version 1.0");
+ }
+ @Override
+ public OFFlowModCommand getCommand() {
+ return OFFlowModCommand.MODIFY_STRICT;
+ }
+
+ @Override
+ public int getIdleTimeout() {
+ return idleTimeout;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setIdleTimeout(int idleTimeout) {
+ this.idleTimeout = idleTimeout;
+ this.idleTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getHardTimeout() {
+ return hardTimeout;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setHardTimeout(int hardTimeout) {
+ this.hardTimeout = hardTimeout;
+ this.hardTimeoutSet = true;
+ return this;
+ }
+ @Override
+ public int getPriority() {
+ return priority;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setPriority(int priority) {
+ this.priority = priority;
+ this.prioritySet = true;
+ return this;
+ }
+ @Override
+ public OFBufferId getBufferId() {
+ return bufferId;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setBufferId(OFBufferId bufferId) {
+ this.bufferId = bufferId;
+ this.bufferIdSet = true;
+ return this;
+ }
+ @Override
+ public OFPort getOutPort() {
+ return outPort;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setOutPort(OFPort outPort) {
+ this.outPort = outPort;
+ this.outPortSet = true;
+ return this;
+ }
+ @Override
+ public OFGroup getOutGroup()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setOutGroup(OFGroup outGroup) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property outGroup not supported in version 1.0");
+ }
+ @Override
+ public Set<OFFlowModFlags> getFlags() {
+ return flags;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setFlags(Set<OFFlowModFlags> flags) {
+ this.flags = flags;
+ this.flagsSet = true;
+ return this;
+ }
+ @Override
+ public Match getMatch() {
+ return match;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setMatch(Match match) {
+ this.match = match;
+ this.matchSet = true;
+ return this;
+ }
+ @Override
+ public List<OFInstruction> getInstructions()throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setInstructions(List<OFInstruction> instructions) throws UnsupportedOperationException {
+ throw new UnsupportedOperationException("Property instructions not supported in version 1.0");
+ }
+ @Override
+ public List<OFAction> getActions() {
+ return actions;
+ }
+
+ @Override
+ public OFFlowModifyStrict.Builder setActions(List<OFAction> actions) {
+ this.actions = actions;
+ this.actionsSet = true;
+ return this;
+ }
+//
+ @Override
+ public OFFlowModifyStrict build() {
+ long xid = this.xidSet ? this.xid : DEFAULT_XID;
+ Match match = this.matchSet ? this.match : DEFAULT_MATCH;
+ if(match == null)
+ throw new NullPointerException("Property match must not be null");
+ U64 cookie = this.cookieSet ? this.cookie : DEFAULT_COOKIE;
+ if(cookie == null)
+ throw new NullPointerException("Property cookie must not be null");
+ int idleTimeout = this.idleTimeoutSet ? this.idleTimeout : DEFAULT_IDLE_TIMEOUT;
+ int hardTimeout = this.hardTimeoutSet ? this.hardTimeout : DEFAULT_HARD_TIMEOUT;
+ int priority = this.prioritySet ? this.priority : DEFAULT_PRIORITY;
+ OFBufferId bufferId = this.bufferIdSet ? this.bufferId : DEFAULT_BUFFER_ID;
+ if(bufferId == null)
+ throw new NullPointerException("Property bufferId must not be null");
+ OFPort outPort = this.outPortSet ? this.outPort : DEFAULT_OUT_PORT;
+ if(outPort == null)
+ throw new NullPointerException("Property outPort must not be null");
+ Set<OFFlowModFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
+ if(flags == null)
+ throw new NullPointerException("Property flags must not be null");
+ List<OFAction> actions = this.actionsSet ? this.actions : DEFAULT_ACTIONS;
+ if(actions == null)
+ throw new NullPointerException("Property actions must not be null");
+
+
+ return new OFFlowModifyStrictVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ }
+
+ }
+
+
+ final static Reader READER = new Reader();
+ static class Reader implements OFMessageReader<OFFlowModifyStrict> {
+ @Override
+ public OFFlowModifyStrict readFrom(ChannelBuffer bb) throws OFParseError {
+ int start = bb.readerIndex();
+ // fixed value property version == 1
+ byte version = bb.readByte();
+ if(version != (byte) 0x1)
+ throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
+ // fixed value property type == 14
+ byte type = bb.readByte();
+ if(type != (byte) 0xe)
+ throw new OFParseError("Wrong type: Expected=OFType.FLOW_MOD(14), got="+type);
+ int length = U16.f(bb.readShort());
+ if(length < MINIMUM_LENGTH)
+ throw new OFParseError("Wrong length: Expected to be >= " + MINIMUM_LENGTH + ", was: " + length);
+ if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
+ // Buffer does not have all data yet
+ bb.readerIndex(start);
+ return null;
+ }
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - length={}", length);
+ long xid = U32.f(bb.readInt());
+ Match match = ChannelUtilsVer10.readOFMatch(bb);
+ U64 cookie = U64.ofRaw(bb.readLong());
+ // fixed value property command == 2
+ short command = bb.readShort();
+ if(command != (short) 0x2)
+ throw new OFParseError("Wrong command: Expected=OFFlowModCommand.MODIFY_STRICT(2), got="+command);
+ int idleTimeout = U16.f(bb.readShort());
+ int hardTimeout = U16.f(bb.readShort());
+ int priority = U16.f(bb.readShort());
+ OFBufferId bufferId = OFBufferId.of(bb.readInt());
+ OFPort outPort = OFPort.read2Bytes(bb);
+ Set<OFFlowModFlags> flags = OFFlowModFlagsSerializerVer10.readFrom(bb);
+ List<OFAction> actions = ChannelUtils.readList(bb, length - (bb.readerIndex() - start), OFActionVer10.READER);
+
+ OFFlowModifyStrictVer10 flowModifyStrictVer10 = new OFFlowModifyStrictVer10(
+ xid,
+ match,
+ cookie,
+ idleTimeout,
+ hardTimeout,
+ priority,
+ bufferId,
+ outPort,
+ flags,
+ actions
+ );
+ if(logger.isTraceEnabled())
+ logger.trace("readFrom - read={}", flowModifyStrictVer10);
+ return flowModifyStrictVer10;
+ }
+ }
+
+ public void putTo(PrimitiveSink sink) {
+ FUNNEL.funnel(this, sink);
+ }
+
+ final static OFFlowModifyStrictVer10Funnel FUNNEL = new OFFlowModifyStrictVer10Funnel();
+ static class OFFlowModifyStrictVer10Funnel implements Funnel<OFFlowModifyStrictVer10> {
+ private static final long serialVersionUID = 1L;
+ @Override
+ public void funnel(OFFlowModifyStrictVer10 message, PrimitiveSink sink) {
+ // fixed value property version = 1
+ sink.putByte((byte) 0x1);
+ // fixed value property type = 14
+ sink.putByte((byte) 0xe);
+ // FIXME: skip funnel of length
+ sink.putLong(message.xid);
+ message.match.putTo(sink);
+ message.cookie.putTo(sink);
+ // fixed value property command = 2
+ sink.putShort((short) 0x2);
+ sink.putInt(message.idleTimeout);
+ sink.putInt(message.hardTimeout);
+ sink.putInt(message.priority);
+ message.bufferId.putTo(sink);
+ message.outPort.putTo(sink);
+ OFFlowModFlagsSerializerVer10.putTo(message.flags, sink);
+ FunnelUtils.putList(message.actions, sink);
+ }
+ }
+
+
+ public void writeTo(ChannelBuffer bb) {
+ WRITER.write(bb, this);
+ }
+
+ final static Writer WRITER = new Writer();
+ static class Writer implements OFMessageWriter<OFFlowModifyStrictVer10> {
+ @Override
+ public void write(ChannelBuffer bb, OFFlowModifyStrictVer10 message) {
+ int startIndex = bb.writerIndex();
+ // fixed value property version = 1
+ bb.writeByte((byte) 0x1);
+ // fixed value property type = 14
+ bb.writeByte((byte) 0xe);
+ // length is length of variable message, will be updated at the end
+ int lengthIndex = bb.writerIndex();
+ bb.writeShort(U16.t(0));
+
+ bb.writeInt(U32.t(message.xid));
+ message.match.writeTo(bb);
+ bb.writeLong(message.cookie.getValue());
+ // fixed value property command = 2
+ bb.writeShort((short) 0x2);
+ bb.writeShort(U16.t(message.idleTimeout));
+ bb.writeShort(U16.t(message.hardTimeout));
+ bb.writeShort(U16.t(message.priority));
+ bb.writeInt(message.bufferId.getInt());
+ message.outPort.write2Bytes(bb);
+ OFFlowModFlagsSerializerVer10.writeTo(bb, message.flags);
+ ChannelUtils.writeList(bb, message.actions);
+
+ // update length field
+ int length = bb.writerIndex() - startIndex;
+ bb.setShort(lengthIndex, length);
+
+ }
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder b = new StringBuilder("OFFlowModifyStrictVer10(");
+ b.append("xid=").append(xid);
+ b.append(", ");
+ b.append("match=").append(match);
+ b.append(", ");
+ b.append("cookie=").append(cookie);
+ b.append(", ");
+ b.append("idleTimeout=").append(idleTimeout);
+ b.append(", ");
+ b.append("hardTimeout=").append(hardTimeout);
+ b.append(", ");
+ b.append("priority=").append(priority);
+ b.append(", ");
+ b.append("bufferId=").append(bufferId);
+ b.append(", ");
+ b.append("outPort=").append(outPort);
+ b.append(", ");
+ b.append("flags=").append(flags);
+ b.append(", ");
+ b.append("actions=").append(actions);
+ b.append(")");
+ return b.toString();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OFFlowModifyStrictVer10 other = (OFFlowModifyStrictVer10) obj;
+
+ if( xid != other.xid)